<?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>STM32H7S</name>
  <version>1.3</version>
  <description>STM32H7S</description>
  <cpu>
    <name>CM7</name>
    <revision>r0p1</revision>
    <endian>little</endian>
    <mpuPresent>true</mpuPresent>
    <fpuPresent>true</fpuPresent>
    <nvicPrioBits>4</nvicPrioBits>
    <vendorSystickConfig>false</vendorSystickConfig>
  </cpu>
  <addressUnitBits>8</addressUnitBits>
  <width>32</width>
  <size>0x20</size>
  <resetValue>0x00000000</resetValue>
  <resetMask>0xFFFFFFFF</resetMask>
  <peripherals>
    <peripheral>
      <name>ADC1</name>
      <description>ADC register block</description>
      <groupName>ADC</groupName>
      <baseAddress>0x40022000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0xCC</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>ISR</name>
          <displayName>ISR</displayName>
          <description>ADC interrupt and status register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ADRDY</name>
              <description>ADC ready 
This bit is set by hardware after the ADC has been enabled (ADEN = 1) and when the ADC reaches a state where it is ready to accept conversion requests.
It is cleared by software writing 1 to it.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EOSMP</name>
              <description>End of sampling flag
This bit is set by hardware during the conversion of any channel (only for regular channels), at the end of the sampling phase.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EOC</name>
              <description>End of conversion flag
This bit is set by hardware at the end of each regular conversion of a channel when a new data is available in the ADC_DR register. It is cleared by software writing 1 to it or by reading the ADC_DR register</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EOS</name>
              <description>End of regular sequence flag
This bit is set by hardware at the end of the conversions of a regular sequence of channels. It is cleared by software writing 1 to it.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OVR</name>
              <description>ADC overrun
This bit is set by hardware when an overrun occurs on a regular channel, meaning that a new conversion has completed while the EOC flag was already set. It is cleared by software writing 1 to it.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JEOC</name>
              <description>Injected channel end of conversion flag
This bit is set by hardware at the end of each injected conversion of a channel when a new data is available in the corresponding ADC_JDRy register. It is cleared by software writing 1 to it or by reading the corresponding ADC_JDRy register</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JEOS</name>
              <description>Injected channel end of sequence flag
This bit is set by hardware at the end of the conversions of all injected channels in the group. It is cleared by software writing 1 to it.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AWD1</name>
              <description>Analog watchdog 1 flag
This bit is set by hardware when the converted voltage crosses the values programmed in the fields LT1[11:0] and HT1[11:0] of ADC_TR1 register. It is cleared by software. writing 1 to it.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AWD2</name>
              <description>Analog watchdog 2 flag
This bit is set by hardware when the converted voltage crosses the values programmed in the fields LT2[7:0] and HT2[7:0] of ADC_TR2 register. It is cleared by software writing 1 to it.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AWD3</name>
              <description>Analog watchdog 3 flag
This bit is set by hardware when the converted voltage crosses the values programmed in the fields LT3[7:0] and HT3[7:0] of ADC_TR3 register. It is cleared by software writing 1 to it.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JQOVF</name>
              <description>Injected context queue overflow
This bit is set by hardware when an Overflow of the Injected Queue of Context occurs. It is cleared by software writing 1 to it. Refer to Section 25.4.21: Queue of context for injected conversions for more information.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IER</name>
          <displayName>IER</displayName>
          <description>ADC interrupt enable register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ADRDYIE</name>
              <description>ADC ready interrupt enable
This bit is set and cleared by software to enable/disable the ADC Ready interrupt.
Note: The software is allowed to write this bit only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EOSMPIE</name>
              <description>End of sampling flag interrupt enable for regular conversions
This bit is set and cleared by software to enable/disable the end of the sampling phase interrupt for regular conversions.
Note: The software is allowed to write this bit only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EOCIE</name>
              <description>End of regular conversion interrupt enable
This bit is set and cleared by software to enable/disable the end of a regular conversion interrupt.
Note: The software is allowed to write this bit only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EOSIE</name>
              <description>End of regular sequence of conversions interrupt enable
This bit is set and cleared by software to enable/disable the end of regular sequence of conversions interrupt.
Note: The software is allowed to write this bit only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OVRIE</name>
              <description>Overrun interrupt enable
This bit is set and cleared by software to enable/disable the Overrun interrupt of a regular conversion.
Note: The software is allowed to write this bit only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JEOCIE</name>
              <description>End of injected conversion interrupt enable
This bit is set and cleared by software to enable/disable the end of an injected conversion interrupt.
Note: The software is allowed to write this bit only when JADSTART = 0 (which ensures that no injected conversion is ongoing).</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JEOSIE</name>
              <description>End of injected sequence of conversions interrupt enable
This bit is set and cleared by software to enable/disable the end of injected sequence of conversions interrupt.
Note: The software is allowed to write this bit only when JADSTART = 0 (which ensures that no injected conversion is ongoing).</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AWD1IE</name>
              <description>Analog watchdog 1 interrupt enable
This bit is set and cleared by software to enable/disable the analog watchdog 1 interrupt. 
Note: The software is allowed to write this bit only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AWD2IE</name>
              <description>Analog watchdog 2 interrupt enable
This bit is set and cleared by software to enable/disable the analog watchdog 2 interrupt.
Note: The software is allowed to write this bit only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AWD3IE</name>
              <description>Analog watchdog 3 interrupt enable
This bit is set and cleared by software to enable/disable the analog watchdog 2 interrupt.
Note: The software is allowed to write this bit only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JQOVFIE</name>
              <description>Injected context queue overflow interrupt enable
This bit is set and cleared by software to enable/disable the Injected Context Queue Overflow interrupt.
Note: The software is allowed to write this bit only when JADSTART = 0 (which ensures that no injected conversion is ongoing).</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>ADC control register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x20000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ADEN</name>
              <description>ADC enable control
This bit is set by software to enable the ADC. The ADC is effectively ready to operate once the flag ADRDY has been set.
It is cleared by hardware when the ADC is disabled, after the execution of the ADDIS command.
Note: The software is allowed to set ADEN only when all bits of ADC_CR registers are 0 (ADCAL = 0, JADSTART = 0, ADSTART = 0, ADSTP = 0, ADDIS = 0 and ADEN = 0) except for bit ADVREGEN which must be 1 (and the software must have wait for the startup time of the voltage regulator)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADDIS</name>
              <description>ADC disable command
This bit is set by software to disable the ADC (ADDIS command) and put it into power-down state (OFF state).
It is cleared by hardware once the ADC is effectively disabled (ADEN is also cleared by hardware at this time).
Note: The software is allowed to set ADDIS only when ADEN = 1 and both ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing)</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADSTART</name>
              <description>ADC start of regular conversion
This bit is set by software to start ADC conversion of regular channels. Depending on the configuration bits EXTEN, a conversion immediately starts (software trigger configuration) or once a regular hardware trigger event occurs (hardware trigger configuration).
It is cleared by hardware:
in Single conversion mode when software trigger is selected (EXTSEL = 0x0): at the assertion of the End of Regular Conversion Sequence (EOS) flag.
in all cases: after the execution of the ADSTP command, at the same time that ADSTP is cleared by hardware.
Note: The software is allowed to set ADSTART only when ADEN = 1 and ADDIS = 0 (ADC is enabled and there is no pending request to disable the ADC)
Note: In auto-injection mode (JAUTO = 1), regular and auto-injected conversions are started by setting bit ADSTART (JADSTART must be kept cleared)</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JADSTART</name>
              <description>ADC start of injected conversion
This bit is set by software to start ADC conversion of injected channels. Depending on the configuration bits JEXTEN, a conversion immediately starts (software trigger configuration) or once an injected hardware trigger event occurs (hardware trigger configuration).
It is cleared by hardware:
in Single conversion mode when software trigger is selected (JEXTSEL = 0x0): at the assertion of the End of Injected Conversion Sequence (JEOS) flag.
in all cases: after the execution of the JADSTP command, at the same time that JADSTP is cleared by hardware.
Note: The software is allowed to set JADSTART only when ADEN = 1 and ADDIS = 0 (ADC is enabled and there is no pending request to disable the ADC).
Note: In auto-injection mode (JAUTO = 1), regular and auto-injected conversions are started by setting bit ADSTART (JADSTART must be kept cleared)</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADSTP</name>
              <description>ADC stop of regular conversion command
This bit is set by software to stop and discard an ongoing regular conversion (ADSTP Command).
It is cleared by hardware when the conversion is effectively discarded and the ADC regular sequence and triggers can be re-configured. The ADC is then ready to accept a new start of regular conversions (ADSTART command).
Note: The software is allowed to set ADSTP only when ADSTART = 1 and ADDIS = 0 (ADC is enabled and eventually converting a regular conversion and there is no pending request to disable the ADC).
In auto-injection mode (JAUTO = 1), setting ADSTP bit aborts both regular and injected conversions (do not use JADSTP).</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JADSTP</name>
              <description>ADC stop of injected conversion command
This bit is set by software to stop and discard an ongoing injected conversion (JADSTP Command).
It is cleared by hardware when the conversion is effectively discarded and the ADC injected sequence and triggers can be re-configured. The ADC is then ready to accept a new start of injected conversions (JADSTART command).
Note: The software is allowed to set JADSTP only when JADSTART = 1 and ADDIS = 0 (ADC is enabled and eventually converting an injected conversion and there is no pending request to disable the ADC)
Note: In Auto-injection mode (JAUTO = 1), setting ADSTP bit aborts both regular and injected conversions (do not use JADSTP)</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADVREGEN</name>
              <description>ADC voltage regulator enable
This bits is set by software to enable the ADC voltage regulator.
Before performing any operation such as launching a calibration or enabling the ADC, the ADC voltage regulator must first be enabled and the software must wait for the regulator start-up time.
For more details about the ADC voltage regulator enable and disable sequences, refer to Section 25.4.6: ADC Deep-power-down mode (DEEPPWD) and ADC voltage regulator (ADVREGEN).
The software can program this bit field only when the ADC is disabled (ADCAL = 0, JADSTART = 0, ADSTART = 0, ADSTP = 0, ADDIS = 0 and ADEN = 0).</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DEEPPWD</name>
              <description>Deep-power-down enable
This bit is set and cleared by software to put the ADC in Deep-power-down mode.
Note: The software is allowed to write this bit only when the ADC is disabled (ADCAL = 0, JADSTART = 0, JADSTP = 0, ADSTART = 0, ADSTP = 0, ADDIS = 0 and ADEN = 0).</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADCALDIF</name>
              <description>Differential mode for calibration
This bit is set and cleared by software to configure the Single-ended or Differential inputs mode for the calibration.
Note: The software is allowed to write this bit only when the ADC is disabled and is not calibrating (ADCAL = 0, JADSTART = 0, JADSTP = 0, ADSTART = 0, ADSTP = 0, ADDIS = 0 and ADEN = 0).</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADCAL</name>
              <description>ADC calibration
This bit is set by software to start the calibration of the ADC. Program first the bit ADCALDIF to determine if this calibration applies for Single-ended or Differential inputs mode.
It is cleared by hardware after calibration is complete.
Note: The software is allowed to launch a calibration by setting ADCAL only when ADEN = 0.
Note: The software is allowed to update the calibration factor by writing ADC_CALFACT only when ADEN = 1 and ADSTART = 0 and JADSTART = 0 (ADC enabled and no conversion is ongoing)</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CFGR</name>
          <displayName>CFGR</displayName>
          <description>ADC configuration register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x80000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAEN</name>
              <description>Direct memory access enable
This bit is set and cleared by software to enable the generation of DMA requests. This allows to use the DMA to manage automatically the converted data. For more details, refer to Section : Managing conversions using the DMA.
Note: The software is allowed to write this bit only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: In dual-ADC modes, this bit is not relevant and replaced by control bits MDMA[1:0] of the ADC_CCR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DMACFG</name>
              <description>Direct memory access configuration
This bit is set and cleared by software to select between two DMA modes of operation and is effective only when DMAEN = 1.
For more details, refer to Section : Managing conversions using the DMA
Note: The software is allowed to write this bit only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: In dual-ADC modes, this bit is not relevant and replaced by control bit DMACFG of the ADC_CCR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADFCFG</name>
              <description>ADF mode configuration
This bit is set and cleared by software to enable the ADF mode. It is effective only when
DMAEN = 0.
Note: To make sure no conversion is ongoing, the software is allowed to write this bit only when ADSTART =  0 and JADSTART =  0.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RES</name>
              <description>Data resolution
These bits are written by software to select the resolution of the conversion.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>3</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EXTSEL</name>
              <description>External trigger selection for regular group
These bits select the external event used to trigger the start of conversion of a regular group:
...
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>5</bitOffset>
              <bitWidth>5</bitWidth>
            </field>
            <field>
              <name>EXTEN</name>
              <description>External trigger enable and polarity selection for regular channels
These bits are set and cleared by software to select the external trigger polarity and enable the trigger of a regular group.
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>10</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OVRMOD</name>
              <description>Overrun mode
This bit is set and cleared by software and configure the way data overrun is managed.
Note: The software is allowed to write this bit only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CONT</name>
              <description>Single / Continuous conversion mode for regular conversions
This bit is set and cleared by software. If it is set, regular conversion takes place continuously until it is cleared.
Note: It is not possible to have both Discontinuous mode and Continuous mode enabled: it is forbidden to set both DISCEN = 1 and CONT = 1.
Note: The software is allowed to write this bit only when ADSTART = 0 (which ensures that no regular conversion is ongoing).
Note: When dual mode is enabled (DUAL bits in ADC_CCR register are not equal to zero), the bit CONT of the slave ADC is no more writable and its content is equal to the bit CONT of the master ADC.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AUTDLY</name>
              <description>Delayed conversion mode
This bit is set and cleared by software to enable/disable the Auto Delayed Conversion mode.&lt;sup&gt;.&lt;/sup&gt;
Note: The software is allowed to write this bit only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: When dual mode is enabled (DUAL bits in ADC_CCR register are not equal to zero), the bit AUTDLY of the slave ADC is no more writable and its content is equal to the bit AUTDLY of the master ADC.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ALIGN</name>
              <description>Data alignment
This bit is set and cleared by software to select right or left alignment. Refer to Section : Data register, data alignment and offset (ADC_DR, OFFSET, OFFSET_CH, ALIGN).
Note: The software is allowed to write this bit only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DISCEN</name>
              <description>Discontinuous mode for regular channels
This bit is set and cleared by software to enable/disable Discontinuous mode for regular channels.
Note: It is not possible to have both Discontinuous mode and Continuous mode enabled: it is forbidden to set both DISCEN = 1 and CONT = 1.
Note: It is not possible to use both auto-injected mode and Discontinuous mode simultaneously: the bits DISCEN and JDISCEN must be kept cleared by software when JAUTO is set. 
Note: The software is allowed to write this bit only when ADSTART = 0 (which ensures that no regular conversion is ongoing).
Note: When dual mode is enabled (DUAL bits in ADC_CCR register are not equal to zero), the bit DISCEN of the slave ADC is no more writable and its content is equal to the bit DISCEN of the master ADC.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DISCNUM</name>
              <description>Discontinuous mode channel count
These bits are written by software to define the number of regular channels to be converted in Discontinuous mode, after receiving an external trigger.
...
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).
Note: When dual mode is enabled (DUAL bits in ADC_CCR register are not equal to zero), the bits DISCNUM[2:0] of the slave ADC are no more writable and their content is equal to the bits DISCNUM[2:0] of the master ADC.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JDISCEN</name>
              <description>Discontinuous mode on injected channels
This bit is set and cleared by software to enable/disable Discontinuous mode on the injected channels of a group.
Note: The software is allowed to write this bit only when JADSTART = 0 (which ensures that no injected conversion is ongoing).
Note: It is not possible to use both auto-injected mode and Discontinuous mode simultaneously: the bits DISCEN and JDISCEN must be kept cleared by software when JAUTO is set.
Note: When dual mode is enabled (bits DUAL of ADC_CCR register are not equal to zero), the bit JDISCEN of the slave ADC is no more writable and its content is equal to the bit JDISCEN of the master ADC.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JQM</name>
              <description>JSQR queue mode
This bit is set and cleared by software.
It defines how an empty Queue is managed.
Refer to Section 25.4.21: Queue of context for injected conversions for more information.
Note: The software is allowed to write this bit only when JADSTART = 0 (which ensures that no injected conversion is ongoing).
Note: When dual mode is enabled (DUAL bits in ADC_CCR register are not equal to zero), the bit JQM of the slave ADC is no more writable and its content is equal to the bit JQM of the master ADC.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AWD1SGL</name>
              <description>Enable the watchdog 1 on a single channel or on all channels
This bit is set and cleared by software to enable the analog watchdog on the channel identified by the AWD1CH[4:0] bits or on all the channels
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AWD1EN</name>
              <description>Analog watchdog 1 enable on regular channels
This bit is set and cleared by software
Note: The software is allowed to write this bit only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JAWD1EN</name>
              <description>Analog watchdog 1 enable on injected channels
This bit is set and cleared by software
Note: The software is allowed to write this bit only when JADSTART = 0 (which ensures that no injected conversion is ongoing).</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JAUTO</name>
              <description>Automatic injected group conversion
This bit is set and cleared by software to enable/disable automatic injected group conversion after regular group conversion.
Note: The software is allowed to write this bit only when ADSTART = 0 and JADSTART = 0 (which ensures that no regular nor injected conversion is ongoing).
Note: When dual mode is enabled (DUAL bits in ADC_CCR register are not equal to zero), the bit JAUTO of the slave ADC is no more writable and its content is equal to the bit JAUTO of the master ADC.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AWD1CH</name>
              <description>Analog watchdog 1 channel selection
These bits are set and cleared by software. They select the input channel to be guarded by the analog watchdog.
.....
others: reserved, must not be used
Note: Some channels are not connected physically. Keep the corresponding AWD1CH[4:0] setting to the reset value.
Note: The channel selected by AWD1CH must be also selected into the SQRi or JSQRi registers.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>26</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JQDIS</name>
              <description>Injected queue disable
This bit is set and cleared by software to disable the injected queue mechanism:
Note: The software is allowed to write this bit only when ADSTART = 0 and JADSTART = 0 (which ensures that no regular nor injected conversion is ongoing).
Note: A set or reset of JQDIS bit causes the injected queue to be flushed and the JSQR register is cleared.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CFGR2</name>
          <displayName>CFGR2</displayName>
          <description>ADC configuration register 2</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ROVSE</name>
              <description>Regular Oversampling Enable
This bit is set and cleared by software to enable regular oversampling.
Note: The software is allowed to write this bit only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JOVSE</name>
              <description>Injected Oversampling Enable
This bit is set and cleared by software to enable injected oversampling.
Note: The software is allowed to write this bit only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing)</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OVSR</name>
              <description>Oversampling ratio
This bitfield is set and cleared by software to define the oversampling ratio.
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>2</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OVSS</name>
              <description>Oversampling shift
This bitfield is set and cleared by software to define the right shifting applied to the raw oversampling result.
Other codes reserved
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>5</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TROVS</name>
              <description>Triggered Regular Oversampling
This bit is set and cleared by software to enable triggered oversampling
Note: The software is allowed to write this bit only when ADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ROVSM</name>
              <description>Regular Oversampling mode
This bit is set and cleared by software to select the regular oversampling mode.
Note: The software is allowed to write this bit only when ADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWTRIG</name>
              <description>Software trigger bit for sampling time control trigger mode
This bit is set and cleared by software to enable the bulb sampling mode.
Note: The software is allowed to write this bit only when ADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BULB</name>
              <description>Bulb sampling mode
This bit is set and cleared by software to enable the bulb sampling mode.
SAMPTRIG bit must not be set when the BULB bit is set. 
The very first ADC conversion is performed with the sampling time specified in SMPx bits.
Note: The software is allowed to write this bit only when ADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMPTRIG</name>
              <description>Sampling time control trigger mode
This bit is set and cleared by software to enable the sampling time control trigger mode.
The sampling time starts on the trigger rising edge, and the conversion on the trigger falling edge.
EXTEN bit should be set to 01. BULB bit must not be set when the SMPTRIG bit is set.
When EXTEN bit is set to 00, set SWTRIG to start the sampling and clear SWTRIG bit to start the conversion.
Note: The software is allowed to write this bit only when ADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SMPR1</name>
          <displayName>SMPR1</displayName>
          <description>ADC sample time register 1</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SMP0</name>
              <description>Channel x sampling time selection
These bits are written by software to select the sampling time individually for each channel. During sample cycles, the channel selection bits must remain unchanged.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically. Keep the corresponding SMPx[2:0] setting to the reset value.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMP1</name>
              <description>Channel x sampling time selection
These bits are written by software to select the sampling time individually for each channel. During sample cycles, the channel selection bits must remain unchanged.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically. Keep the corresponding SMPx[2:0] setting to the reset value.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMP2</name>
              <description>Channel x sampling time selection
These bits are written by software to select the sampling time individually for each channel. During sample cycles, the channel selection bits must remain unchanged.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically. Keep the corresponding SMPx[2:0] setting to the reset value.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMP3</name>
              <description>Channel x sampling time selection
These bits are written by software to select the sampling time individually for each channel. During sample cycles, the channel selection bits must remain unchanged.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically. Keep the corresponding SMPx[2:0] setting to the reset value.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMP4</name>
              <description>Channel x sampling time selection
These bits are written by software to select the sampling time individually for each channel. During sample cycles, the channel selection bits must remain unchanged.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically. Keep the corresponding SMPx[2:0] setting to the reset value.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMP5</name>
              <description>Channel x sampling time selection
These bits are written by software to select the sampling time individually for each channel. During sample cycles, the channel selection bits must remain unchanged.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically. Keep the corresponding SMPx[2:0] setting to the reset value.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMP6</name>
              <description>Channel x sampling time selection
These bits are written by software to select the sampling time individually for each channel. During sample cycles, the channel selection bits must remain unchanged.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically. Keep the corresponding SMPx[2:0] setting to the reset value.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMP7</name>
              <description>Channel x sampling time selection
These bits are written by software to select the sampling time individually for each channel. During sample cycles, the channel selection bits must remain unchanged.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically. Keep the corresponding SMPx[2:0] setting to the reset value.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMP8</name>
              <description>Channel x sampling time selection
These bits are written by software to select the sampling time individually for each channel. During sample cycles, the channel selection bits must remain unchanged.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically. Keep the corresponding SMPx[2:0] setting to the reset value.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMP9</name>
              <description>Channel x sampling time selection
These bits are written by software to select the sampling time individually for each channel. During sample cycles, the channel selection bits must remain unchanged.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically. Keep the corresponding SMPx[2:0] setting to the reset value.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMPPLUS</name>
              <description>Addition of one clock cycle to the sampling time.
To make sure no conversion is ongoing, the software is allowed to write this bit only when ADSTART = 0 and JADSTART = 0.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SMPR2</name>
          <displayName>SMPR2</displayName>
          <description>ADC sample time register 2</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SMP10</name>
              <description>Channel x sampling time selection
These bits are written by software to select the sampling time individually for each channel. During sampling cycles, the channel selection bits must remain unchanged.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically. Keep the corresponding SMPx[2:0] setting to the reset value.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMP11</name>
              <description>Channel x sampling time selection
These bits are written by software to select the sampling time individually for each channel. During sampling cycles, the channel selection bits must remain unchanged.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically. Keep the corresponding SMPx[2:0] setting to the reset value.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMP12</name>
              <description>Channel x sampling time selection
These bits are written by software to select the sampling time individually for each channel. During sampling cycles, the channel selection bits must remain unchanged.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically. Keep the corresponding SMPx[2:0] setting to the reset value.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMP13</name>
              <description>Channel x sampling time selection
These bits are written by software to select the sampling time individually for each channel. During sampling cycles, the channel selection bits must remain unchanged.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically. Keep the corresponding SMPx[2:0] setting to the reset value.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMP14</name>
              <description>Channel x sampling time selection
These bits are written by software to select the sampling time individually for each channel. During sampling cycles, the channel selection bits must remain unchanged.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically. Keep the corresponding SMPx[2:0] setting to the reset value.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMP15</name>
              <description>Channel x sampling time selection
These bits are written by software to select the sampling time individually for each channel. During sampling cycles, the channel selection bits must remain unchanged.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically. Keep the corresponding SMPx[2:0] setting to the reset value.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMP16</name>
              <description>Channel x sampling time selection
These bits are written by software to select the sampling time individually for each channel. During sampling cycles, the channel selection bits must remain unchanged.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically. Keep the corresponding SMPx[2:0] setting to the reset value.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMP17</name>
              <description>Channel x sampling time selection
These bits are written by software to select the sampling time individually for each channel. During sampling cycles, the channel selection bits must remain unchanged.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically. Keep the corresponding SMPx[2:0] setting to the reset value.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMP18</name>
              <description>Channel x sampling time selection
These bits are written by software to select the sampling time individually for each channel. During sampling cycles, the channel selection bits must remain unchanged.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically. Keep the corresponding SMPx[2:0] setting to the reset value.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TR1</name>
          <displayName>TR1</displayName>
          <description>ADC watchdog threshold register 1</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x0FFF0000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LT1</name>
              <description>Analog watchdog 1 lower threshold
These bits are written by software to define the lower threshold for the analog watchdog 1.
Refer to Section 25.4.29: Analog window watchdog (AWD1EN, JAWD1EN, AWD1SGL, AWD1CH, AWD2CH, AWD3CH, AWD_HTx, AWD_LTx, AWDx)
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AWDFILT</name>
              <description>Analog watchdog filtering parameter
This bit is set and cleared by software.
...
Note: The software is allowed to write this bit only when ADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HT1</name>
              <description>Analog watchdog 1 higher threshold
These bits are written by software to define the higher threshold for the analog watchdog 1. 
Refer to Section 25.4.29: Analog window watchdog (AWD1EN, JAWD1EN, AWD1SGL, AWD1CH, AWD2CH, AWD3CH, AWD_HTx, AWD_LTx, AWDx)
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TR2</name>
          <displayName>TR2</displayName>
          <description>ADC watchdog threshold register 2</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00FF0000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LT2</name>
              <description>Analog watchdog 2 lower threshold
These bits are written by software to define the lower threshold for the analog watchdog 2.
Refer to Section 25.4.29: Analog window watchdog (AWD1EN, JAWD1EN, AWD1SGL, AWD1CH, AWD2CH, AWD3CH, AWD_HTx, AWD_LTx, AWDx)
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HT2</name>
              <description>Analog watchdog 2 higher threshold
These bits are written by software to define the higher threshold for the analog watchdog 2. 
Refer to Section 25.4.29: Analog window watchdog (AWD1EN, JAWD1EN, AWD1SGL, AWD1CH, AWD2CH, AWD3CH, AWD_HTx, AWD_LTx, AWDx)
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TR3</name>
          <displayName>TR3</displayName>
          <description>ADC watchdog threshold register 3</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x00FF0000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LT3</name>
              <description>Analog watchdog 3 lower threshold
These bits are written by software to define the lower threshold for the analog watchdog 3.
This watchdog compares the 8-bit of LT3 with the 8 MSB of the converted data.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HT3</name>
              <description>Analog watchdog 3 higher threshold
These bits are written by software to define the higher threshold for the analog watchdog 3.
Refer to Section 25.4.29: Analog window watchdog (AWD1EN, JAWD1EN, AWD1SGL, AWD1CH, AWD2CH, AWD3CH, AWD_HTx, AWD_LTx, AWDx)
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SQR1</name>
          <displayName>SQR1</displayName>
          <description>ADC regular sequence register 1</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>L</name>
              <description>Regular channel sequence length
These bits are written by software to define the total number of conversions in the regular channel conversion sequence.
...
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SQ1</name>
              <description>1st conversion in regular sequence
These bits are written by software with the channel number (0 to 18) assigned as the 1st in the regular conversion sequence.
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>6</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SQ2</name>
              <description>2nd conversion in regular sequence
These bits are written by software with the channel number (0 to 18) assigned as the 2nd in the regular conversion sequence.
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SQ3</name>
              <description>3rd conversion in regular sequence
These bits are written by software with the channel number (0 to 18) assigned as the 3rd in the regular conversion sequence.
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>18</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SQ4</name>
              <description>4th conversion in regular sequence
These bits are written by software with the channel number (0 to 18) assigned as the 4th in the regular conversion sequence.
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>24</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SQR2</name>
          <displayName>SQR2</displayName>
          <description>ADC regular sequence register 2</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SQ5</name>
              <description>5th conversion in regular sequence
These bits are written by software with the channel number (0 to 18) assigned as the 5th in the regular conversion sequence.
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SQ6</name>
              <description>6th conversion in regular sequence
These bits are written by software with the channel number (0 to 18) assigned as the 6th in the regular conversion sequence.
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>6</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SQ7</name>
              <description>7th conversion in regular sequence
These bits are written by software with the channel number (0 to 18) assigned as the 7th in the regular conversion sequence.
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SQ8</name>
              <description>8th conversion in regular sequence
These bits are written by software with the channel number (0 to 18) assigned as the 8th in the regular conversion sequence
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>18</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SQ9</name>
              <description>9th conversion in regular sequence
These bits are written by software with the channel number (0 to 18) assigned as the 9th in the regular conversion sequence.
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>24</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SQR3</name>
          <displayName>SQR3</displayName>
          <description>ADC regular sequence register 3</description>
          <addressOffset>0x38</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SQ10</name>
              <description>10th conversion in regular sequence
These bits are written by software with the channel number (0 to 18) assigned as the 10th in the regular conversion sequence.
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SQ11</name>
              <description>11th conversion in regular sequence
These bits are written by software with the channel number (0 to 18) assigned as the 11th in the regular conversion sequence.
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>6</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SQ12</name>
              <description>12th conversion in regular sequence
These bits are written by software with the channel number (0 to 18) assigned as the 12th in the regular conversion sequence.
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SQ13</name>
              <description>13th conversion in regular sequence
These bits are written by software with the channel number (0 to 18) assigned as the 13th in the regular conversion sequence.
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>18</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SQ14</name>
              <description>14th conversion in regular sequence
These bits are written by software with the channel number (0 to 18) assigned as the 14th in the regular conversion sequence.
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>24</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SQR4</name>
          <displayName>SQR4</displayName>
          <description>ADC regular sequence register 4</description>
          <addressOffset>0x3C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SQ15</name>
              <description>15th conversion in regular sequence
These bits are written by software with the channel number (0 to 18) assigned as the 15th in the regular conversion sequence.
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SQ16</name>
              <description>16th conversion in regular sequence
These bits are written by software with the channel number (0 to 18) assigned as the 16th in the regular conversion sequence.
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>6</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DR</name>
          <displayName>DR</displayName>
          <description>ADC regular data register</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RDATA</name>
              <description>Regular data converted
These bits are read-only. They contain the conversion result from the last converted regular channel. The data are left- or right-aligned as described in Section 25.4.26: Data management.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>JSQR</name>
          <displayName>JSQR</displayName>
          <description>ADC injected sequence register</description>
          <addressOffset>0x4C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>JL</name>
              <description>Injected channel sequence length
These bits are written by software to define the total number of conversions in the injected channel conversion sequence.
Note: The software is allowed to write these bits only when JADSTART = 0 (which ensures that no injected conversion is ongoing).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JEXTSEL</name>
              <description>External Trigger Selection for injected group
These bits select the external event used to trigger the start of conversion of an injected group:
...
Note: The software is allowed to write these bits only when JADSTART = 0 (which ensures that no injected conversion is ongoing).</description>
              <bitOffset>2</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JEXTEN</name>
              <description>External trigger enable and polarity selection for injected channels
These bits are set and cleared by software to select the external trigger polarity and enable the trigger of an injected group. 
Note: The software is allowed to write these bits only when JADSTART = 0 (which ensures that no injected conversion is ongoing).
Note: If JQM = 1 and if the Queue of Context becomes empty, the software and hardware triggers of the injected sequence are both internally disabled (refer to Section 25.4.21: Queue of context for injected conversions)</description>
              <bitOffset>7</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JSQ1</name>
              <description>1st conversion in the injected sequence
These bits are written by software with the channel number (0 to 18) assigned as the 1st in the injected conversion sequence.
Note: The software is allowed to write these bits only when JADSTART = 0 (which ensures that no injected conversion is ongoing).</description>
              <bitOffset>9</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JSQ2</name>
              <description>2nd conversion in the injected sequence
These bits are written by software with the channel number (0 to 18) assigned as the 2nd in the injected conversion sequence.
Note: The software is allowed to write these bits only when JADSTART = 0 (which ensures that no injected conversion is ongoing).</description>
              <bitOffset>15</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JSQ3</name>
              <description>3rd conversion in the injected sequence
These bits are written by software with the channel number (0 to 18) assigned as the 3rd in the injected conversion sequence.
Note: The software is allowed to write these bits only when JADSTART = 0 (which ensures that no injected conversion is ongoing).</description>
              <bitOffset>21</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JSQ4</name>
              <description>4th conversion in the injected sequence
These bits are written by software with the channel number (0 to 18) assigned as the 4th in the injected conversion sequence.
Note: The software is allowed to write these bits only when JADSTART = 0 (which ensures that no injected conversion is ongoing).</description>
              <bitOffset>27</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OFR1</name>
          <displayName>OFR1</displayName>
          <description>ADC offset 1 register</description>
          <addressOffset>0x60</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OFFSET</name>
              <description>Data offset y for the channel programmed into bits OFFSET_CH[4:0]
These bits are written by software to define the offset to be subtracted from the raw converted data when converting a channel (can be regular or injected). The channel to which applies the data offset must be programmed in the bits OFFSET_CH[4:0]. The conversion result can be read from in the ADC_DR (regular conversion) or from in the ADC_JDRyi registers (injected conversion). 
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
If several offset (OFFSET) point to the same channel, only the offset with the lowest x value is considered for the subtraction. 
Note: Ex: if OFFSET1_CH[4:0] = 4 and OFFSET2_CH[4:0] = 4, this is OFFSET1[11:0] which is subtracted when converting channel 4.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OFFSETPOS</name>
              <description>Positive offset 
This bit is set and cleared by software to enable the positive offset.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SATEN</name>
              <description>Saturation enable
This bit is set and cleared by software to enable the saturation at 0x000 and 0xFFF for the offset function.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OFFSET_CH</name>
              <description>Channel selection for the data offset y
These bits are written by software to define the channel to which the offset programmed into bits OFFSET[11:0] applies. 
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically and must not be selected for the data offset y. 
Note: If OFFSET_EN is set, it is not allowed to select the same channel for different ADC_OFRy registers.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OFFSET_EN</name>
              <description>Offset y enable
This bit is written by software to enable or disable the offset programmed into bits OFFSET[11:0]. 
Note: The software is allowed to write this bit only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OFR2</name>
          <displayName>OFR2</displayName>
          <description>ADC offset 2 register</description>
          <addressOffset>0x64</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OFFSET</name>
              <description>Data offset y for the channel programmed into bits OFFSET_CH[4:0]
These bits are written by software to define the offset to be subtracted from the raw converted data when converting a channel (can be regular or injected). The channel to which applies the data offset must be programmed in the bits OFFSET_CH[4:0]. The conversion result can be read from in the ADC_DR (regular conversion) or from in the ADC_JDRyi registers (injected conversion). 
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
If several offset (OFFSET) point to the same channel, only the offset with the lowest x value is considered for the subtraction. 
Note: Ex: if OFFSET1_CH[4:0] = 4 and OFFSET2_CH[4:0] = 4, this is OFFSET1[11:0] which is subtracted when converting channel 4.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OFFSETPOS</name>
              <description>Positive offset 
This bit is set and cleared by software to enable the positive offset.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SATEN</name>
              <description>Saturation enable
This bit is set and cleared by software to enable the saturation at 0x000 and 0xFFF for the offset function.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OFFSET_CH</name>
              <description>Channel selection for the data offset y
These bits are written by software to define the channel to which the offset programmed into bits OFFSET[11:0] applies. 
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically and must not be selected for the data offset y. 
Note: If OFFSET_EN is set, it is not allowed to select the same channel for different ADC_OFRy registers.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OFFSET_EN</name>
              <description>Offset y enable
This bit is written by software to enable or disable the offset programmed into bits OFFSET[11:0]. 
Note: The software is allowed to write this bit only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OFR3</name>
          <displayName>OFR3</displayName>
          <description>ADC offset 3 register</description>
          <addressOffset>0x68</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OFFSET</name>
              <description>Data offset y for the channel programmed into bits OFFSET_CH[4:0]
These bits are written by software to define the offset to be subtracted from the raw converted data when converting a channel (can be regular or injected). The channel to which applies the data offset must be programmed in the bits OFFSET_CH[4:0]. The conversion result can be read from in the ADC_DR (regular conversion) or from in the ADC_JDRyi registers (injected conversion). 
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
If several offset (OFFSET) point to the same channel, only the offset with the lowest x value is considered for the subtraction. 
Note: Ex: if OFFSET1_CH[4:0] = 4 and OFFSET2_CH[4:0] = 4, this is OFFSET1[11:0] which is subtracted when converting channel 4.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OFFSETPOS</name>
              <description>Positive offset 
This bit is set and cleared by software to enable the positive offset.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SATEN</name>
              <description>Saturation enable
This bit is set and cleared by software to enable the saturation at 0x000 and 0xFFF for the offset function.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OFFSET_CH</name>
              <description>Channel selection for the data offset y
These bits are written by software to define the channel to which the offset programmed into bits OFFSET[11:0] applies. 
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically and must not be selected for the data offset y. 
Note: If OFFSET_EN is set, it is not allowed to select the same channel for different ADC_OFRy registers.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OFFSET_EN</name>
              <description>Offset y enable
This bit is written by software to enable or disable the offset programmed into bits OFFSET[11:0]. 
Note: The software is allowed to write this bit only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OFR4</name>
          <displayName>OFR4</displayName>
          <description>ADC offset 4 register</description>
          <addressOffset>0x6C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OFFSET</name>
              <description>Data offset y for the channel programmed into bits OFFSET_CH[4:0]
These bits are written by software to define the offset to be subtracted from the raw converted data when converting a channel (can be regular or injected). The channel to which applies the data offset must be programmed in the bits OFFSET_CH[4:0]. The conversion result can be read from in the ADC_DR (regular conversion) or from in the ADC_JDRyi registers (injected conversion). 
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
If several offset (OFFSET) point to the same channel, only the offset with the lowest x value is considered for the subtraction. 
Note: Ex: if OFFSET1_CH[4:0] = 4 and OFFSET2_CH[4:0] = 4, this is OFFSET1[11:0] which is subtracted when converting channel 4.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OFFSETPOS</name>
              <description>Positive offset 
This bit is set and cleared by software to enable the positive offset.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SATEN</name>
              <description>Saturation enable
This bit is set and cleared by software to enable the saturation at 0x000 and 0xFFF for the offset function.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OFFSET_CH</name>
              <description>Channel selection for the data offset y
These bits are written by software to define the channel to which the offset programmed into bits OFFSET[11:0] applies. 
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically and must not be selected for the data offset y. 
Note: If OFFSET_EN is set, it is not allowed to select the same channel for different ADC_OFRy registers.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OFFSET_EN</name>
              <description>Offset y enable
This bit is written by software to enable or disable the offset programmed into bits OFFSET[11:0]. 
Note: The software is allowed to write this bit only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>JDR1</name>
          <displayName>JDR1</displayName>
          <description>ADC injected channel 1 data register</description>
          <addressOffset>0x80</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>JDATA</name>
              <description>Injected data
These bits are read-only. They contain the conversion result from injected channel y. The data are left -or right-aligned as described in Section 25.4.26: Data management.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>JDR2</name>
          <displayName>JDR2</displayName>
          <description>ADC injected channel 2 data register</description>
          <addressOffset>0x84</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>JDATA</name>
              <description>Injected data
These bits are read-only. They contain the conversion result from injected channel y. The data are left -or right-aligned as described in Section 25.4.26: Data management.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>JDR3</name>
          <displayName>JDR3</displayName>
          <description>ADC injected channel 3 data register</description>
          <addressOffset>0x88</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>JDATA</name>
              <description>Injected data
These bits are read-only. They contain the conversion result from injected channel y. The data are left -or right-aligned as described in Section 25.4.26: Data management.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>JDR4</name>
          <displayName>JDR4</displayName>
          <description>ADC injected channel 4 data register</description>
          <addressOffset>0x8C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>JDATA</name>
              <description>Injected data
These bits are read-only. They contain the conversion result from injected channel y. The data are left -or right-aligned as described in Section 25.4.26: Data management.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>AWD2CR</name>
          <displayName>AWD2CR</displayName>
          <description>ADC Analog Watchdog 2 Configuration Register</description>
          <addressOffset>0xA0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>AWD2CH</name>
              <description>Analog watchdog 2 channel selection
These bits are set and cleared by software. They enable and select the input channels to be guarded by the analog watchdog 2.
AWD2CH[i] = 0: ADC analog input channel i is not monitored by AWD2
AWD2CH[i] = 1: ADC analog input channel i is monitored by AWD2
When AWD2CH[18:0] = 000..0, the analog Watchdog 2 is disabled
Note: The channels selected by AWD2CH must be also selected into the SQRi or JSQRi registers.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically and must not be selected for the analog watchdog.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>AWD3CR</name>
          <displayName>AWD3CR</displayName>
          <description>ADC Analog Watchdog 3 Configuration Register</description>
          <addressOffset>0xA4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>AWD3CH</name>
              <description>Analog watchdog 3 channel selection
These bits are set and cleared by software. They enable and select the input channels to be guarded by the analog watchdog 3.
AWD3CH[i] = 0: ADC analog input channel i is not monitored by AWD3
AWD3CH[i] = 1: ADC analog input channel i is monitored by AWD3
When AWD3CH[18:0] = 000..0, the analog Watchdog 3 is disabled
Note: The channels selected by AWD3CH must be also selected into the SQRi or JSQRi registers.
Note: The software is allowed to write these bits only when ADSTART = 0 and JADSTART = 0 (which ensures that no conversion is ongoing).
Note: Some channels are not connected physically and must not be selected for the analog watchdog.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIFSEL</name>
          <displayName>DIFSEL</displayName>
          <description>ADC Differential mode Selection Register</description>
          <addressOffset>0xB0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIFSEL</name>
              <description>Differential mode for channels 18 to 0.
These bits are set and cleared by software. They allow to select if a channel is configured as Single-ended or Differential mode.
DIFSEL[i] = 0: ADC analog input channel is configured in Single-ended mode
DIFSEL[i] = 1: ADC analog input channel i is configured in Differential mode
Note: The DIFSEL bits corresponding to channels that are either connected to a single-ended I/O port or to an internal channel must be kept their reset value (Single-ended input mode).
Note: The software is allowed to write these bits only when the ADC is disabled (ADCAL = 0, JADSTART = 0, JADSTP = 0, ADSTART = 0, ADSTP = 0, ADDIS = 0 and ADEN = 0).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CALFACT</name>
          <displayName>CALFACT</displayName>
          <description>ADC Calibration Factors</description>
          <addressOffset>0xB4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CALFACT_S</name>
              <description>Calibration Factors In Single-ended mode
These bits are written by hardware or by software.
Once a single-ended inputs calibration is complete, they are updated by hardware with the calibration factors.
Software can write these bits with a new calibration factor. If the new calibration factor is different from the current one stored into the analog ADC, it is then applied once a new single-ended calibration is launched.
Note: The software is allowed to write these bits only when ADEN = 1, ADSTART = 0 and JADSTART = 0 (ADC is enabled and no calibration is ongoing and no conversion is ongoing).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CALFACT_D</name>
              <description>Calibration Factors in differential mode
These bits are written by hardware or by software.
Once a differential inputs calibration is complete, they are updated by hardware with the calibration factors.
Software can write these bits with a new calibration factor. If the new calibration factor is different from the current one stored into the analog ADC, it is then applied once a new differential calibration is launched.
Note: The software is allowed to write these bits only when ADEN = 1, ADSTART = 0 and JADSTART = 0 (ADC is enabled and no calibration is ongoing and no conversion is ongoing).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OR</name>
          <displayName>OR</displayName>
          <description>ADC option register</description>
          <addressOffset>0xC8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OP0</name>
              <description>Option bit 0</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="ADC1">
      <name>ADC2</name>
      <baseAddress>0x40022100</baseAddress>
    </peripheral>
    <peripheral>
      <name>ADC12_common</name>
      <description>master and slave ADC common</description>
      <groupName>ADC</groupName>
      <baseAddress>0x40022300</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>ADC1_2</name>
        <description>ADC1/2 global interrupt</description>
        <value>38</value>
      </interrupt>
      <registers>
        <register>
          <name>CSR</name>
          <displayName>CSR</displayName>
          <description>ADC common status register</description>
          <addressOffset>0x300</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ADRDY_MST</name>
              <description>Master ADC ready
This bit is a copy of the ADRDY bit in the corresponding ADC_ISR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EOSMP_MST</name>
              <description>End of Sampling phase flag of the master ADC
This bit is a copy of the EOSMP bit in the corresponding ADC_ISR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EOC_MST</name>
              <description>End of regular conversion of the master ADC
This bit is a copy of the EOC bit in the corresponding ADC_ISR register.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EOS_MST</name>
              <description>End of regular sequence flag of the master ADC
This bit is a copy of the EOS bit in the corresponding ADC_ISR register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OVR_MST</name>
              <description>Overrun flag of the master ADC
This bit is a copy of the OVR bit in the corresponding ADC_ISR register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>JEOC_MST</name>
              <description>End of injected conversion flag of the master ADC
This bit is a copy of the JEOC bit in the corresponding ADC_ISR register.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>JEOS_MST</name>
              <description>End of injected sequence flag of the master ADC
This bit is a copy of the JEOS bit in the corresponding ADC_ISR register.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>AWD1_MST</name>
              <description>Analog watchdog 1 flag of the master ADC
This bit is a copy of the AWD1 bit in the corresponding ADC_ISR register.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>AWD2_MST</name>
              <description>Analog watchdog 2 flag of the master ADC
This bit is a copy of the AWD2 bit in the corresponding ADC_ISR register.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>AWD3_MST</name>
              <description>Analog watchdog 3 flag of the master ADC
This bit is a copy of the AWD3 bit in the corresponding ADC_ISR register.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>JQOVF_MST</name>
              <description>Injected Context Queue Overflow flag of the master ADC
This bit is a copy of the JQOVF bit in the corresponding ADC_ISR register.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ADRDY_SLV</name>
              <description>Slave ADC ready
This bit is a copy of the ADRDY bit in the corresponding ADC_ISR register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EOSMP_SLV</name>
              <description>End of Sampling phase flag of the slave ADC
This bit is a copy of the EOSMP2 bit in the corresponding ADC_ISR register.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EOC_SLV</name>
              <description>End of regular conversion of the slave ADC
This bit is a copy of the EOC bit in the corresponding ADC_ISR register.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EOS_SLV</name>
              <description>End of regular sequence flag of the slave ADC. This bit is a copy of the EOS bit in the corresponding ADC_ISR register.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OVR_SLV</name>
              <description>Overrun flag of the slave ADC 
This bit is a copy of the OVR bit in the corresponding ADC_ISR register.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>JEOC_SLV</name>
              <description>End of injected conversion flag of the slave ADC 
This bit is a copy of the JEOC bit in the corresponding ADC_ISR register.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>JEOS_SLV</name>
              <description>End of injected sequence flag of the slave ADC 
This bit is a copy of the JEOS bit in the corresponding ADC_ISR register.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>AWD1_SLV</name>
              <description>Analog watchdog 1 flag of the slave ADC 
This bit is a copy of the AWD1 bit in the corresponding ADC_ISR register.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>AWD2_SLV</name>
              <description>Analog watchdog 2 flag of the slave ADC 
This bit is a copy of the AWD2 bit in the corresponding ADC_ISR register.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>AWD3_SLV</name>
              <description>Analog watchdog 3 flag of the slave ADC
This bit is a copy of the AWD3 bit in the corresponding ADC_ISR register.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>JQOVF_SLV</name>
              <description>Injected Context Queue Overflow flag of the slave ADC 
This bit is a copy of the JQOVF bit in the corresponding ADC_ISR register.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CCR</name>
          <displayName>CCR</displayName>
          <description>ADC common control register</description>
          <addressOffset>0x308</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DUAL</name>
              <description>Dual ADC mode selection 
These bits are written by software to select the operating mode. 00000 corresponds to Independent mode. Values 00001 to 01001 correspond to Dual mode, master and slave ADCs working together.
Others: Reserved, must not be used
Note: The software is allowed to write these bits only when the ADCs are disabled (ADCAL = 0, JADSTART = 0, ADSTART = 0, ADSTP = 0, ADDIS = 0 and ADEN = 0).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DELAY</name>
              <description>Delay between 2 sampling phases 
These bits are set and cleared by software. These bits are used in dual interleaved modes. Refer to Table 198 for the value of ADC resolution versus DELAY bits values. 
Note: The software is allowed to write these bits only when the ADCs are disabled (ADCAL = 0, JADSTART = 0, ADSTART = 0, ADSTP = 0, ADDIS = 0 and ADEN = 0).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DMACFG</name>
              <description>DMA configuration (for dual ADC mode)
This bit is set and cleared by software to select between two DMA modes of operation and is effective only when DMAEN = 1.
For more details, refer to Section : Managing conversions using the DMA
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MDMA</name>
              <description>Direct memory access mode for dual ADC mode 
This bitfield is set and cleared by software. Refer to the DMA controller section for more details.
Note: The software is allowed to write these bits only when ADSTART = 0 (which ensures that no regular conversion is ongoing).</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CKMODE</name>
              <description>ADC clock mode
These bits are set and cleared by software to define the ADC clock scheme (which is common to both master and slave ADCs):
In all synchronous clock modes, there is no jitter in the delay from a timer trigger to the start of a conversion.
Note: The software is allowed to write these bits only when the ADCs are disabled (ADCAL = 0, JADSTART = 0, ADSTART = 0, ADSTP = 0, ADDIS = 0 and ADEN = 0).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PRESC</name>
              <description>ADC prescaler
These bits are set and cleared by software to select the frequency of the clock to the ADC. The clock is common for all the ADCs.
other: reserved
Note: The software is allowed to write these bits only when the ADC is disabled (ADCAL = 0, JADSTART = 0, ADSTART = 0, ADSTP = 0, ADDIS = 0 and ADEN = 0). The ADC prescaler value is applied only when CKMODE[1:0] = 0b00.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VREFEN</name>
              <description>V&lt;sub&gt;REFINT&lt;/sub&gt; enable
This bit is set and cleared by software to enable/disable the V&lt;sub&gt;REFINT&lt;/sub&gt; channel.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TSEN</name>
              <description>V&lt;sub&gt;SENSE&lt;/sub&gt; enable
This bit is set and cleared by software to control V&lt;sub&gt;SENSE&lt;/sub&gt;.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VBATEN</name>
              <description>VBAT enable
This bit is set and cleared by software to control.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CDR</name>
          <displayName>CDR</displayName>
          <description>ADC common regular data register for dual mode</description>
          <addressOffset>0x30C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RDATA_MST</name>
              <description>Regular data of the master ADC.
In dual mode, these bits contain the regular data of the master ADC. Refer to Section 25.4.31: Dual ADC modes.
The data alignment is applied as described in Section : Data register, data alignment and offset (ADC_DR, OFFSET, OFFSET_CH, ALIGN))
In MDMA = 0b11 mode, bits 15:8 contains SLV_ADC_DR[7:0], bits 7:0 contains MST_ADC_DR[7:0].</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RDATA_SLV</name>
              <description>Regular data of the slave ADC
In dual mode, these bits contain the regular data of the slave ADC. Refer to Section 25.4.31: Dual ADC modes.
The data alignment is applied as described in Section : Data register, data alignment and offset (ADC_DR, OFFSET, OFFSET_CH, ALIGN))</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HWCFGR0</name>
          <displayName>HWCFGR0</displayName>
          <description>ADC hardware configuration register</description>
          <addressOffset>0x3F0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00001112</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ADCNUM</name>
              <description>Number of ADCs implemented</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>MULPIPE</name>
              <description>Number of pipeline stages</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OPBITS</name>
              <description>Number of option bits</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>IDLEVALUE</name>
              <description>Idle value for non-selected channels</description>
              <bitOffset>12</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>VERR</name>
          <displayName>VERR</displayName>
          <description>ADC version register</description>
          <addressOffset>0x3F4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000012</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MINREV</name>
              <description>Minor revision
These bits returns the ADC IP minor revision</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>MAJREV</name>
              <description>Major revision
These bits returns the ADC IP major revision</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IPDR</name>
          <displayName>IPDR</displayName>
          <description>ADC identification register</description>
          <addressOffset>0x3F8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00110006</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ID</name>
              <description>Peripheral identifier
These bits returns the ADC identifier.
ID[31:0] = 0x0011 0006: c7amba_aditf5_90_v1</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SIDR</name>
          <displayName>SIDR</displayName>
          <description>ADC size identification register</description>
          <addressOffset>0x3FC</addressOffset>
          <size>0x20</size>
          <resetValue>0xA3C5DD01</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SID</name>
              <description>Size Identification
SID[31:8]: fixed code that characterizes the ADC_SIDR register. This field is always read at 0xA3C5DD. 
SID[7:0]: read-only numeric field that returns the address offset (in Kbytes) of the identification registers from the IP base address:</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>ADF</name>
      <description>Audio digital filter</description>
      <groupName>ADF</groupName>
      <baseAddress>0x4002F000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0xF4</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>ADF1_FLT0</name>
        <description>ADF1 filter 0 global interrupt</description>
        <value>126</value>
      </interrupt>
      <registers>
        <register>
          <name>GCR</name>
          <displayName>GCR</displayName>
          <description>ADF global control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TRGO</name>
              <description>Trigger output control
This bit is set by software and reset by hardware. It is used to start the acquisition of several filters synchronously. It is also used to synchronize several ADF together by controlling the adf_trgo signal.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CKGCR</name>
          <displayName>CKGCR</displayName>
          <description>ADF clock generator control register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CKGDEN</name>
              <description>CKGEN dividers enable
This bit is set and reset by software. It is used to enable/disable the clock dividers of the CKGEN: PROCDIV and CCKDIV.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CCK0EN</name>
              <description>ADF_CCK0 clock enable
This bit is set and reset by software. It is used to control the generation of the bitstream clock on the ADF_CCK0 pin.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CCK1EN</name>
              <description>ADF_CCK1 clock enable
This bit is set and reset by software. It is used to control the generation of the bitstream clock on the ADF_CCK1 pin.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CKGMOD</name>
              <description>Clock generator mode
This bit is set and reset by software. It is used to define the way the clock generator is enabled. This bit must not be changed if the filter is enabled (DFTEN = 1).
Note: This bit can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CCK0DIR</name>
              <description>ADF_CCK0 direction
This bit is set and reset by software. It is used to control the direction of the ADF_CCK0 pin.
Note: This bit can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CCK1DIR</name>
              <description>ADF_CCK1 direction
This bit is set and reset by software. It is used to control the direction of the ADF_CCK1 pin.
Note: This bit can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TRGSENS</name>
              <description>CKGEN trigger sensitivity selection
This bit is set and cleared by software. It is used to select the trigger sensitivity of the trigger signals. This bit is not significant if the CKGMOD = 0.
Note: When the trigger source is TRGO, the sensitivity is forced to falling edge, thus TRGSENS value is not taken into account. This bit can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TRGSRC</name>
              <description>Digital filter trigger signal selection
This field is set and cleared by software. It is used to select which external signals trigger the corresponding filter. This field is not significant if the CKGMOD = 0.
000x: TRGO selected
others: reserved
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CCKDIV</name>
              <description>Divider to control the ADF_CCK clock
This field is set and reset by software. It is used to adjust the frequency of the ADF_CCK clock. The input clock of this divider is the clock provided to the SITF. More globally, the frequency of the ADF_CCK is given by the following formula:
This field must not be changed if the filter is enabled (DFTEN = 1).
...
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PROCDIV</name>
              <description>Divider to control the serial interface clock
this field is set and reset by software. It is used to adjust the frequency of the clock provided to the SITF.
This field must not be changed if the filter is enabled (DFTEN = 1).
...
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>24</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CKGACTIVE</name>
              <description>Clock generator active flag
This bit is set and cleared by hardware. Ii is used by the application to check if the clock generator is effectively enabled (active) or not. The protected fields of this function can only be updated when CKGACTIVE = 0 (see Section 46.4.13: Register protection for details). 
The delay between a transition on CKGDEN and a transition on CKGACTIVE is two periods of AHB clock and two 2 periods of adf_proc_ck.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SITF0CR</name>
          <displayName>SITF0CR</displayName>
          <description>ADF serial interface control register 0</description>
          <addressOffset>0x80</addressOffset>
          <size>0x20</size>
          <resetValue>0x00001F00</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SITFEN</name>
              <description>Serial interface enable
This bit is set and cleared by software. It is used to enable/disable the serial interface.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SCKSRC</name>
              <description>Serial clock source
This field is set and cleared by software. It is used to select the clock source of the serial interface.
others: reserved
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>1</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SITFMOD</name>
              <description>Serial interface type
This field is set and cleared by software. It is used to define the serial interface type.
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STH</name>
              <description>Manchester symbol threshold/SPI threshold
This field is set and cleared by software. It is used for Manchester mode to define the expected symbol threshold levels (seer to Manchester mode for details on computation).
In addition this field is used to define the timeout value for the clock absence detection in Normal SPI mode. STH[4:0] values lower than four are invalid.
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SITFACTIVE</name>
              <description>Serial interface active flag
This bit is set and cleared by hardware. It is used by the application to check if the serial interface is effectively enabled (active) or not. The protected fields of this function can only be updated when SITFACTIVE is set to 0 (see Section 46.4.13: Register protection for details). 
The delay between a transition on SITFEN and a transition on SITFACTIVE is two periods of AHB clock and two periods of adf_proc_ck.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>BSMX0CR</name>
          <displayName>BSMX0CR</displayName>
          <description>ADF bitstream matrix control register 0</description>
          <addressOffset>0x84</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BSSEL</name>
              <description>Bitstream selection
This field is set and cleared by software. It is used to select the bitstream to be processed for DFLT0.
others: reserved
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BSMXACTIVE</name>
              <description>BSMX active flag
This bit is set and cleared by hardware. It is used by the application to check if the BSMX is effectively enabled (active) or not. BSSEL[4:0] can only be updated when BSMXACTIVE is set to 0. This BSMXACTIVE flag cannot go to 0 if DFLT0 is enabled.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DFLT0CR</name>
          <displayName>DFLT0CR</displayName>
          <description>ADF digital filter control register 0</description>
          <addressOffset>0x88</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DFLTEN</name>
              <description>DFLT0 enable
This bit is set and cleared by software. It is used to control the start of acquisition of the DFLT0 path. This bit behavior depends on ACQMOD[2:0] and external events. The serial or parallel interface delivering the samples must be enabled as well.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>DMAEN</name>
              <description>DMA requests enable
This bit is set and cleared by software. It is used to control the generation of DMA request to transfer the processed samples into the memory.
Note: This bit can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FTH</name>
              <description>RXFIFO threshold selection
This bit is set and cleared by software. It is used to select the RXFIFO threshold. 
Note: This bit can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACQMOD</name>
              <description>DFLT0 trigger mode
This field is set and cleared by software. It is used to select the filter trigger mode.
others: same as 000
Note: This field can be write-protected (see Section 46.4.13: Register protection for details)..</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TRGSENS</name>
              <description>DFLT0 trigger sensitivity selection
This field is set and cleared by software. It is used to select the trigger sensitivity of the external signals
When the trigger source is TRGO, TRGSENS value is not taken into account. When TRGO is selected, the sensitivity is forced to falling edge.
Note: This bit can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TRGSRC</name>
              <description>DFLT0 trigger signal selection
This field is set and cleared by software. It is used to select which external signals trigger DFLT0.
others: Reserved
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NBDIS</name>
              <description>Number of samples to be discarded
This field is set and cleared by software. It is used to define the number of samples to be discarded every time DFLT0 is re-started.
...
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>20</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DFLTRUN</name>
              <description>DFLT0 run status flag
This bit is set and cleared by hardware. It indicates if DFLT0 is running or not.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DFLTACTIVE</name>
              <description>DFLT0 active flag
This bit is set and cleared by hardware. It indicates if DFLT0 is active: can be running or waiting for events.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DFLT0CICR</name>
          <displayName>DFLT0CICR</displayName>
          <description>ADF digital filer configuration register 0</description>
          <addressOffset>0x8C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DATSRC</name>
              <description>Source data for the digital filter
This field is set and cleared by software.
0x: Stream coming from the BSMX selected
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CICMOD</name>
              <description>Select the CIC order
This field is set and cleared by software. It is used to select the order of the MCIC.
others: reserved
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCICD</name>
              <description>CIC decimation ratio selection
This field is set and cleared by software.It is used to select the CIC decimation ratio. A decimation ratio smaller than two is not allowed. The decimation ratio is given by (CICDEC+1).
...
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCICD8</name>
              <description>CIC decimation ratio selection
This field is set and cleared by software.It is used to select the CIC decimation ratio. A decimation ratio smaller than two is not allowed. The decimation ratio is given by (CICDEC+1).
...
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SCALE</name>
              <description>Scaling factor selection
This field is set and cleared by software. It is used to select the gain to be applied at CIC output (see Table 419 for details). If the application attempts to write a new gain value while the previous one is not yet applied, this new gain value is ignored. Reading back this field informs the application on the current gain value.
...
...
others: Reserved</description>
              <bitOffset>20</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DFLT0RSFR</name>
          <displayName>DFLT0RSFR</displayName>
          <description>ADF reshape filter configuration register 0</description>
          <addressOffset>0x90</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RSFLTBYP</name>
              <description>Reshaper filter bypass
This bit is set and cleared by software. It is used to bypass the reshape filter and its decimation block.
Note: This bit can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RSFLTD</name>
              <description>Reshaper filter decimation ratio
This bit is set and cleared by software. It is used to select the decimation ratio for the reshape filter
Note: This bit can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HPFBYP</name>
              <description>High-pass filter bypass
This bit is set and cleared by software. It is used to bypass the high-pass filter.
Note: This bit can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HPFC</name>
              <description>High-pass filter cut-off frequency
This field is set and cleared by software. it is used to select the cut-off frequency of the high-pass filter. F&lt;sub&gt;PCM&lt;/sub&gt; represents the sampling frequency at HPF input.
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DLY0CR</name>
          <displayName>DLY0CR</displayName>
          <description>ADF delay control register 0</description>
          <addressOffset>0xA4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SKPDLY</name>
              <description>Delay to apply to a bitstream
This field is set and cleared by software. It defines the number of input samples that are skipped. Skipping is applied immediately after writing to this field, if SKPBF = 0 and DFLTEN = 1. If SKPBF = 1, the value written into the register is ignored by the delay state machine.
...</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SKPBF</name>
              <description>Skip busy flag
This bit is set and cleared by hardware. It is used to control if the delay sequence is completed.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DFLT0IER</name>
          <displayName>DFLT0IER</displayName>
          <description>ADF DFLT0 interrupt enable register</description>
          <addressOffset>0xAC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FTHIE</name>
              <description>RXFIFO threshold interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOVRIE</name>
              <description>Data overflow interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SATIE</name>
              <description>Saturation detection interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CKABIE</name>
              <description>Clock absence detection interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RFOVRIE</name>
              <description>Reshape filter overrun interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SDDETIE</name>
              <description>Sound activity detection interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SDLVLIE</name>
              <description>SAD sound-level value ready enable
This bit is set and cleared by software.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DFLT0ISR</name>
          <displayName>DFLT0ISR</displayName>
          <description>ADF DFLT0 interrupt status register 0</description>
          <addressOffset>0xB0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FTHF</name>
              <description>RXFIFO threshold flag
This bit is set by hardware, and cleared by the hardware when the RXFIFO level is lower than the threshold.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DOVRF</name>
              <description>Data overflow flag
This bit is set by hardware and cleared by software by writing this bit to 1.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXNEF</name>
              <description>RXFIFO not empty flag
This bit is set and cleared by hardware according to the RXFIFO level.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SATF</name>
              <description>Saturation detection flag
This bit is set by hardware and cleared by software by writing this bit to 1.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CKABF</name>
              <description>Clock absence detection flag
This bit is set by hardware and cleared by software by writing this bit to 1.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RFOVRF</name>
              <description>Reshape filter overrun detection flag
This bit is set by hardware and cleared by software by writing this bit to 1.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SDDETF</name>
              <description>Sound activity detection flag
This bit is set by hardware and cleared by software by writing this bit to 1.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SDLVLF</name>
              <description>Sound level value ready flag
This bit is set by hardware and cleared by software by writing this bit to 1.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SADCR</name>
          <displayName>SADCR</displayName>
          <description>ADF SAD control register</description>
          <addressOffset>0xB8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SADEN</name>
              <description>Sound activity detector enable
This bit is set and cleared by software. It is used to enable/disable the SAD.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DATCAP</name>
              <description>Data capture mode
This field is set and cleared by software. It is used to define in which conditions, the samples provided by DLFT0 are stored into the memory.
1x: Samples from DFLT0 transfered into memory when SAD and DFLT0 are enabled
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>1</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DETCFG</name>
              <description>Sound trigger event configuration
This bit is set and cleared by software. It is used to define if the sddet_evt event is generated only when the SAD enters to MONITOR state or when the SAD enters or exits the DETECT state. 
Note: This bit can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SADST</name>
              <description>SAD state
This field is set and cleared by hardware. It indicates the SAD state and is meaningful only when SADEN = 1. The SAD state can be:
- LEARN when the SAD is in learning phase or in SDLVL computation mode
- MONITOR when the SAD is in monitoring phase
- DETECT when the SAD detects a sound</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>HYSTEN</name>
              <description>Hysteresis enable
This bit is set and cleared by software. It is used to enable/disable the hysteresis function (see Table 419 for details). This bit must be kept to 0 when SADMOD[1:0] = 1x.
Note: This bit can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRSIZE</name>
              <description>Frame size
This field is set and cleared by software. it is used to define the size of one frame and also to define how many samples are taken into account to compute the short-term signal level.
11x: 512 PCM samples used to compute the short-term signal level
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SADMOD</name>
              <description>SAD working mode
This field is set and cleared by software. It is used to define the way the SAD works.
The SAD triggers when the sound level (SDLVL) is bigger than the defined threshold. In this mode, the SAD works like a voice activity detector.
The SAD triggers when the sound level (SDLVL) is bigger than the defined threshold. In this mode, the SAD works like a sound detector.
1x: Threshold value given by 4 x ANMIN[12:0]
The SAD triggers when the estimated ambient noise (ANLVL), multiplied by the gain selected by SNTHR[3:0] is bigger than the defined threshold. In this mode, the SAD is working like an ambient noise estimator. Hysteresis function cannot be used in this mode.
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SADACTIVE</name>
              <description>SAD Active flag
This bit is set and cleared by hardware. It is used to check if the SAD is effectively enabled (active) or not. The protected fields and registers of this function can only be updated when the SADACTIVE is set to 0 (see Section 46.4.13: Register protection for details). 
The delay between a transition on SADEN and a transition on SADACTIVE is two periods of AHB clock and two periods of adf_proc_ck.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SADCFGR</name>
          <displayName>SADCFGR</displayName>
          <description>ADF SAD configuration register</description>
          <addressOffset>0xBC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SNTHR</name>
              <description>Signal to noise threshold
This field is set and cleared by software. It is used to define THR&lt;sub&gt;H &lt;/sub&gt;(and THR&lt;sub&gt;L&lt;/sub&gt; if hysteresis is enabled). See Table 419 for details.
others: Reserved
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ANSLP</name>
              <description>Ambient noise slope control 
This field is set and cleared by software. It is used to define the positive and negative slope of the noise estimator, in charge of updating the ANLVL (see Ambient noise estimation (ANLVL) for information about programming this field).
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LFRNB</name>
              <description>Number of learning frames
This field is set and cleared by software. It is used to define the number of learning frames to perform the first estimate of the noise level.
1xx: 32 frames used to compute the initial noise level
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HGOVR</name>
              <description>Hangover time window
This field is set and cleared by software. Once the SAD state is DETECT, this parameter is used to define the amount of time the sound is allowed to remain below the threshold, before switching the SAD to MONITOR state (see FRSIZE field for the description of a frame).
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ANMIN</name>
              <description>Minimum noise level
This field is set and cleared by software. It is used to define the minimum noise level and then the sensitivity. It represents a positive number. 
Note: This field can be write-protected (see Section 46.4.13: Register protection for details).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>13</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SADSDLVR</name>
          <displayName>SADSDLVR</displayName>
          <description>ADF SAD sound level register</description>
          <addressOffset>0xC0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SDLVL</name>
              <description>Short term sound level
This field is set by hardware. It contains the latest sound level computed by the SAD. To refresh this value, SDLVLF must be cleared.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>15</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SADANLVR</name>
          <displayName>SADANLVR</displayName>
          <description>ADF SAD ambient noise level register</description>
          <addressOffset>0xC4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ANLVL</name>
              <description>Ambient noise level estimation
This field is set by hardware. It contains the latest ambient noise level computed by the SAD. To refresh this field, the SDLVLF flag must be cleared.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>15</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DFLT0DR</name>
          <displayName>DFLT0DR</displayName>
          <description>ADF digital filter data register 0</description>
          <addressOffset>0xF0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DR</name>
              <description>Data processed by DFT0</description>
              <bitOffset>8</bitOffset>
              <bitWidth>24</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>CEC</name>
      <description>HDMI-CEC controller</description>
      <groupName>CEC</groupName>
      <baseAddress>0x40006C00</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x18</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>CEC</name>
        <description>CEC global interrupt</description>
        <value>129</value>
      </interrupt>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>CEC control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CECEN</name>
              <description>CEC enable
The CECEN bit is set and cleared by software. CECEN = 1 starts message reception and enables the TXSOM control. CECEN = 0 disables the CEC peripheral, clears all bits of CEC_CR register and aborts any on-going reception or transmission.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXSOM</name>
              <description>Tx start of message
TXSOM is set by software to command transmission of the first byte of a CEC message. If the CEC message consists of only one byte, TXEOM must be set before of TXSOM.
Start-bit is effectively started on the CEC line after SFT is counted. If TXSOM is set while a message reception is ongoing, transmission starts after the end of reception.
TXSOM is cleared by hardware after the last byte of the message is sent with a positive acknowledge (TXEND = 1), in case of transmission underrun (TXUDR = 1), negative acknowledge (TXACKE = 1), and transmission error (TXERR = 1). It is also cleared by CECEN = 0. It is not cleared and transmission is automatically retried in case of arbitration lost (ARBLST = 1).
TXSOM can be also used as a status bit informing application whether any transmission request is pending or under execution. The application can abort a transmission request at any time by clearing the CECEN bit.
Note: TXSOM must be set when CECEN = 1.
Note: TXSOM must be set when transmission data is available into TXDR.
Note: HEADER first four bits containing own peripheral address are taken from TXDR[7:4], not from CEC_CFGR.OAR that is used only for reception.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXEOM</name>
              <description>Tx end of message
The TXEOM bit is set by software to command transmission of the last byte of a CEC message.
TXEOM is cleared by hardware at the same time and under the same conditions as for TXSOM.
Note: TXEOM must be set when CECEN = 1.
Note: TXEOM must be set before writing transmission data to TXDR.
Note: If TXEOM is set when TXSOM = 0, transmitted message consists of 1 byte (HEADER) only (PING message).</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CFGR</name>
          <displayName>CFGR</displayName>
          <description>CEC configuration register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SFT</name>
              <description>Signal free time
SFT bits are set by software. In the SFT = 0x0 configuration, the number of nominal data bit periods waited before transmission is ruled by hardware according to the transmission history. In all the other configurations the SFT number is determined by software.
0x0
2.5 data-bit periods if CEC is the last bus initiator with unsuccessful transmission (ARBLST = 1, TXERR = 1, TXUDR = 1 or TXACKE = 1)
4 data-bit periods if CEC is the new bus initiator
6 data-bit periods if CEC is the last bus initiator with successful transmission (TXEOM = 1)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXTOL</name>
              <description>Rx-tolerance
The RXTOL bit is set and cleared by software.
Start-bit, +/- 200  s rise, +/- 200  s fall
Data-bit: +/- 200  s rise. +/- 350  s fall
Start-bit: +/- 400  s rise, +/- 400  s fall
Data-bit: +/-300  s rise, +/- 500  s fall</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BRESTP</name>
              <description>Rx-stop on bit rising error
The BRESTP bit is set and cleared by software.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BREGEN</name>
              <description>Generate error-bit on bit rising error
The BREGEN bit is set and cleared by software.
Note: If BRDNOGEN = 0, an error-bit is generated upon BRE detection with BRESTP = 1 in broadcast even if BREGEN = 0.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LBPEGEN</name>
              <description>Generate error-bit on long bit period error
The LBPEGEN bit is set and cleared by software.
Note: If BRDNOGEN = 0, an error-bit is generated upon LBPE detection in broadcast even if LBPEGEN = 0.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BRDNOGEN</name>
              <description>Avoid error-bit generation in broadcast
The BRDNOGEN bit is set and cleared by software.
error-bit on the CEC line. LBPE detection with LBPEGEN = 0 on a broadcast message generates an error-bit on the CEC line.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SFTOP</name>
              <description>SFT option bit
The SFTOPT bit is set and cleared by software.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OAR</name>
              <description>Own addresses configuration
The OAR bits are set by software to select which destination logical addresses has to be considered in receive mode. Each bit, when set, enables the CEC logical address identified by the given bit position.
At the end of HEADER reception, the received destination address is compared with the enabled addresses. In case of matching address, the incoming message is acknowledged and received. In case of non-matching address, the incoming message is received only in listen mode (LSTN = 1), but without acknowledge sent. Broadcast messages are always received.
Example:
OAR = 0b000 0000 0010 0001 means that CEC acknowledges addresses 0x0 and 0x5. Consequently, each message directed to one of these addresses is received.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>15</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSTN</name>
              <description>Listen mode
LSTN bit is set and cleared by software.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TXDR</name>
          <displayName>TXDR</displayName>
          <description>CEC Tx data register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXD</name>
              <description>Tx data
TXD is a write-only register containing the data byte to be transmitted.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RXDR</name>
          <displayName>RXDR</displayName>
          <description>CEC Rx data register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXD</name>
              <description>Rx data
RXD is read-only and contains the last data byte that has been received from the CEC line.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ISR</name>
          <displayName>ISR</displayName>
          <description>CEC interrupt and status register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXBR</name>
              <description>Rx-byte received
The RXBR bit is set by hardware to inform application that a new byte has been received from the CEC line and stored into the RXD buffer.
RXBR is cleared by software write at 1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXEND</name>
              <description>End of reception
RXEND is set by hardware to inform application that the last byte of a CEC message is received from the CEC line and stored into the RXD buffer. RXEND is set at the same time of RXBR.
RXEND is cleared by software write at 1.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXOVR</name>
              <description>Rx-overrun
RXOVR is set by hardware if RXBR is not yet cleared at the time a new byte is received on the CEC line and stored into RXD. RXOVR assertion stops message reception so that no acknowledge is sent. In case of broadcast, a negative acknowledge is sent.
RXOVR is cleared by software write at 1.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BRE</name>
              <description>Rx-bit rising error
BRE is set by hardware in case a data-bit waveform is detected with bit rising error. BRE is set either at the time the misplaced rising edge occurs, or at the end of the maximum BRE tolerance allowed by RXTOL, in case rising edge is still longing. BRE stops message reception if BRESTP = 1. BRE generates an error-bit on the CEC line if BREGEN = 1.
BRE is cleared by software write at 1.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SBPE</name>
              <description>Rx-short bit period error
SBPE is set by hardware in case a data-bit waveform is detected with short bit period error. SBPE is set at the time the anticipated falling edge occurs. SBPE generates an error-bit on the CEC line.
SBPE is cleared by software write at 1.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LBPE</name>
              <description>Rx-long bit period error
LBPE is set by hardware in case a data-bit waveform is detected with long bit period error. LBPE is set at the end of the maximum bit-extension tolerance allowed by RXTOL, in case falling edge is still longing. LBPE always stops reception of the CEC message. LBPE generates an error-bit on the CEC line if LBPEGEN = 1. In case of broadcast, error-bit is generated even in case of LBPEGEN = 0.
LBPE is cleared by software write at 1.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXACKE</name>
              <description>Rx-missing acknowledge
In receive mode, RXACKE is set by hardware to inform application that no acknowledge was seen on the CEC line. RXACKE applies only for broadcast messages and in listen mode also for not directly addressed messages (destination address not enabled in OAR). RXACKE aborts message reception.
RXACKE is cleared by software write at 1.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ARBLST</name>
              <description>Arbitration lost
ARBLST is set by hardware to inform application that CEC device is switching to reception due to arbitration lost event following the TXSOM command. ARBLST can be due either to a contending CEC device starting earlier or starting at the same time but with higher HEADER priority. After ARBLST assertion TXSOM bit keeps pending for next transmission attempt.
ARBLST is cleared by software write at 1.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXBR</name>
              <description>Tx-byte request
TXBR is set by hardware to inform application that the next transmission data has to be written to TXDR. TXBR is set when the 4th bit of currently transmitted byte is sent. Application must write the next byte to TXDR within six nominal data-bit periods before transmission underrun error occurs (TXUDR).
TXBR is cleared by software write at 1.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXEND</name>
              <description>End of transmission
TXEND is set by hardware to inform application that the last byte of the CEC message has been successfully transmitted. TXEND clears the TXSOM and TXEOM control bits.
TXEND is cleared by software write at 1.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXUDR</name>
              <description>Tx-buffer underrun
In transmission mode, TXUDR is set by hardware if application was not in time to load TXDR before of next byte transmission. TXUDR aborts message transmission and clears TXSOM and TXEOM control bits.
TXUDR is cleared by software write at 1</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERR</name>
              <description>Tx-error
In transmission mode, TXERR is set by hardware if the CEC initiator detects low impedance on the CEC line while it is released. TXERR aborts message transmission and clears TXSOM and TXEOM controls.
TXERR is cleared by software write at 1.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXACKE</name>
              <description>Tx-missing acknowledge error
In transmission mode, TXACKE is set by hardware to inform application that no acknowledge was received. In case of broadcast transmission, TXACKE informs application that a negative acknowledge was received. TXACKE aborts message transmission and clears TXSOM and TXEOM controls.
TXACKE is cleared by software write at 1.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IER</name>
          <displayName>IER</displayName>
          <description>CEC interrupt enable register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXBRIE</name>
              <description>Rx-byte received interrupt enable
The RXBRIE bit is set and cleared by software.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXENDIE</name>
              <description>End of reception interrupt enable
The RXENDIE bit is set and cleared by software.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXOVRIE</name>
              <description>Rx-buffer overrun interrupt enable
The RXOVRIE bit is set and cleared by software.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BREIE</name>
              <description>Bit rising error interrupt enable
The BREIE bit is set and cleared by software.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SBPEIE</name>
              <description>Short bit period error interrupt enable
The SBPEIE bit is set and cleared by software.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LBPEIE</name>
              <description>Long bit period error interrupt enable
The LBPEIE bit is set and cleared by software.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXACKIE</name>
              <description>Rx-missing acknowledge error interrupt enable
The RXACKIE bit is set and cleared by software.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ARBLSTIE</name>
              <description>Arbitration lost interrupt enable
The ARBLSTIE bit is set and cleared by software.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXBRIE</name>
              <description>Tx-byte request interrupt enable
The TXBRIE bit is set and cleared by software.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXENDIE</name>
              <description>Tx-end of message interrupt enable
The TXENDIE bit is set and cleared by software.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXUDRIE</name>
              <description>Tx-underrun interrupt enable
The TXUDRIE bit is set and cleared by software.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERRIE</name>
              <description>Tx-error interrupt enable
The TXERRIE bit is set and cleared by software.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXACKIE</name>
              <description>Tx-missing acknowledge error interrupt enable
The TXACKEIE bit is set and cleared by software.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>CORDIC</name>
      <description>CORDIC register block</description>
      <groupName>CORDIC</groupName>
      <baseAddress>0x48004400</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x100</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>CORDIC</name>
        <description>CORDIC interrupt</description>
        <value>93</value>
      </interrupt>
      <registers>
        <register>
          <name>CSR</name>
          <displayName>CSR</displayName>
          <description>CORDIC control/status register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000050</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FUNC</name>
              <description>Function
10 to 15: reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PRECISION</name>
              <description>Precision required (number of iterations)
1 to 15: (Number of iterations)/4
To determine the number of iterations needed for a given accuracy refer to Table 193.
Note that for most functions, the recommended range for this field is 3 to 6.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SCALE</name>
              <description>Scaling factor
The value of this field indicates the scaling factor applied to the arguments and/or results. A value n implies that the arguments have been multiplied by a factor 2&lt;sup&gt;-n&lt;/sup&gt;, and/or the results need to be multiplied by 2&lt;sup&gt;n&lt;/sup&gt;. Refer to Section 24.3.2 for the applicability of the scaling factor for each function and the appropriate range.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IEN</name>
              <description>Enable interrupt.
This bit is set and cleared by software. A read returns the current state of the bit.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DMAREN</name>
              <description>Enable DMA read channel
This bit is set and cleared by software. A read returns the current state of the bit.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DMAWEN</name>
              <description>Enable DMA write channel
This bit is set and cleared by software. A read returns the current state of the bit.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NRES</name>
              <description>Number of results in the CORDIC_RDATA register 
Reads return the current state of the bit.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NARGS</name>
              <description>Number of arguments expected by the CORDIC_WDATA register 
Reads return the current state of the bit.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RESSIZE</name>
              <description>Width of output data
RESSIZE selects the number of bits used to represent output data.
If 32-bit data is selected, the CORDIC_RDATA register contains results in q1.31 format.
If 16-bit data is selected, the least significant half-word of CORDIC_RDATA contains the primary result (RES1) in q1.15 format, and the most significant half-word contains the secondary result (RES2), also in q1.15 format.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ARGSIZE</name>
              <description>Width of input data
ARGSIZE selects the number of bits used to represent input data.
If 32-bit data is selected, the CORDIC_WDATA register expects arguments in q1.31 format.
If 16-bit data is selected, the CORDIC_WDATA register expects arguments in q1.15 format. The primary argument (ARG1) is written to the least significant half-word, and the secondary argument (ARG2) to the most significant half-word.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RRDY</name>
              <description>Result ready flag
This bit is set by hardware when a CORDIC operation completes. It is reset by hardware when the CORDIC_RDATA register is read (NRES+1) times.
When this bit is set, if the IEN bit is also set, the CORDIC interrupt is asserted. If the DMAREN bit is set, a DMA read channel request is generated. While this bit is set, no new calculation is started.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>WDATA</name>
          <displayName>WDATA</displayName>
          <description>CORDIC argument register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>ARG</name>
              <description>Function input arguments
This register is programmed with the input arguments for the function selected in the CORDIC_CSR register FUNC field.
If 32-bit format is selected (CORDIC_CSR.ARGSIZE = 0) and two input arguments are required (CORDIC_CSR.NARGS = 1), two successive writes are required to this register. The first writes the primary argument (ARG1), the second writes the secondary argument (ARG2).
If 32-bit format is selected and only one input argument is required (NARGS = 0), only one write is required to this register, containing the primary argument (ARG1).
If 16-bit format is selected (CORDIC_CSR.ARGSIZE = 1), one write to this register contains both arguments. The primary argument (ARG1) is in the lower half, ARG[15:0], and the secondary argument (ARG2) is in the upper half, ARG[31:16]. In this case, NARGS must be set to 0.
Refer to Section 24.3.2 for the arguments required by each function, and their permitted range.
When the required number of arguments has been written, the CORDIC evaluates the function designated by CORDIC_CSR.FUNC using the supplied input arguments, provided any previous calculation has completed. If a calculation is ongoing, the ARG1 and ARG 2 values are held pending until the calculation is completed and the results read. During this time, a write to the register cancels the pending operation and overwrite the argument data.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RDATA</name>
          <displayName>RDATA</displayName>
          <description>CORDIC result register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RES</name>
              <description>Function result
If 32-bit format is selected (CORDIC_CSR.RESSIZE = 0) and two output values are expected (CORDIC_CSR.NRES = 1), this register must be read twice when the RRDY flag is set. The first read fetches the primary result (RES1). The second read fetches the secondary result (RES2) and resets RRDY.
If 32-bit format is selected and only one output value is expected (NRES = 0), only one read of this register is required to fetch the primary result (RES1) and reset the RRDY flag.
If 16-bit format is selected (CORDIC_CSR.RESSIZE = 1), this register contains the primary result (RES1) in the lower half, RES[15:0], and the secondary result (RES2) in the upper half, RES[31:16]. In this case, NRES must be set to 0, and only one read performed.
A read from this register resets the RRDY flag in the CORDIC_CSR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>CRC</name>
      <description>Cyclic redundancy check calculation unit</description>
      <groupName>CRC</groupName>
      <baseAddress>0x58024C00</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x18</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>DR</name>
          <displayName>DR</displayName>
          <description>CRC data register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0xFFFFFFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DR</name>
              <description>Data register bits
This register is used to write new data to the CRC calculator.
It holds the previous CRC calculation result when it is read.
If the data size is less than 32 bits, the least significant bits are used to write/read the correct 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>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>CRC independent data register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IDR</name>
              <description>General-purpose 32-bit data register bits
These bits can be used as a temporary storage location for four bytes.
This register is not affected by CRC resets generated by the RESET bit in the CRC_CR register</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>CR</name>
          <displayName>CR</displayName>
          <description>CRC control register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RESET</name>
              <description>RESET bit
This bit is set by software to reset the CRC calculation unit and set the data register to the value stored in the CRC_INIT register. This bit can only be set, it is automatically cleared by hardware</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RESETW</name>
                <usage>write</usage>
                <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>
            <field>
              <name>POLYSIZE</name>
              <description>Polynomial size
These bits control the size of the polynomial.</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>REV_IN</name>
              <description>Reverse input data
This bitfield controls the reversal of the bit order of the 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>REV_OUT</name>
              <description>Reverse output data
This bit controls the reversal of the bit order of the 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>
          </fields>
        </register>
        <register>
          <name>INIT</name>
          <displayName>INIT</displayName>
          <description>CRC initial value</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0xFFFFFFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INIT</name>
              <description>Programmable initial CRC value
This register is used to write the CRC initial 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>POL</name>
          <displayName>POL</displayName>
          <description>CRC polynomial</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x04C11DB7</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>POL</name>
              <description>Programmable polynomial 
This register is used to write the coefficients of the polynomial to be used for CRC calculation.
If the polynomial size is less than 32 bits, the least significant bits have to be used to program the correct 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>
      </registers>
    </peripheral>
    <peripheral>
      <name>CRS</name>
      <description>Clock Recovery System</description>
      <groupName>CRS</groupName>
      <baseAddress>0x40008400</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>CRS</name>
        <description>CRS global interrupt</description>
        <value>127</value>
      </interrupt>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>CRS control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00002000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SYNCOKIE</name>
              <description>SYNC event OK interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SYNCOKIE</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>SYNCWARNIE</name>
              <description>SYNC warning interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SYNCOKIE"/>
            </field>
            <field>
              <name>ERRIE</name>
              <description>Synchronization or trimming error interrupt enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SYNCOKIE"/>
            </field>
            <field>
              <name>ESYNCIE</name>
              <description>Expected SYNC interrupt enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SYNCOKIE"/>
            </field>
            <field>
              <name>CEN</name>
              <description>Frequency error counter enable
This bit enables the oscillator clock for the frequency error counter.
When this bit is set, the CRS_CFGR register is write-protected and cannot be modified.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>CEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Frequency error counter disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Frequency error counter enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>AUTOTRIMEN</name>
              <description>Automatic trimming enable
This bit enables the automatic hardware adjustment of TRIM bits according to the measured frequency error between two SYNC events. If this bit is set, the TRIM bits are read-only. The TRIM value can be adjusted by hardware by one or two steps at a time, depending on the measured frequency error value. Refer to Section 7.5.3 for more details.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>AUTOTRIMEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Automatic trimming disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Automatic trimming enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SWSYNC</name>
              <description>Generate software SYNC event
This bit is set by software in order to generate a software SYNC event. It is automatically cleared by hardware.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SWSYNC</name>
                <enumeratedValue>
                  <name>Sync</name>
                  <description>A software sync is generated</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TRIM</name>
              <description>HSI48 oscillator smooth trimming
These bits provide a user-programmable trimming value to the HSI48 oscillator. They can be programmed to adjust to variations in voltage and temperature that influence the frequency of the HSI48 oscillator.
The default value is 32, which corresponds to the middle of the trimming interval. The trimming step is specified in the product datasheet. A higher TRIM value corresponds to a higher output frequency.
When the AUTOTRIMEN bit is set, this field is controlled by hardware and is read-only.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>63</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>CFGR</name>
          <displayName>CFGR</displayName>
          <description>CRS configuration register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x2022BB7F</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RELOAD</name>
              <description>Counter reload value
RELOAD is the value to be loaded in the frequency error counter with each SYNC event.
Refer to Section 7.5.2 for more details about counter behavior.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>FELIM</name>
              <description>Frequency error limit
FELIM contains the value to be used to evaluate the captured frequency error value latched in the FECAP[15:0] bits of the CRS_ISR register. Refer to Section 7.5.3 for more details about FECAP evaluation.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>SYNCDIV</name>
              <description>SYNC divider
These bits are set and cleared by software to control the division factor of the SYNC signal.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SYNCDIV</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>SYNC not divided</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>SYNC divided by 2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>SYNC divided by 4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>SYNC divided by 8</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>SYNC divided by 16</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div32</name>
                  <description>SYNC divided by 32</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div64</name>
                  <description>SYNC divided by 64</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div128</name>
                  <description>SYNC divided by 128</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SYNCSRC</name>
              <description>SYNC signal source selection
These bits are set and cleared by software to select the SYNC signal source.
Note: When using USB LPM (Link Power Management) and the device is in Sleep mode, the periodic USB SOF will not be generated by the host. No SYNC signal will therefore be provided to the CRS to calibrate the HSI48 oscillator on the run. To guarantee the required clock precision after waking up from Sleep mode, the LSE clock or the SYNC pin must be used as SYNC signal.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SYNCSRC</name>
                <enumeratedValue>
                  <name>GPIO_AF</name>
                  <description>GPIO AF (crs_sync_in_1) selected as SYNC signal source</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSE</name>
                  <description>LSE (crs_sync_in_2) selected as SYNC signal source</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>USB_SOF</name>
                  <description>USB SOF (crs_sync_in_3) selected as SYNC signal source</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SYNCPOL</name>
              <description>SYNC polarity selection
This bit is set and cleared by software to select the input polarity for the SYNC signal source.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SYNCPOL</name>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>SYNC active on rising edge</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>SYNC active on falling edge</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ISR</name>
          <displayName>ISR</displayName>
          <description>CRS interrupt and status register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SYNCOKF</name>
              <description>SYNC event OK flag
This flag is set by hardware when the measured frequency error is smaller than FELIM * 3. This means that either no adjustment of the TRIM value is needed or that an adjustment by one trimming step is enough to compensate the frequency error. An interrupt is generated if the SYNCOKIE bit is set in the CRS_CR register. It is cleared by software by setting the SYNCOKC bit in the CRS_ICR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>SYNCOKF</name>
                <enumeratedValue>
                  <name>NotSignaled</name>
                  <description>Signal not set</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Signaled</name>
                  <description>Signal set</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SYNCWARNF</name>
              <description>SYNC warning flag
This flag is set by hardware when the measured frequency error is greater than or equal to FELIM * 3, but smaller than FELIM * 128. This means that to compensate the frequency error, the TRIM value must be adjusted by two steps or more. An interrupt is generated if the SYNCWARNIE bit is set in the CRS_CR register. It is cleared by software by setting the SYNCWARNC bit in the CRS_ICR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="SYNCOKF"/>
            </field>
            <field>
              <name>ERRF</name>
              <description>Error flag
This flag is set by hardware in case of any synchronization or trimming error. It is the logical OR of the TRIMOVF, SYNCMISS and SYNCERR bits. An interrupt is generated if the ERRIE bit is set in the CRS_CR register. It is cleared by software in reaction to setting the ERRC bit in the CRS_ICR register, which clears the TRIMOVF, SYNCMISS and SYNCERR bits.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="SYNCOKF"/>
            </field>
            <field>
              <name>ESYNCF</name>
              <description>Expected SYNC flag
This flag is set by hardware when the frequency error counter reached a zero value. An interrupt is generated if the ESYNCIE bit is set in the CRS_CR register. It is cleared by software by setting the ESYNCC bit in the CRS_ICR register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="SYNCOKF"/>
            </field>
            <field>
              <name>SYNCERR</name>
              <description>SYNC error
This flag is set by hardware when the SYNC pulse arrives before the ESYNC event and the measured frequency error is greater than or equal to FELIM * 128. This means that the frequency error is too big (internal frequency too low) to be compensated by adjusting the TRIM value, and that some other action has to be taken. An interrupt is generated if the ERRIE bit is set in the CRS_CR register. It is cleared by software by setting the ERRC bit in the CRS_ICR register.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="SYNCOKF"/>
            </field>
            <field>
              <name>SYNCMISS</name>
              <description>SYNC missed
This flag is set by hardware when the frequency error counter reached value FELIM * 128 and no SYNC was detected, meaning either that a SYNC pulse was missed or that the frequency error is too big (internal frequency too high) to be compensated by adjusting the TRIM value, and that some other action has to be taken. At this point, the frequency error counter is stopped (waiting for a next SYNC) and an interrupt is generated if the ERRIE bit is set in the CRS_CR register. It is cleared by software by setting the ERRC bit in the CRS_ICR register.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="SYNCOKF"/>
            </field>
            <field>
              <name>TRIMOVF</name>
              <description>Trimming overflow or underflow
This flag is set by hardware when the automatic trimming tries to over- or under-flow the TRIM value. An interrupt is generated if the ERRIE bit is set in the CRS_CR register. It is cleared by software by setting the ERRC bit in the CRS_ICR register.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="SYNCOKF"/>
            </field>
            <field>
              <name>FEDIR</name>
              <description>Frequency error direction
FEDIR is the counting direction of the frequency error counter latched in the time of the last SYNC event. It shows whether the actual frequency is below or above the target.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>FEDIR</name>
                <enumeratedValue>
                  <name>UpCounting</name>
                  <description>Error in up-counting direction</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DownCounting</name>
                  <description>Error in down-counting direction</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FECAP</name>
              <description>Frequency error capture
FECAP is the frequency error counter value latched in the time of the last SYNC event.
Refer to Section 7.5.3 for more details about FECAP usage.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>ICR</name>
          <displayName>ICR</displayName>
          <description>CRS interrupt flag clear register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SYNCOKC</name>
              <description>SYNC event OK clear flag
Writing 1 to this bit clears the SYNCOKF flag in the CRS_ISR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SYNCOKC</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SYNCWARNC</name>
              <description>SYNC warning clear flag
Writing 1 to this bit clears the SYNCWARNF flag in the CRS_ISR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SYNCOKC"/>
            </field>
            <field>
              <name>ERRC</name>
              <description>Error clear flag
Writing 1 to this bit clears TRIMOVF, SYNCMISS and SYNCERR bits and consequently also the ERRF flag in the CRS_ISR register.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SYNCOKC"/>
            </field>
            <field>
              <name>ESYNCC</name>
              <description>Expected SYNC clear flag
Writing 1 to this bit clears the ESYNCF flag in the CRS_ISR register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SYNCOKC"/>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>CRYP</name>
      <description>Cryptographic processor</description>
      <groupName>CRYP</groupName>
      <baseAddress>0x48020800</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>CRYP control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ALGODIR</name>
              <description>Algorithm direction
This bit selects the algorithm direction.
Attempts to write the bitfield are ignored when BUSY is set.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ALGOMODE</name>
              <description>ALGOMODE[2:0]: Algorithm mode
This bitfield selects the AES algorithm/chaining mode.
Others: Reserved
Attempts to write the bitfield are ignored when BUSY is set.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DATATYPE</name>
              <description>Data type
This bitfield defines the format of data written in the CRYP_DINR register or read from the CRYP_DOUTR register, through selecting the mode of data swapping. This swapping is defined in Section 60.4.15: CRYP data registers and data swapping.
Attempts to write the bitfield are ignored when BUSY is set.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>KEYSIZE</name>
              <description>Key size selection
This bitfield defines the key length in bits of the key used by CRYP.
When KEYSIZE is changed, KEYVALID bit is cleared.
Attempts to write the bitfield are ignored when BUSY is set.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FFLUSH</name>
              <description>FIFO flush
This bit enables/disables the flushing of CRYP input and output FIFOs. Reading this bit always returns 0.
When CRYPEN is cleared, writing this bit to 1 flushes both input and output FIFOs (that is read and write pointers of the FIFOs are reset).
FFLUSH bit must be set when BUSY is cleared, otherwise the FIFO is flushed, but the block being processed may be pushed into the output FIFO just after the flush operation, resulting in a non-empty FIFO condition.
Attempts to write FFLUSH are ignored when CRYPEN is set.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CRYPEN</name>
              <description>CRYP enable
This bit enables/disables the CRYP peripheral.
This bit is automatically cleared by hardware upon the completion of the key preparation (ALGOMODE[3:0] at 0x7) and upon the completion of GCM/GMAC/CCM initialization phase.
The bit cannot be set as long as KEYVALID is cleared.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GCM_CCMPH</name>
              <description>GCM or CCM phase selection
This bitfield selects the phase, applicable only with GCM, GMAC or CCM chaining modes.
Attempts to write the bitfield are ignored when BUSY is set.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ALGOMODE_1</name>
              <description>ALGOMODE[3]</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NPBLB</name>
              <description>Number of padding bytes in last block
This padding information must be filled by software before processing the last block of GCM payload encryption or CCM payload decryption, otherwise authentication tag computation is incorrect.
...
Attempts to write the bitfield are ignored when BUSY is set.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>KMOD</name>
              <description>Key mode selection
This bitfield defines how the CRYP key can be used by the application. KEYSIZE must be correctly initialized when setting KMOD[1:0] different from zero.
Others: Reserved
Attempts to write the bitfield are ignored when BUSY is set.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IPRST</name>
              <description>CRYP peripheral software reset
Setting the bit resets the CRYP peripheral, putting all registers to their default values, except the IPRST bit itself.
This bit must be kept cleared while writing any configuration registers.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>CRYP status register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000003</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IFEM</name>
              <description>Input FIFO empty flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>IFNF</name>
              <description>Input FIFO not full flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OFNE</name>
              <description>Output FIFO not empty flag</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OFFU</name>
              <description>Output FIFO full flag</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>BUSY</name>
              <description>Busy bit
This flag indicates whether CRYP is idle or busy.
CRYP is flagged as idle when disabled (CRYPEN = 0) or when the AES core is not processing any data. It happens when the last processing has completed, or CRYP is waiting for enough data in the input FIFO or enough free space in the output FIFO (that is in each case at least 4 words).
CRYP is flagged as busy when processing a block data, preparing a key (ECB or CBC decryption only), or transferring a shared key from SAES peripheral.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>KERF</name>
              <description>Key error flag
This read-only bit is set by hardware when key information failed to load into key registers.
KERF is triggered upon any of the following errors:
CRYP_KxR/LR register write does not respect the correct order (refer to Section 60.4.16: CRYP key registers for details).
CRYP fails to load the key shared by SAES peripheral (KMOD = 0x2).
KERF must be cleared by the application software, otherwise KEYVALID cannot be set. It can be done through IPRST bit of CRYP_CR, or when a correct key writing sequence starts.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>KEYVALID</name>
              <description>Key valid flag
This read-only bit is set by hardware when the key of size defined by KEYSIZE is loaded in CRYP_KxR/LR key registers.
The CRYPEN bit can only be set when KEYVALID is set.
In normal mode when KMOD[1:0] is at zero, the key must be written in the key registers in the correct sequence, otherwise the KERF flag is set and KEYVALID remains cleared.
When KMOD[1:0] is different from zero, the BUSY flag is automatically set by CRYP. When the key is loaded successfully, BUSY is cleared and KEYVALID set. Upon an error, KERF is set, BUSY cleared and KEYVALID remains cleared.
If set, KERF must be cleared, otherwise KEYVALID cannot be set. For further information on key loading, refer to Section 60.4.16: CRYP key registers.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR</name>
          <displayName>DINR</displayName>
          <description>CRYP data input register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>Data input
A four-fold sequential write to this bitfield during the Input phase results in pushing a complete 16-byte block into the CRYP input FIFO. From the first to the fourth write, the corresponding data weights are [127:96], [95:64], [63:32], and [31:0].
Input FIFO can receive up to two 16-byte blocks of plaintext (when encrypting) or ciphertext (when decrypting).
If EN bit is set in CRYP_CR register, when at least four 32-bit words have been pushed into the input FIFO, and when at least four 32-bit words are free in the output FIFO, the CRYP automatically starts an encryption or decryption process, setting the BUSY bit.
Reading this register pops data off the input FIFO (oldest value is returned). The data present in the input FIFO are returned only if CRYPEN is cleared (undefined value is returned otherwise). Following one or more reads the FIFO must be flushed (setting the FFLUSH bit) prior to processing new data.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR</name>
          <displayName>DOUTR</displayName>
          <description>CRYP data output register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>Data output
A four-fold sequential read to this bitfield during the output phase results in retrieving a complete 16-byte block from the CRYP output FIFO. From the first to the fourth read, the corresponding data weights are [127:96], [95:64], [63:32], and [31:0].
Output FIFO can store up to two 16-byte blocks of plaintext (when decrypting) or ciphertext (when encrypting).
When the output FIFO is empty a read returns an undefined value. Writes are ignored.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMACR</name>
          <displayName>DMACR</displayName>
          <description>CRYP DMA control register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIEN</name>
              <description>DMA input enable
When this bit is set, DMA requests are automatically generated by the peripheral during the input data phase.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOEN</name>
              <description>DMA output enable
When this bit is set, DMA requests are automatically generated by the peripheral during the output data phase.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IMSCR</name>
          <displayName>IMSCR</displayName>
          <description>CRYP interrupt mask set/clear register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INIM</name>
              <description>Input FIFO service interrupt mask
This bit enables or disables (masks) the CRYP input FIFO service interrupt generation when INRIS is set.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OUTIM</name>
              <description>Output FIFO service interrupt mask
This bit enables or disables (masks) the CRYP output FIFO service interrupt generation when OUTRIS is set.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RISR</name>
          <displayName>RISR</displayName>
          <description>CRYP raw interrupt status register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000001</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INRIS</name>
              <description>Input FIFO service raw interrupt status
This read-only bit is set by hardware when an input FIFO flag (IFNF or IFEM) is set in CRYP_SR register, regardless of the INIM mask bit value in CRYP_IMSCR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OUTRIS</name>
              <description>Output FIFO service raw interrupt status
This read-only bit is set by hardware when an output FIFO flag (OFFU or OFNE) is set in CRYP_SR register, regardless of the OUTIM mask bit value in CRYP_IMSCR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MISR</name>
          <displayName>MISR</displayName>
          <description>CRYP masked interrupt status register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INMIS</name>
              <description>Input FIFO service masked interrupt status
This read-only bit is set by hardware when an input FIFO flag (IFNF or IFEM) is set in CRYP_SR register. If the INIM mask bit is cleared in CRYP_IMSCR register, the INMIS bit stays cleared (masked). 
The INMIS bit is cleared by writing data to the input FIFO until IFEM flag is cleared (there is at least one word in input FIFO), or by clearing CRYPEN,
When CRYP is disabled, INMIS bit stays low even if the input FIFO is empty.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OUTMIS</name>
              <description>Output FIFO service masked interrupt status
This read-only bit is set by hardware when an output FIFO flag (OFFU or OFNE) is set in CRYP_SR register. If the OUTIM mask bit is cleared in CRYP_IMSCR register, the OUTMIS bit stays cleared (masked). 
The OUTMIS bit is cleared by reading data from the output FIFO until OFNE flag is cleared (output FIFO empty). It is not cleared by disabling CRYP with CRYPEN bit.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <cluster>
          <dim>4</dim>
          <dimIncrement>0x8</dimIncrement>
          <dimIndex>0-3</dimIndex>
          <name>KEY%s</name>
          <description>Cluster KEY%s, containing K?LR, K?RR</description>
          <addressOffset>0x20</addressOffset>
          <register>
            <name>KLR</name>
            <displayName>K0LR</displayName>
            <description>CRYP key register 0L</description>
            <addressOffset>0x0</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>K</name>
                <description>Key bit x
This write-only bitfield contains the bits [255:224] of the AES encryption or decryption key, depending on the operating mode. 
Write to CRYP_KxR/LR registers is ignored when CRYP is busy (BUSY bit set). When key is coming from the SAES peripheral (KMOD[1:0] = 0x2), write is also ignored. With KMOD[1:0] at 0x0, a special writing sequence is required. In this sequence, any valid write to CRYP_KxR/LR register clears the KEYVALID flag except for the sequence-completing write that sets it. Also refer to the description of the KEYVALID flag in the CRYP_SR register.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>32</bitWidth>
                <access>write-only</access>
              </field>
            </fields>
          </register>
          <register>
            <name>KRR</name>
            <displayName>K0RR</displayName>
            <description>CRYP key register 0R</description>
            <addressOffset>0x4</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>K</name>
                <description>Key bit x
This write-only bitfield contains the bits [223:192] of the AES encryption or decryption key, depending on the operating mode. 
Refer to the CRYP_K0LR register for information relative to writing CRYP_KxR/LR registers.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>32</bitWidth>
                <access>write-only</access>
              </field>
            </fields>
          </register>
        </cluster>
        <cluster>
          <dim>2</dim>
          <dimIncrement>0x8</dimIncrement>
          <dimIndex>0-1</dimIndex>
          <name>INIT%s</name>
          <description>Cluster INIT%s, containing IV?LR, IV?RR</description>
          <addressOffset>0x40</addressOffset>
          <register>
            <name>IVLR</name>
            <displayName>IV0LR</displayName>
            <description>CRYP initialization vector register 0L</description>
            <addressOffset>0x0</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>IVI</name>
                <description>Initialization vector bit x
This bitfield stores the initialization vector bits [127:96] for AES chaining modes other than ECB. 
The value stored in CRYP_IVxR/LR registers is updated by hardware after each computation round (when applicable).
Write to this register is ignored when CRYP is busy (BUSY bit set).</description>
                <bitOffset>0</bitOffset>
                <bitWidth>32</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>IVRR</name>
            <displayName>IV0RR</displayName>
            <description>CRYP initialization vector register 0R</description>
            <addressOffset>0x4</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>IVI</name>
                <description>Initialization vector bit x
This bitfield stores the initialization vector bits [95:64] for AES chaining modes other than ECB. 
The value stored in CRYP_IVxR/LR registers is updated by hardware after each computation round (when applicable).
Write to this register is ignored when CRYP is busy (BUSY bit set).</description>
                <bitOffset>0</bitOffset>
                <bitWidth>32</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
        </cluster>
        <register>
          <dim>8</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-7</dimIndex>
          <name>CSGCMCCM%sR</name>
          <displayName>CSGCMCCM%sR</displayName>
          <description>CRYP context swap GCM-CCM registers</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CSGCMCCM</name>
              <description>Context swap for GCM/GMAC and CCM modes
CRYP_CSGCMCCMxR registers contain the complete internal register states of the CRYP when the GCM, GMAC or CCM processing of the current task is suspended to process a higher-priority task. Refer to Section 60.4.8: CRYP suspend and resume operations for more details.
CRYP_CSGCMCCMxR registers are not used in other chaining modes than GCM, GMAC or CCM.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <dim>8</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-7</dimIndex>
          <name>CSGCM%sR</name>
          <displayName>CSGCM%sR</displayName>
          <description>CRYP context swap GCM registers</description>
          <addressOffset>0x70</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CSGCM</name>
              <description>Context swap for GCM/GMAC modes
CRYP_CSGCMxR registers contain the complete internal register states of the CRYP when the GCM or GMAC processing of the current task is suspended to process a higher-priority task. Refer to Section 60.4.8: CRYP suspend and resume operations for more details.
CRYP_CSGCMxR registers are not used in other chaining modes than GCM or GMAC.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>DBGMCU</name>
      <description>Microcontroller debug unit</description>
      <groupName>DBGMCU</groupName>
      <baseAddress>0x5C001000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x1000</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>IDC</name>
          <displayName>IDC</displayName>
          <description>DBGMCU identity code register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00006485</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>DEV_ID</name>
              <description>Device ID</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>REV_ID</name>
              <description>Revision</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>DBGMCU configuration register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DBGSLEEP</name>
              <description>Debug in Sleep mode enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBGSTOP</name>
              <description>Debug in Stop mode enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBGSTBY</name>
              <description>Debug in Standby mode enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DCRT</name>
              <description>Debug credentials reset type 
This bit selects which type of reset is used to revoke the debug authentication credentials</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TRACECLKEN</name>
              <description>Trace port clock enable. 
This bit enables the trace port clock, TRACECLK.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>D1DBGCKEN</name>
              <description>D1 debug clock enable
This bit allows the debug components in the D1 clock domain (excluding those in the processor core) to be switched off if they are not needed.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TRGOEN</name>
              <description>External trigger output enable
This bit controls the direction of the bi-directional trigger pin, TRGIO.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>AHB5FZR</name>
          <displayName>AHB5FZR</displayName>
          <description>DBGMCU AHB5 peripheral freeze register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DBG_HPDMA_0_STOP</name>
              <description>HPDMA channel 0 stop in debug</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_HPDMA_1_STOP</name>
              <description>HPDMA channel 1 stop in debug</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_HPDMA_2_STOP</name>
              <description>HPDMA channel 2 stop in debug</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_HPDMA_3_STOP</name>
              <description>HPDMA channel 3 stop in debug</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_HPDMA_4_STOP</name>
              <description>HPDMA channel 4 stop in debug</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_HPDMA_5_STOP</name>
              <description>HPDMA channel 5 stop in debug</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_HPDMA_6_STOP</name>
              <description>HPDMA channel 6 stop in debug</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_HPDMA_7_STOP</name>
              <description>HPDMA channel 7 stop in debug</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_HPDMA_8_STOP</name>
              <description>HPDMA channel 8 stop in debug</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_HPDMA_9_STOP</name>
              <description>HPDMA channel 9 stop in debug</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_HPDMA_10_STOP</name>
              <description>HPDMA channel 10 stop in debug</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_HPDMA_11_STOP</name>
              <description>HPDMA channel 11 stop in debug</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_HPDMA_12_STOP</name>
              <description>HPDMA channel 12 stop in debug</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_HPDMA_13_STOP</name>
              <description>HPDMA channel 13 stop in debug</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_HPDMA_14_STOP</name>
              <description>HPDMA channel 14 stop in debug</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_HPDMA_15_STOP</name>
              <description>HPDMA channel 15 stop in debug</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>AHB1FZR</name>
          <displayName>AHB1FZR</displayName>
          <description>DBGMCU AHB1 peripheral freeze register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DBG_GPDMA_0_STOP</name>
              <description>GPDMA channel 0 stop in debug</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_GPDMA_1_STOP</name>
              <description>GPDMA channel 1 stop in debug</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_GPDMA_2_STOP</name>
              <description>GPDMA channel 2 stop in debug</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_GPDMA_3_STOP</name>
              <description>GPDMA channel 3 stop in debug</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_GPDMA_4_STOP</name>
              <description>GPDMA channel 4 stop in debug</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_GPDMA_5_STOP</name>
              <description>GPDMA channel 5 stop in debug</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_GPDMA_6_STOP</name>
              <description>GPDMA channel 6 stop in debug</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_GPDMA_7_STOP</name>
              <description>GPDMA channel 7 stop in debug</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_GPDMA_8_STOP</name>
              <description>GPDMA channel 8 stop in debug</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_GPDMA_9_STOP</name>
              <description>GPDMA channel 9 stop in debug</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_GPDMA_10_STOP</name>
              <description>GPDMA channel 10 stop in debug</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_GPDMA_11_STOP</name>
              <description>GPDMA channel 11 stop in debug</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_GPDMA_12_STOP</name>
              <description>GPDMA channel 12 stop in debug</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_GPDMA_13_STOP</name>
              <description>GPDMA channel 13 stop in debug</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_GPDMA_14_STOP</name>
              <description>GPDMA channel 14 stop in debug</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_GPDMA_15_STOP</name>
              <description>GPDMA channel 15 stop in debug</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>APB1FZR</name>
          <displayName>APB1FZR</displayName>
          <description>DBGMCU APB1 peripheral freeze register</description>
          <addressOffset>0x3C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TIM2</name>
              <description>TIM2 stop in debug</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM3</name>
              <description>TIM3 stop in debug</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM4</name>
              <description>TIM4 stop in debug</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM5</name>
              <description>TIM5 stop in debug</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM6</name>
              <description>TIM6 stop in debug</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM7</name>
              <description>TIM7 stop in debug</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM12</name>
              <description>TIM12 stop in debug</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM13</name>
              <description>TIM13 stop in debug</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM14</name>
              <description>TIM14 stop in debug</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LPTIM1</name>
              <description>LPTIM1 stop in debug</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WWDG</name>
              <description>WWDG stop in debug</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>I2C1</name>
              <description>I2C1 SMBUS timeout stop in debug</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>I2C2</name>
              <description>I2C2 SMBUS timeout stop in debug</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>I2C3</name>
              <description>I2C3 SMBUS timeout stop in debug</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>APB2FZ</name>
          <displayName>APB2FZ</displayName>
          <description>DBGMCU APB2 peripheral freeze register</description>
          <addressOffset>0x4C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TIM1</name>
              <description>TIM1 stop in debug</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM15</name>
              <description>TIM15 stop in debug</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM16</name>
              <description>TIM16 stop in debug</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM17</name>
              <description>TIM17 stop in debug</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM9</name>
              <description>TIM9 stop in debug</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>APB4FZR</name>
          <displayName>APB4FZR</displayName>
          <description>DBGMCU APB4 peripheral freeze register</description>
          <addressOffset>0x54</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LPTIM2</name>
              <description>LPTIM2 stop in debug</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LPTIM3</name>
              <description>LPTIM2 stop in debug</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LPTIM4</name>
              <description>LPTIM4 stop in debug</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LPTIM5</name>
              <description>LPTIM5 stop in debug</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RTC</name>
              <description>RTC stop in debug</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IWDG</name>
              <description>Independent watchdog for stop in debug</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>DBGMCU status register</description>
          <addressOffset>0xFC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00010003</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>AP_PRESENT</name>
              <description>Bit n identifies whether access port AP n is open (can be accessed via the debug port) or locked (debug access to the AP is blocked)
Bit n = 0: APn absent 
Bit n = 1: APn present</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>AP_ENABLED</name>
              <description>Bit n identifies whether access port AP n is open (can be accessed via the debug port) or locked (debug access to the AP is blocked)
Bit n = 0: APn locked 
Bit n = 1: APn enabled</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DBG_AUTH_HOST</name>
          <displayName>DBG_AUTH_HOST</displayName>
          <description>DBGMCU debug authentication mailbox host register</description>
          <addressOffset>0x100</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>MESSAGE</name>
              <description>Debug host to device mailbox message.
During debug authentication the debug host communicates with the device via this register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DBG_AUTH_DEVICE</name>
          <displayName>DBG_AUTH_DEVICE</displayName>
          <description>DBGMCU debug authentication mailbox device register</description>
          <addressOffset>0x104</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>MESSAGE</name>
              <description>Device to debug host mailbox message.
During debug authentication the device communicates with the debug host via this register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DBG_AUTH_ACK</name>
          <displayName>DBG_AUTH_ACK</displayName>
          <description>DBGMCU debug authentication mailbox acknowledge register</description>
          <addressOffset>0x108</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>HOST_ACK</name>
              <description>Host to device acknowledge. The device sets this bit to indicate that it has placed a message in the DBGMCU_DBG_AUTH_DEVICE register. It should be reset by the host after reading the message</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DEV_ACK</name>
              <description>Device to device acknowledge. The host sets this bit to indicate that it has placed a message in the DBGMCU_DBG_AUTH_HOST register. It is reset by the device after reading the message</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PIDR4</name>
          <displayName>PIDR4</displayName>
          <description>DBGMCU peripheral identity register 4</description>
          <addressOffset>0xFD0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>JEP106CON</name>
              <description>JEP106 continuation code</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SIZE</name>
              <description>Register file size</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PIDR0</name>
          <displayName>PIDR0</displayName>
          <description>DBGMCU peripheral identity register 0</description>
          <addressOffset>0xFE0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PARTNUM</name>
              <description>Part number field, bits [7:0]</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PIDR1</name>
          <displayName>PIDR1</displayName>
          <description>DBGMCU peripheral identity register 1</description>
          <addressOffset>0xFE4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PARTNUM</name>
              <description>Part number field, bits [11:8]</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>JEP106ID</name>
              <description>JEP106 identity code field, bits [3:0]</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PIDR2</name>
          <displayName>PIDR2</displayName>
          <description>DBGMCU peripheral identity register 2</description>
          <addressOffset>0xFE8</addressOffset>
          <size>0x20</size>
          <resetValue>0x0000000A</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>JEP106ID</name>
              <description>JEP106 identity code field, bits [6:4]</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>JEDEC</name>
              <description>JEDEC assigned value</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>REVISION</name>
              <description>Component revision number</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PIDR3</name>
          <displayName>PIDR3</displayName>
          <description>DBGMCU peripheral identity register 3</description>
          <addressOffset>0xFEC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CMOD</name>
              <description>Customer modified</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>REVAND</name>
              <description>Metal fix version</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CIDR0</name>
          <displayName>CIDR0</displayName>
          <description>DBGMCU component identity register</description>
          <addressOffset>0xFF0</addressOffset>
          <size>0x20</size>
          <resetValue>0x0000000D</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PREAMBLE</name>
              <description>Component ID field, bits [7:0]</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CIDR1</name>
          <displayName>CIDR1</displayName>
          <description>DBGMCU component identity register</description>
          <addressOffset>0xFF4</addressOffset>
          <size>0x20</size>
          <resetValue>0x000000F0</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PREAMBLE</name>
              <description>Component ID field, bits [11:8]</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CLASS</name>
              <description>Component ID field, bits [15:12] - component class</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CIDR2</name>
          <displayName>CIDR2</displayName>
          <description>DBGMCU component identity register</description>
          <addressOffset>0xFF8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000005</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PREAMBLE</name>
              <description>Component ID field, bits [23:16]</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CIDR3</name>
          <displayName>CIDR3</displayName>
          <description>DBGMCU component identity register</description>
          <addressOffset>0xFFC</addressOffset>
          <size>0x20</size>
          <resetValue>0x000000B1</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PREAMBLE</name>
              <description>Component ID field, bits [31:24]</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>DCMIPP</name>
      <description>Digital camera interface pixel pipeline</description>
      <baseAddress>0x50002000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x1000</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>DCMIPP</name>
        <description>DCMIPP global interrupt</description>
        <value>95</value>
      </interrupt>
      <registers>
        <register>
          <name>IPGR1</name>
          <displayName>IPGR1</displayName>
          <description>DCMIPP IP-Plug global register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000002</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MEMORYPAGE</name>
              <description>Memory page size, as power of 2 of 64-byte units:</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>QOS_MODE</name>
              <description>Quality of service
Set of functions enabling to build and configure an architecture able to meet bandwidth and latency requirements.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IPGR2</name>
          <displayName>IPGR2</displayName>
          <description>DCMIPP IP-Plug global register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PSTART</name>
              <description>Request to lock the IP-Plug, to allow reconfiguration.
PSTART must be reset to 0 after configuration is completed, to restart the IP-Plug.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IPGR3</name>
          <displayName>IPGR3</displayName>
          <description>DCMIPP IP-Plug global register 3</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000001</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IDLE</name>
              <description>Status of IP-Plug
IDLE is set some time after a request by setting PSTART at 1, and reset by resetting PSTART at 0.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IPGR8</name>
          <displayName>IPGR8</displayName>
          <description>DCMIPP IP-Plug identification register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0xAA040314</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DID</name>
              <description>Division identifier (0x14)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>REVID</name>
              <description>Revision identifier (0x03)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ARCHIID</name>
              <description>Architecture identifier (0x04)</description>
              <bitOffset>16</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>IPPID</name>
              <description>IP identifier (0xAA)</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IPC1R1</name>
          <displayName>IPC1R1</displayName>
          <description>DCMIPP IP-Plug Clientx register 1</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000003</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TRAFFIC</name>
              <description>Burst size as power of 2 of 8-byte units
Other values: Reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OTR</name>
              <description>Maximum outstanding transactions
...
Other values are not allowed.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IPC1R2</name>
          <displayName>IPC1R2</displayName>
          <description>DCMIPP IP-Plug Clientx register 2</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00010000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SVCMAPPING</name>
              <description>Non-user, must be kept at reset value.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WLRU</name>
              <description>Ratio for WLRU[3:0] arbitration
A client gets a portion of the total bandwidth = Ratio(client) / Sum(all ratio)
...</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IPC1R3</name>
          <displayName>IPC1R3</displayName>
          <description>DCMIPP IP-Plug Clientx register 3</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x001F0000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DPREGSTART</name>
              <description>Start word (AXI width = 64 bits) of the FIFO of Clientx.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPREGEND</name>
              <description>End word (AXI width = 64 bits) of the FIFO of Clientx.
The addressed word is included in the FIFO, so that next DPREGSTART is DPREGEND + 1.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PRCR</name>
          <displayName>PRCR</displayName>
          <description>DCMIPP parallel interface control register</description>
          <addressOffset>0x104</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ESS</name>
              <description>Embedded synchronization select
Valid only for 8-bit parallel data. HSPOL/VSPOL are ignored when this bit is set.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PCKPOL</name>
              <description>Pixel clock polarity
This bit configures the capture edge of the pixel clock</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HSPOL</name>
              <description>Horizontal synchronization polarity
This bit indicates the level on the HSYNC pin when the data are not valid on the parallel interface.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VSPOL</name>
              <description>Vertical synchronization polarity
This bit indicates the level on the VSYNC pin when the data are not valid on the parallel interface.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EDM</name>
              <description>Extended data mode
Other values: Reserved.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ENABLE</name>
              <description>Parallel interface enable
The parallel interface configuration registers must be correctly programmed before enabling this bit.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FORMAT</name>
              <description>Other values: data are captured and output as-is only through the data/dump pipeline (for example JPEG or byte input format).
The monochrome Y input is inserted in the pipe as YUV pixels, with the U and V components set to neutral, to represent a grey color.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWAPCYCLES</name>
              <description>Swap data (cycle 0 vs. cycle 1) for pixels received on two cycles
The swap must not be activated by software for pixels received in one or three cycles.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWAPBITS</name>
              <description>Swap LSB vs. MSB within each received component</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PRESCR</name>
          <displayName>PRESCR</displayName>
          <description>DCMIPP parallel interface embedded synchronization code register</description>
          <addressOffset>0x108</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FSC</name>
              <description>Frame start delimiter code
This byte specifies the code of the frame start delimiter. The code consists of four bytes in the form of 0xFF, 0x00, 0x00, FSC.
If FSC is programmed to 0xFF, no frame start delimiter is detected, but the first occurrence of LSC after an FEC code is interpreted as the start of frame delimiter.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSC</name>
              <description>Line start delimiter code
This byte specifies the code of the line start delimiter. The code consists of four bytes in the form of 0xFF, 0x00, 0x00, LSC.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LEC</name>
              <description>Line end delimiter code
This byte specifies the code of the line end delimiter. The code consists of four bytes in the form of 0xFF, 0x00, 0x00, LEC.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FEC</name>
              <description>Frame end delimiter code
This byte specifies the code of the frame end delimiter. The code consists of four bytes in the form of 0xFF, 0x00, 0x00, FEC.
If FEC is programmed to 0xFF, all the unused codes (0xFF00 00XY) are interpreted as frame end delimiters.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PRESUR</name>
          <displayName>PRESUR</displayName>
          <description>DCMIPP parallel interface embedded synchronization unmask register</description>
          <addressOffset>0x10C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FSU</name>
              <description>Frame start delimiter unmask
This byte specifies the mask to be applied to the code of the frame start delimiter.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSU</name>
              <description>Line start delimiter unmask
This byte specifies the mask to be applied to the code of the line start delimiter.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LEU</name>
              <description>Line end delimiter unmask
This byte specifies the mask to be applied to the code of the line end delimiter.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FEU</name>
              <description>Frame end delimiter unmask
This byte specifies the mask to be applied to the code of the frame end delimiter.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PRIER</name>
          <displayName>PRIER</displayName>
          <description>DCMIPP parallel interface interrupt enable register</description>
          <addressOffset>0x1F4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ERRIE</name>
              <description>Synchronization error interrupt enable
This bit is available only in embedded synchronization mode.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PRSR</name>
          <displayName>PRSR</displayName>
          <description>DCMIPP parallel interface status register</description>
          <addressOffset>0x1F8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00030000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ERRF</name>
              <description>Synchronization error raw interrupt status
This bit is valid only in the embedded synchronization mode. It is cleared by writing a 1 to the CERRF bit in DCMIPP_PRFCR.
This bit is available only in embedded synchronization mode.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>HSYNC</name>
              <description>This bit gives the state of the HSYNC pin with the correct programmed polarity if ENABLE bit is set into the DCMIPP_PRCR register and if the pixel clock is received. It is set during the blanking period whatever the polarity selected in HPOL bit, and cleared otherwise.
When embedded synchronization codes are used:
In case of embedded synchronization, this bit is meaningful only if the CAPTURE bit in DCMIPP_CR is set.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>VSYNC</name>
              <description>This bit gives the state of the VSYNC pin with the correct programmed polarity if ENABLE bit is set into the DCMIPP_PRCR register and if the pixel clock is received. It is set during the blanking period whatever the polarity selected in VPOL bit, and cleared otherwise.
When embedded synchronization codes are used:
In case of embedded synchronization, this bit is meaningful only if the CAPTURE bit in DCMIPP_CR is set.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PRFCR</name>
          <displayName>PRFCR</displayName>
          <description>DCMIPP parallel interface interrupt clear register</description>
          <addressOffset>0x1FC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CERRF</name>
              <description>Synchronization error interrupt status clear
Writing a 1 into this bit clears the ERRF bit in DCMIPP_PRSR.
This bit is available only in embedded synchronization mode.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CMCR</name>
          <displayName>CMCR</displayName>
          <description>DCMIPP common configuration register</description>
          <addressOffset>0x204</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CFC</name>
              <description>Clear frame counter
When this bit is set, the frame counter associated to a pipe is cleared. It resets DCMIPP_CMFRCR register. This bit is always read at 0.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CMFRCR</name>
          <displayName>CMFRCR</displayName>
          <description>DCMIPP common frame counter register</description>
          <addressOffset>0x208</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FRMCNT</name>
              <description>Frame counter, read-only, loops around.
Incremented following VSYNC detection mapped to the pipe configured into bits PSFC[1:0] of the DCMIPP_CMCR register. The counter is cleared using the CRC bit in the DCMIPP_CMCR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CMIER</name>
          <displayName>CMIER</displayName>
          <description>DCMIPP common interrupt enable register</description>
          <addressOffset>0x3F0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ATXERRIE</name>
              <description>AXI transfer error interrupt enable for IP-Plug</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PRERRIE</name>
              <description>Limit interrupt enable for the parallel Interface</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>P0LINEIE</name>
              <description>Multi-line capture complete interrupt enable for Pipe0</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>P0FRAMEIE</name>
              <description>Frame capture complete interrupt enable for Pipe0</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>P0VSYNCIE</name>
              <description>Vertical sync interrupt enable for Pipe0</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>P0LIMITIE</name>
              <description>Limit interrupt enable for Pipe0</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>P0OVRIE</name>
              <description>Overrun interrupt enable for Pipe0</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CMSR1</name>
          <displayName>CMSR1</displayName>
          <description>DCMIPP common status register 1</description>
          <addressOffset>0x3F4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000003</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRHSYNC</name>
              <description>This bit gives the state of the HSYNC pin with the correct programmed polarity on the parallel interface if ENABLE bit is set into the DCMIPP_PRCR register and if the pixel clock is received. It is set during the blanking period whatever the polarity selected in HPOL bit of the DCMIPP_PRCR register, and cleared otherwise.
When embedded synchronization codes are used the meaning of this bit is the following:
In case of embedded synchronization, this bit is meaningful only if the CAPTURE bit in the DCMIPP_PRCR register is set.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PRVSYNC</name>
              <description>This bit gives the state of the VSYNC pin with the correct programmed polarity on the parallel interface if ENABLE bit is set into the DCMIPP_PRCR register and if the pixel clock is received. It is set during the blanking period whatever the polarity selected in VPOL bit of the DCMIPP_PRCR register, and cleared otherwise.
When embedded synchronization codes are used, the meaning of this bit is the following:
In case of embedded synchronization, this bit is meaningful only if the CAPTURE bit in the DCMIPP_PRCR register is set.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>P0CPTACT</name>
              <description>Active frame capture (active from start-of-frame to frame complete) for Pipe0</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CMSR2</name>
          <displayName>CMSR2</displayName>
          <description>DCMIPP common status register 2</description>
          <addressOffset>0x3F8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ATXERRF</name>
              <description>AXI transfer error interrupt status flag for the IP-Plug.
This bit is cleared by writing a 1 to CATXERRF bit in the DCMIPP_CMFCR register.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PRERRF</name>
              <description>Synchronization error raw interrupt status for the parallel interface.
This bit is valid only in the embedded synchronization mode. It is cleared by writing a 1 to the CPRERRF bit in the DCMIPP_CMFCR register.
This bit is available only in embedded synchronization mode.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>P0LINEF</name>
              <description>Multi-line capture completed raw interrupt status for Pipe0
This bit is set when one/more lines have been completed. The periodicity of LINEF event is configured by LINEMULT bits into DCMIPP_P0PPCR register. When reaching end of frame, this event is triggered out to allow software action even if the LINEMULT value set is not a multiple of the total lines frame.
In the case of embedded synchronization, this bit is set only if the CAPTURE bit in the DCMIPP_CR register is set. It is cleared by writing a 1 to the CP0LINEF bit in the DCMIPP_CMFCR register.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>P0FRAMEF</name>
              <description>Frame capture completed raw interrupt status for Pipe0
This bit is set when all data of a frame or window have been captured.
In case of a cropped window, this bit is set at the end of line of the last line in the crop, even if the captured frame is empty (for example window cropped outside the frame).
This bit is cleared by writing a 1 to the CP0FRAMEF bit in the DCMIPP_CMFCR register.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>P0VSYNCF</name>
              <description>VSYNC raw interrupt status for Pipe0
This bit is set when the VSYNC signal changes from the inactive state to the active state.
In the case of embedded synchronization, this bit is set only if the CAPTURE bit is set in DCMIPP_CR. It is cleared by writing a 1 to the CP0VSYNCF bit in the DCMIPP_CMFCR register.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>P0LIMITF</name>
              <description>Limit raw interrupt status for Pipe0
This bit is set when the data counter DCMIPP_P0DCCNT reaches its maximum value DCMIPP_P0DCLIMIT.
It is cleared by writing a 1 to the CP0LIMITF bit in the DCMIPP_CMFCR register.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>P0OVRF</name>
              <description>Overrun raw interrupt status for Pipe0
This bit is cleared by writing a 1 to the CP0OVRF bit in the DCMIPP_CMFCR register.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CMFCR</name>
          <displayName>CMFCR</displayName>
          <description>DCMIPP common interrupt clear register</description>
          <addressOffset>0x3FC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CATXERRF</name>
              <description>AXI transfer error interrupt status clear
Writing a 1 into this bit clears the ATXERRF bit in the DCMIPP_CMSR2 register.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CPRERRF</name>
              <description>Synchronization error interrupt status clear
Writing a 1 into this bit clears the PRERRF bit in the DCMIPP_CMSR2 register.
This bit is available only in embedded synchronization mode.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CP0LINEF</name>
              <description>Multi-line capture complete interrupt status clear
Writing a 1 into this bit clears P0LINEF in the DCMIPP_CMSR2 register</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CP0FRAMEF</name>
              <description>Frame capture complete interrupt status clear
Writing a 1 into this bit clears the P0FRAMEF bit in the DCMIPP_CMSR2 register.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CP0VSYNCF</name>
              <description>Vertical synchronization interrupt status clear
Writing a 1 into this bit clears the P0VSYNCF bit in the DCMIPP_CMSR2 register.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CP0LIMITF</name>
              <description>limit interrupt status clear
Writing a 1 into this bit clears P0LIMITF in the DCMIPP_CMSR2 register</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CP0OVRF</name>
              <description>Overrun interrupt status clear
Writing a 1 into this bit clears the P0OVRF bit in the DCMIPP_CMSR2 register</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>P0FSCR</name>
          <displayName>P0FSCR</displayName>
          <description>DCMIPP Pipe0 flow selection configuration register</description>
          <addressOffset>0x404</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PIPEN</name>
              <description>Activation of PipeN
Note: This bit is not shadowed, differently from all other bits in this register.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>P0FCTCR</name>
          <displayName>P0FCTCR</displayName>
          <description>DCMIPP Pipe0 flow control configuration register</description>
          <addressOffset>0x500</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FRATE</name>
              <description>Frame capture rate control
These bits define the frequency of frame capture. They are meaningful only in Continuous grab mode, ignored in Snapshot mode.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CPTMODE</name>
              <description>Capture mode</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CPTREQ</name>
              <description>Capture requested
When PIPEN = 1 and when the CPTREQ is set to 1 the pipe waits for the first VSync, and automatically starts a capture and sets CPTACT = 1 to mention it.
In Snapshot mode the CPTREQ bit is automatically cleared at the start of the first received frame.
In Continuous grab mode, the capture remains active and CPTREQ = 1 until the software clears CPTREQ: the capture stops and CPTACT is reset at the end of the ongoing frame.
The DCMI and pipe configuration registers must be correctly programmed before enabling this bit.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>P0SCSTR</name>
          <displayName>P0SCSTR</displayName>
          <description>DCMIPP Pipe0 stat/crop start register</description>
          <addressOffset>0x504</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>HSTART</name>
              <description>Horizontal start, from 0 to 4094 words wide</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VSTART</name>
              <description>Vertical start, from 0 to 4094 pixels high</description>
              <bitOffset>16</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>P0SCSZR</name>
          <displayName>P0SCSZR</displayName>
          <description>DCMIPP Pipe0 stat/crop size register</description>
          <addressOffset>0x508</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>HSIZE</name>
              <description>Horizontal size, from 0 to 4094 word wide (data 32-bit)
If the value is maintained at 0 when enabling the crop by means of ENABLE bit, the crop operation is not performed on horizontal direction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VSIZE</name>
              <description>Vertical size, from 0 to 4094 pixels high
If the value is maintained at 0 when enabling the crop by means of ENABLE bit, the crop operation is not performed on vertical direction.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>POSNEG</name>
              <description>This bit is set and cleared by software. It has a meaning only if ENABLE bit is set.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ENABLE</name>
              <description>This bit is set and cleared by software.
if POSNEG = 0, the data inside the rectangle area are transmitted (it can correspond to a statistical data removal, or as a crop feature in a data valid image area).
if POSNEG = 1, the data outside of the rectangle area are transmitted (it can correspond to a statistical data extraction, rejecting all data inside the window).
This bit must be kept cleared if the input format is JPEG, to avoid unpredictable behavior of the pipe.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>P0DCCNTR</name>
          <displayName>P0DCCNTR</displayName>
          <description>DCMIPP Pipe0 dump counter register</description>
          <addressOffset>0x5B0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CNT</name>
              <description>Number of data dumped during the frame.
The size of the data is expressed in bytes. It counts only the data selected by means of the CROP 2D function. The counter saturates at 0x3FFFFFF. Granularity is 32-bit for all the formats except for the byte stream formats (for example JPEG) having byte granularity.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>26</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>P0DCLMTR</name>
          <displayName>P0DCLMTR</displayName>
          <description>DCMIPP Pipe0 dump limit register</description>
          <addressOffset>0x5B4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00FFFFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LIMIT</name>
              <description>Maximum number of 32-bit data that can be dumped during a frame, after the crop 2D operation.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>24</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ENABLE</name>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>P0PPCR</name>
          <displayName>P0PPCR</displayName>
          <description>DCMIPP Pipe0 pixel packer configuration register</description>
          <addressOffset>0x5C0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PAD</name>
              <description>Pad mode for monochrome and raw Bayer 10/12/14 bpp: MSB vs. LSB alignment.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BSM</name>
              <description>Byte select mode
Modes 10 and 11 work only with EDM [2:0] = 000 into the DCMIPP_PRCR register.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OEBS</name>
              <description>Odd/even byte select (byte select start)
This bit works in conjunction with BSM field (BSM different from 00)</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSM</name>
              <description>Line select mode</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OELS</name>
              <description>Odd/even line select (line select start)
This bit works in conjunction with LSM field (LSM = 1).</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LINEMULT</name>
              <description>Amount of capture completed lines for LINE event and interrupt</description>
              <bitOffset>13</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBM</name>
              <description>Double buffer mode
This bit is set and cleared by software.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>P0PPM0AR1</name>
          <displayName>P0PPM0AR1</displayName>
          <description>DCMIPP Pipe0 pixel packer Memory0 address register 1</description>
          <addressOffset>0x5C4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>M0A</name>
              <description>Memory0 address
Base address of memory area 0, to whom data are written. It is assumed to be a multiple of 16, hence its bits 3:0 are always at 0x0.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>P0PPM0AR2</name>
          <displayName>P0PPM0AR2</displayName>
          <description>DCMIPP Pipe0 pixel packer Memory0 address register 2</description>
          <addressOffset>0x5C8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>M0A</name>
              <description>Memory0 address
Base address of memory area 0, to whom data are written. It is assumed to be a multiple of 16, hence its bits 3:0 are always at 0x0.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>P0IER</name>
          <displayName>P0IER</displayName>
          <description>DCMIPP Pipe0 interrupt enable register</description>
          <addressOffset>0x5F4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LINEIE</name>
              <description>Multi-line capture completed interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRAMEIE</name>
              <description>Frame capture completed interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VSYNCIE</name>
              <description>VSYNC interrupt enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LIMITIE</name>
              <description>Limit interrupt enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OVRIE</name>
              <description>Overrun interrupt enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>P0SR</name>
          <displayName>P0SR</displayName>
          <description>DCMIPP Pipe0 status register</description>
          <addressOffset>0x5F8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LINEF</name>
              <description>Multi-line capture completed raw interrupt status
This bit is set when one/more lines have been completed. For the JPEG mode, this bit is raised at the end of the frame.
The periodicity of LINEF event is configured by LINEMULT bits into DCMIPP_P0PPCR register. When reaching end of frame, this event is triggered out to allow software action even if the LINEMULT value set is not a multiple of the total lines frame.
In case of embedded synchronization, this bit is set only if the CAPTURE bit in the DCMIPP_CR register is set. It is cleared by writing a 1 to the CLINEF bit in the DCMIPP_P0FCR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>FRAMEF</name>
              <description>Frame capture completed raw interrupt status
This bit is set when all data of a frame or window have been captured. In case of a cropped window, this bit is set at the end of line of the last line in the crop. It is set even if the captured frame is empty (for example window cropped outside the frame).
This bit is cleared by writing a 1 to the CFRAMEF bit in DCMIPP_P0FCR.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>VSYNCF</name>
              <description>VSYNC raw interrupt status
This bit is set when the VSYNC signal changes from the inactive state to the active state. In case of embedded synchronization, this bit is set only if the CAPTURE bit is set in DCMIPP_CR.
It is cleared by writing a 1 to the CVSYNCF bit in the DCMIPP_P0FCR register.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>LIMITF</name>
              <description>Limit raw interrupt status
This bit is set when the data counter DCMIPP_PxDCCNTR reaches its maximum value DCMIPP_PxDCLIMITR.
It is cleared by writing a 1 to the CLIMITF bit in the DCMIPP_P0FCR register.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OVRF</name>
              <description>Overrun raw interrupt status
This bit is cleared by writing a 1 to the COVRF bit in the DCMIPP_P0FCR register.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CPTACT</name>
              <description>Capture immediate status
This bit is automatically reset at the end of frame capture complete event (after all the data of that frame have been captured and the IP-Plug has started to emit the last burst on the AXI, usually before the next VSync).</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>P0FCR</name>
          <displayName>P0FCR</displayName>
          <description>DCMIPP Pipe0 interrupt clear register</description>
          <addressOffset>0x5FC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CLINEF</name>
              <description>Multi-line capture complete interrupt status clear
Writing a 1 into this bit clears LINEF in the DCMIPP_P0SR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CFRAMEF</name>
              <description>Frame capture complete interrupt status clear
Writing a 1 into this bit clears the FRAMEF bit in the DCMIPP_P0SR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CVSYNCF</name>
              <description>Vertical synchronization interrupt status clear
Writing a 1 into this bit clears the VSYNCF bit in the DCMIPP_P0SR register.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CLIMITF</name>
              <description>limit interrupt status clear
Writing a 1 into this bit clears LIMITF in the DCMIPP_P0SR register.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>COVRF</name>
              <description>Overrun interrupt status clear
Writing a 1 into this bit clears the OVRF bit in the DCMIPP_P0SR register.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>P0CFCTCR</name>
          <displayName>P0CFCTCR</displayName>
          <description>DCMIPP Pipe0 current flow control configuration register</description>
          <addressOffset>0x700</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FRATE</name>
              <description>Frame capture rate control
These bits define the frequency of frame capture. They are meaningful only in Continuous grab mode, ignored in Snapshot mode.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CPTMODE</name>
              <description>Capture mode</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CPTREQ</name>
              <description>Capture requested
When PIPEN = 1, and when the CPTREQ is set to 1 the pipe waits for the first VSync, and automatically starts a capture and sets CPTACT = 1 to mention it.
In Snapshot mode the CPTREQ bit is automatically cleared at the start of the first frame received.
In continuous grab mode the capture remains active and CPTREQ = 1, until the software clears CPTREQ: the capture stops and CPTACT is reset at the end of the ongoing frame.
The DCMI and pipe configuration registers must be correctly programmed before enabling this bit.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>P0CSCSTR</name>
          <displayName>P0CSCSTR</displayName>
          <description>DCMIPP Pipe0 current stat/crop start register</description>
          <addressOffset>0x704</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>HSTART</name>
              <description>Current horizontal start, from 0 to 4094 words wide</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>VSTART</name>
              <description>Current vertical start, from 0 to 4094 pixels high</description>
              <bitOffset>16</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>P0CSCSZR</name>
          <displayName>P0CSCSZR</displayName>
          <description>DCMIPP Pipe0 current stat/crop size register</description>
          <addressOffset>0x708</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>HSIZE</name>
              <description>Current horizontal size, from 0 to 4094 word wide (data 32-bit).
If the value is maintained at 0 when enabling the crop by means of the ENABLE bit, the value is forced internally at 0xFFE, which is the maximum value.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>VSIZE</name>
              <description>Current vertical size, from 0 to 4094 pixels high.
If the value is maintained at 0 when enabling the crop by means of the ENABLE bit, the value is forced internally at 0xFFE which is the maximum value.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>POSNEG</name>
              <description>Current value of the POSNEG bit
This bit has a meaning only if ENABLE bit is set.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ENABLE</name>
              <description>Current value of the ENABLE bit
if POSNEG = 0, the data inside the rectangle area are transmitted (can correspond to a statistical data removal, or as a crop feature in a data valid image area).
if POSNEG = 1, the data outside of the rectangle area are transmitted (can correspond to a statistical data extraction, rejecting all data inside the window)</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>P0CPPCR</name>
          <displayName>P0CPPCR</displayName>
          <description>DCMIPP Pipe0 current pixel packer configuration register</description>
          <addressOffset>0x7C0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PAD</name>
              <description>Current Pad mode for monochrome and raw Bayer 10/12/14 bpp: MSB vs. LSB alignment</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>BSM</name>
              <description>Current Byte select mode
Modes 10 and 11 work only with EDM [2:0] = 000 into the DCMIPP_PRCR register.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OEBS</name>
              <description>Current odd/even byte select (byte select start)
This bit works in conjunction with BSM field (BSM different from 00)</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>LSM</name>
              <description>Current Line select mode</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OELS</name>
              <description>Current odd/even line select (ine select start)
This bit works in conjunction with LSM field (LSM = 1)</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>LINEMULT</name>
              <description>Current amount of capture completed lines for LINE event and interrupt</description>
              <bitOffset>13</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DBM</name>
              <description>Double buffer mode</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>P0CPPM0AR1</name>
          <displayName>P0CPPM0AR1</displayName>
          <description>DCMIPP Pipe0 current pixel packer Memory0 address register 1</description>
          <addressOffset>0x7C4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>M0A</name>
              <description>Memory0 address
Base address of the current memory area 0, to whom data are written. It is assumed to be a multiple of 16, hence its bits 3:0 are always at 0x0.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>P0CPPM0AR2</name>
          <displayName>P0CPPM0AR2</displayName>
          <description>DCMIPP Pipe0 current pixel packer Memory0 address register 2</description>
          <addressOffset>0x7C8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>M0A</name>
              <description>Memory0 address
Base address of the current memory area 0, to whom data are written. It is assumed to be a multiple of 16, hence its bits 3:0 are always at 0x0.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>DLYB1</name>
      <description>DLYB register block</description>
      <groupName>DLYB</groupName>
      <baseAddress>0x52008000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>DLYB control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DEN</name>
              <description>Delay block enable bit</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SEN</name>
              <description>Sampler length enable bit</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CFGR</name>
          <displayName>CFGR</displayName>
          <description>DLYB configuration register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SEL</name>
              <description>Phase for the output clock.
These bits can only be written when SEN = 1. 
Output clock phase = input clock + SEL[3:0] x unit delay</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UNIT</name>
              <description>Delay of a unit delay cell.
These bits can only be written when SEN = 1.
Unit delay = initial delay + UNIT[6:0] x delay step</description>
              <bitOffset>8</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LNG</name>
              <description>Delay line length value
These bits reflect the 12 unit delay values sampled at the rising edge of the input clock.
The value is only valid when LNGF = 1.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>LNGF</name>
              <description>Length valid flag
This flag indicates when the delay line length value contained in LNG[11:0] is valid after UNIT[6:0] bits changed.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="DLYB1">
      <name>DLYB2</name>
      <baseAddress>0x48002800</baseAddress>
    </peripheral>
    <peripheral>
      <name>DMA2D</name>
      <description>Chrom-Art Accelerator controller</description>
      <groupName>DMA2D</groupName>
      <baseAddress>0x52001000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0xC00</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>DMA2D</name>
        <description>DMA2D global interrupt</description>
        <value>98</value>
      </interrupt>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>DMA2D control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>START</name>
              <description>Start
This bit can be used to launch the DMA2D according to parameters loaded in the various configuration registers. This bit is automatically reset by the following events:
at the end of the transfer 
when the data transfer is aborted by the user by setting ABORT in this register
when a data transfer error occurs
when the data transfer has not started due to a configuration error, or another transfer operation already ongoing (automatic CLUT loading)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SUSP</name>
              <description>Suspend
This bit can be used to suspend the current transfer. This bit is set and reset by software. It is automatically reset by hardware when START = 0.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ABORT</name>
              <description>Abort
This bit can be used to abort the current transfer. This bit is set by software, and is automatically reset by hardware when START = 0.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LOM</name>
              <description>Line offset mode
This bit configures how the line offset is expressed (pixels or bytes) for the foreground, background and output.
This bit is set and cleared by software. It can not be modified while a transfer is ongoing.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TEIE</name>
              <description>Transfer error (TE) interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TCIE</name>
              <description>Transfer complete (TC) interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TWIE</name>
              <description>Transfer watermark (TW) interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CAEIE</name>
              <description>CLUT access error (CAE) interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CTCIE</name>
              <description>CLUT transfer complete (CTC) interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CEIE</name>
              <description>Configuration error (CE) interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MODE</name>
              <description>DMA2D mode
This bit is set and cleared by software. It cannot be modified while a transfer is ongoing.
Others: Reserved</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ISR</name>
          <displayName>ISR</displayName>
          <description>DMA2D interrupt status register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TEIF</name>
              <description>Transfer error interrupt flag
This bit is set when an error occurs during a DMA transfer (data transfer or automatic CLUT loading).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TCIF</name>
              <description>Transfer complete interrupt flag
This bit is set when a DMA2D transfer operation is complete (data transfer only).</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TWIF</name>
              <description>Transfer watermark interrupt flag
This bit is set when the last pixel of the watermarked line has been transferred.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CAEIF</name>
              <description>CLUT access error interrupt flag
This bit is set when the CPU accesses the CLUT while the CLUT is being automatically copied from a system memory to the internal DMA2D.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CTCIF</name>
              <description>CLUT transfer complete interrupt flag
This bit is set when the CLUT copy from a system memory area to the internal DMA2D memory is complete.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CEIF</name>
              <description>Configuration error interrupt flag
This bit is set when START is set in DMA2D_CR, DMA2DFGPFCCR or DMA2D_BGPFCCR, and a wrong configuration has been programmed.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IFCR</name>
          <displayName>IFCR</displayName>
          <description>DMA2D interrupt flag clear register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CTEIF</name>
              <description>Clear transfer error interrupt flag
Programming this bit to 1 clears the TEIF flag in DMA2D_ISR.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CTCIF</name>
              <description>Clear transfer complete interrupt flag
Programming this bit to 1 clears the TCIF flag in DMA2D_ISR.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CTWIF</name>
              <description>Clear transfer watermark interrupt flag
Programming this bit to 1 clears the TWIF flag in DMA2D_ISR.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CAECIF</name>
              <description>Clear CLUT access error interrupt flag
Programming this bit to 1 clears the CAEIF flag in DMA2D_ISR.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CCTCIF</name>
              <description>Clear CLUT transfer complete interrupt flag
Programming this bit to 1 clears the CTCIF flag in DMA2D_ISR.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CCEIF</name>
              <description>Clear configuration error interrupt flag
Programming this bit to 1 clears the CEIF flag in DMA2D_ISR.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>FGMAR</name>
          <displayName>FGMAR</displayName>
          <description>DMA2D foreground memory address register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MA</name>
              <description>Memory address, address of the data used for the foreground image
The address alignment must match the image format selected: a 32-bit per pixel format must be 32-bit aligned, a 16-bit per pixel format must be 16-bit aligned, and a 4-bit per pixel format must be 8-bit aligned.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>FGOR</name>
          <displayName>FGOR</displayName>
          <description>DMA2D foreground offset register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LO</name>
              <description>Line offset
This field gives the line offset used for the foreground image, expressed:
in pixels when LOM = 0 in DMA2D_CR. Only LO[13:0] bits are considered, LO[15:14] bits are ignored.
in bytes when LOM = 1
This value is used for the address generation. It is added at the end of each line to determine the starting address of the next line.
If the image format is 4-bit per pixel, the line offset must be even.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>BGMAR</name>
          <displayName>BGMAR</displayName>
          <description>DMA2D background memory address register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MA</name>
              <description>Memory address, address of the data used for the background image
The address alignment must match the image format selected: a 32-bit per pixel format must be 32-bit aligned, a 16-bit per pixel format must be 16-bit aligned and a 4-bit per pixel format must be 8-bit aligned.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>BGOR</name>
          <displayName>BGOR</displayName>
          <description>DMA2D background offset register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LO</name>
              <description>Line offset
This field gives the line offset used for the background image, expressed:
in pixels when LOM = 0 in DMA2D_CR. Only LO[13:0] bits are considered, LO[15:14] bits are ignored.
in bytes when LOM = 1
This value is used for the address generation. It is added at the end of each line to determine the starting address of the next line.
If the image format is 4-bit per pixel, the line offset must be even.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>FGPFCCR</name>
          <displayName>FGPFCCR</displayName>
          <description>DMA2D foreground PFC control register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CM</name>
              <description>Color mode
These bits defines the color format of the foreground image.
Others: Reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CCM</name>
              <description>CLUT color mode
This bit defines the color format of the CLUT.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>START</name>
              <description>Start
This bit can be set to start the automatic loading of the CLUT. It is automatically reset:
at the end of the transfer 
when the transfer is aborted by the user by setting ABORT in DMA2D_CR
when a transfer error occurs
when the transfer has not started due to a configuration error or another transfer operation already ongoing (data transfer or automatic background CLUT transfer)</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CS</name>
              <description>CLUT size
These bits define the size of the CLUT used for the foreground image. 
The number of CLUT entries is equal to CS[7:0] + 1.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AM</name>
              <description>Alpha mode
These bits select the alpha channel value to be used for the foreground image. 
Others: Reserved</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CSS</name>
              <description>Chroma subsampling
These bits define the chroma subsampling mode for YCbCr color mode. 
Others: Reserved</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AI</name>
              <description>Alpha inverted
This bit inverts the alpha value.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RBS</name>
              <description>Red/Blue swap
This bit allows to swap Red and Blue to support BGR or ABGR color formats.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ALPHA</name>
              <description>Alpha value
These bits define a fixed alpha channel value which can replace the original alpha value, or be multiplied by the original alpha value, according to the alpha mode selected through AM[1:0] in this register.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>FGCOLR</name>
          <displayName>FGCOLR</displayName>
          <description>DMA2D foreground color register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BLUE</name>
              <description>Blue value for the A4 or A8 mode of the foreground image
Used also for fixed color FG in memory-to-memory mode with blending and fixed color FG (BG fetch only with FG and BG PFC active).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GREEN</name>
              <description>Green value for the A4 or A8 mode of the foreground image
Used also for fixed color FG in memory-to-memory mode with blending and fixed color FG (BG fetch only with FG and BG PFC active).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RED</name>
              <description>Red value for the A4 or A8 mode of the foreground image
Used also for fixed color FG in memory-to-memory mode with blending and fixed color FG (BG fetch only with FG and BG PFC active).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>BGPFCCR</name>
          <displayName>BGPFCCR</displayName>
          <description>DMA2D background PFC control register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CM</name>
              <description>Color mode
These bits define the color format of the foreground image. 
Others: Reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CCM</name>
              <description>CLUT color mode
These bits define the color format of the CLUT.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>START</name>
              <description>Start
This bit is set to start the automatic loading of the CLUT. This bit is automatically reset:
at the end of the transfer 
when the transfer is aborted by the user by setting ABORT bit in DMA2D_CR
when a transfer error occurs
when the transfer has not started due to a configuration error or another transfer operation already on going (data transfer or automatic background CLUT transfer)</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CS</name>
              <description>CLUT size
These bits define the size of the CLUT used for the BG. 
The number of CLUT entries is equal to CS[7:0] + 1.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AM</name>
              <description>Alpha mode
These bits define which alpha channel value to be used for the background image. 
Others: Reserved</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AI</name>
              <description>Alpha Inverted
This bit inverts the alpha value.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RBS</name>
              <description>Red/Blue swap
This bit allows to swap Red and Blue to support BGR or ABGR color formats.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ALPHA</name>
              <description>Alpha value
These bits define a fixed alpha channel value which can replace the original alpha value, or be multiplied with the original alpha value according to the alpha mode selected with AM[1:0].</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>BGCOLR</name>
          <displayName>BGCOLR</displayName>
          <description>DMA2D background color register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BLUE</name>
              <description>Blue value for the A4 or A8 mode of the background
Used also for fixed color BG in memory-to-memory mode with blending and fixed color BG (FG fetch only with FG and BG PFC active).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GREEN</name>
              <description>Green value for the A4 or A8 mode of the background
Used also for fixed color BG in memory-to-memory mode with blending and fixed color BG (FG fetch only with FG and BG PFC active).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RED</name>
              <description>Red value for the A4 or A8 mode of the background
Used also for fixed color BG in memory-to-memory mode with blending and fixed color BG (FG fetch only with FG and BG PFC active).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>FGCMAR</name>
          <displayName>FGCMAR</displayName>
          <description>DMA2D foreground CLUT memory address register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MA</name>
              <description>Memory address
Address of the data used for the CLUT address dedicated to the foreground image. 
If the foreground CLUT format is 32-bit, the address must be 32-bit aligned.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>BGCMAR</name>
          <displayName>BGCMAR</displayName>
          <description>DMA2D background CLUT memory address register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MA</name>
              <description>Memory address
Address of the data used for the CLUT address dedicated to the background image. 
If the background CLUT format is 32-bit, the address must be 32-bit aligned.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OPFCCR</name>
          <displayName>OPFCCR</displayName>
          <description>DMA2D output PFC control register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CM</name>
              <description>Color mode
These bits define the color format of the output image. 
Others: Reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SB</name>
              <description>Swap bytes
When this bit is set, the bytes in the output FIFO are swapped two by two. The number of pixels per line (PL) must be even, and the output memory address (OMAR) must be even.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AI</name>
              <description>Alpha Inverted
This bit inverts the alpha value.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RBS</name>
              <description>Red/Blue swap
This bit allows to swap Red and Blue to support BGR or ABGR color formats.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OCOLR_ARGB8888</name>
          <displayName>OCOLR_ARGB8888</displayName>
          <description>DMA2D output color register</description>
          <addressOffset>0x38</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BLUE</name>
              <description>Blue value of the output image in ARGB8888 or RGB888</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GREEN</name>
              <description>Green value of the output image in ARGB8888 or RGB888</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RED</name>
              <description>Red value of the output image in ARGB8888 or RGB888 mode</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ALPHA</name>
              <description>Alpha channel value of the output color in ARGB8888 mode (otherwise reserved)</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OCOLR_RGB565</name>
          <displayName>OCOLR_RGB565</displayName>
          <description>DMA2D output color register</description>
          <alternateRegister>OCOLR_ARGB8888</alternateRegister>
          <addressOffset>0x38</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BLUE</name>
              <description>Blue value of the output image in RGB565 mode</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GREEN</name>
              <description>Green value of the output image in RGB565 mode</description>
              <bitOffset>5</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RED</name>
              <description>Red value of the output image in RGB565 mode</description>
              <bitOffset>11</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OCOLR_ARGB1555</name>
          <displayName>OCOLR_ARGB1555</displayName>
          <description>DMA2D output color register</description>
          <alternateRegister>OCOLR_ARGB8888</alternateRegister>
          <addressOffset>0x38</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BLUE</name>
              <description>Blue value of the output image in ARGB1555 mode</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GREEN</name>
              <description>Green value of the output image in ARGB1555 mode</description>
              <bitOffset>5</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RED</name>
              <description>Red value of the output image in ARGB1555 mode</description>
              <bitOffset>10</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>A</name>
              <description>Alpha channel value of the output color in ARGB1555 mode</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OCOLR_ARGB4444</name>
          <displayName>OCOLR_ARGB4444</displayName>
          <description>DMA2D output color register</description>
          <alternateRegister>OCOLR_ARGB8888</alternateRegister>
          <addressOffset>0x38</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BLUE</name>
              <description>Blue value of the output image in ARGB4444 mode</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GREEN</name>
              <description>Green value of the output image in ARGB4444 mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RED</name>
              <description>Red value of the output image in ARGB4444 mode</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ALPHA</name>
              <description>Alpha channel of the output color value in ARGB4444</description>
              <bitOffset>12</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OMAR</name>
          <displayName>OMAR</displayName>
          <description>DMA2D output memory address register</description>
          <addressOffset>0x3C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MA</name>
              <description>Memory address
Address of the data used for the output FIFO. 
The address alignment must match the image format selected: a 32-bit per pixel format must be 32-bit aligned and a 16-bit per pixel format must be 16-bit aligned.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OOR</name>
          <displayName>OOR</displayName>
          <description>DMA2D output offset register</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LO</name>
              <description>Line offset
This field gives the line offset used for the output, expressed:
in pixels when LOM = 0 in DMA2D_CR. Only LO[13:0] bits are considered, LO[15:14] bits are ignored.
in bytes when LOM = 1
This value is used for the address generation. It is added at the end of each line to determine the starting address of the next line.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>NLR</name>
          <displayName>NLR</displayName>
          <description>DMA2D number of line register</description>
          <addressOffset>0x44</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>NL</name>
              <description>Number of lines of the area to be transferred.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PL</name>
              <description>Pixel per lines per lines of the area to be transferred
If any of the input image format is 4-bit per pixel, pixel per lines must be even.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>14</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>LWR</name>
          <displayName>LWR</displayName>
          <description>DMA2D line watermark register</description>
          <addressOffset>0x48</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LW</name>
              <description>Line watermark for interrupt generation
An interrupt is raised when the last pixel of the watermarked line has been transferred.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>AMTCR</name>
          <displayName>AMTCR</displayName>
          <description>DMA2D AXI master timer configuration register</description>
          <addressOffset>0x4C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>EN</name>
              <description>Dead-time functionality enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DT</name>
              <description>Dead time
Dead time value in the AXI clock cycle inserted between two consecutive accesses on the AXI master port. These bits represent the minimum guaranteed number of cycles between two consecutive AXI accesses.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <dim>256</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-255</dimIndex>
          <name>FGCLUT%s</name>
          <displayName>FGCLUT%s</displayName>
          <description>DMA2D foreground CLUT</description>
          <addressOffset>0x400</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>BLUE</name>
              <description>Blue
Blue value for index 0 for the foreground</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GREEN</name>
              <description>Green
Green value for index 0 for the foreground</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RED</name>
              <description>Red
Red value for index 0 for the foreground</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ALPHA</name>
              <description>Alpha
Alpha value for index 0 for the foreground</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <dim>256</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-255</dimIndex>
          <name>BGCLUT%s</name>
          <displayName>BGCLUT%s</displayName>
          <description>DMA2D background CLUT</description>
          <addressOffset>0x800</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>BLUE</name>
              <description>Blue
Blue value for index 0 for the background</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GREEN</name>
              <description>Green
Green value for index 0 for the background</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RED</name>
              <description>Red
Red value for index 0 for the background</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ALPHA</name>
              <description>Alpha
Alpha value for index 0 for the background</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>DTS</name>
      <description>Digital temperature sensor</description>
      <groupName>DTS</groupName>
      <baseAddress>0x58006800</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>DTS</name>
        <description>DTS global interrupt</description>
        <value>2</value>
      </interrupt>
      <registers>
        <register>
          <name>CFGR1</name>
          <displayName>CFGR1</displayName>
          <description>Temperature sensor configuration register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TS1_EN</name>
              <description>Temperature sensor 1 enable bit 
This bit is set and cleared by software.
Note: Once enabled, the temperature sensor is active after a specific delay time. The TS1_RDY flag will be set when the sensor is ready.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS1_START</name>
              <description>Start frequency measurement on temperature sensor 1
This bit is set and cleared by software.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS1_INTRIG_SEL</name>
              <description>Input trigger selection bit for temperature sensor 1
These bits are set and cleared by software. They select which input triggers a temperature measurement. Refer to Section 30.3.10: Trigger input.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS1_SMP_TIME</name>
              <description>Sampling time for temperature sensor 1
These bits allow increasing the sampling time to improve measurement precision.
When the PCLK clock is selected as reference clock (REFCLK_SEL = 0), the measurement will be performed at TS1_SMP_TIME period of CLK_PTAT.
When the LSE is selected as reference clock (REFCLK_SEL =1), the measurement will be performed at TS1_SMP_TIME period of LSE.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>REFCLK_SEL</name>
              <description>Reference clock selection bit 
This bit is set and cleared by software. It indicates whether the reference clock is the high speed clock (PCLK) or the low speed clock (LSE).</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>Q_MEAS_OPT</name>
              <description>Quick measurement option bit
This bit is set and cleared by software. It is used to increase the measurement speed by suppressing the calibration step. It is effective only when the LSE clock is used as reference clock (REFCLK_SEL=1).</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HSREF_CLK_DIV</name>
              <description>High speed clock division ratio 
These bits are set and cleared by software. They can be used to define the division ratio for the main clock in order to obtain the internal frequency lower than 1 MHz required for the calibration. They are applicable only for calibration when PCLK is selected as reference clock (REFCLK_SEL=0). 
...</description>
              <bitOffset>24</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>T0VALR1</name>
          <displayName>T0VALR1</displayName>
          <description>Temperature sensor T0 value register 1</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>TS1_FMT0</name>
              <description>Engineering value of the frequency measured at T0 for 
	 temperature sensor 1 
This value is expressed in 0.1 kHz.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TS1_T0</name>
              <description>Engineering value of the T0 temperature for temperature sensor 1.
Others: Reserved, must not be used.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RAMPVALR</name>
          <displayName>RAMPVALR</displayName>
          <description>Temperature sensor ramp value register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>TS1_RAMP_COEFF</name>
              <description>Engineering value of the ramp coefficient for the temperature sensor 1.
This value is expressed in Hz/ C.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ITR1</name>
          <displayName>ITR1</displayName>
          <description>Temperature sensor interrupt threshold register 1</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TS1_LITTHD</name>
              <description>Low interrupt threshold for temperature sensor 1
These bits are set and cleared by software. They indicate the lowest value than can be reached before raising an interrupt signal.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS1_HITTHD</name>
              <description>High interrupt threshold for temperature sensor 1
These bits are set and cleared by software. They indicate the highest value than can be reached before raising an interrupt signal.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DR</name>
          <displayName>DR</displayName>
          <description>Temperature sensor data register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TS1_MFREQ</name>
              <description>Value of the counter output value for temperature sensor 1</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>Temperature sensor status register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TS1_ITEF</name>
              <description>Interrupt flag for end of measurement on temperature sensor 1, synchronized on PCLK. 
This bit is set by hardware when a temperature measure is done.
It is cleared by software by writing 1 to the TS2_CITEF bit in the DTS_ICIFR register.
Note: This bit is active only when the TS1_ITEFEN bit is set</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TS1_ITLF</name>
              <description>Interrupt flag for low threshold on temperature sensor 1, synchronized on PCLK.
This bit is set by hardware when the low threshold is set and reached.
It is cleared by software by writing 1 to the TS1_CITLF bit in the DTS_ICIFR register.
Note: This bit is active only when the TS1_ITLFEN bit is set</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TS1_ITHF</name>
              <description>Interrupt flag for high threshold on temperature sensor 1, synchronized on PCLK
This bit is set by hardware when the high threshold is set and reached.
It is cleared by software by writing 1 to the TS1_CITHF bit in the DTS_ICIFR register.
Note: This bit is active only when the TS1_ITHFEN bit is set</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TS1_AITEF</name>
              <description>Asynchronous interrupt flag for end of measure on temperature sensor 1
This bit is set by hardware when a temperature measure is done.
It is cleared by software by writing 1 to the TS1_CAITEF bit in the DTS_ICIFR register.
Note: This bit is active only when the TS1_AITEFEN bit is set</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TS1_AITLF</name>
              <description>Asynchronous interrupt flag for low threshold on temperature sensor 1
This bit is set by hardware when the low threshold is reached.
It is cleared by software by writing 1 to the TS1_CAITLF bit in the DTS_ICIFR register.
Note: This bit is active only when the TS1_AITLFEN bit is set</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TS1_AITHF</name>
              <description>Asynchronous interrupt flag for high threshold on temperature sensor 1
This bit is set by hardware when the high threshold is reached.
It is cleared by software by writing 1 to the TS1_CAITHF bit in the DTS_ICIFR register.
Note: This bit is active only when the TS1_AITHFEN bit is set</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TS1_RDY</name>
              <description>Temperature sensor 1 ready flag
This bit is set and reset by hardware. 
It indicates that a measurement is ongoing.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ITENR</name>
          <displayName>ITENR</displayName>
          <description>Temperature sensor interrupt enable register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TS1_ITEEN</name>
              <description>Interrupt enable flag for end of measurement on temperature sensor 1, synchronized on PCLK. 
This bit are set and cleared by software.
It enables the synchronous interrupt for end of measurement.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS1_ITLEN</name>
              <description>Interrupt enable flag for low threshold on temperature sensor 1, synchronized on PCLK. 
This bit are set and cleared by software.
It enables the synchronous interrupt when the measure reaches or is below the low threshold.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS1_ITHEN</name>
              <description>Interrupt enable flag for high threshold on temperature sensor 1, synchronized on PCLK.
This bit are set and cleared by software.
It enables the interrupt when the measure reaches or is above the high threshold.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS1_AITEEN</name>
              <description>Asynchronous interrupt enable flag for end of measurement on temperature sensor 1
This bit are set and cleared by software.
It enables the asynchronous interrupt for end of measurement (only when REFCLK_SEL = 1).</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS1_AITLEN</name>
              <description>Asynchronous interrupt enable flag for low threshold on temperature sensor 1. 
This bit are set and cleared by software.
It enables the asynchronous interrupt when the temperature is below the low threshold (only when REFCLK_SEL= 1)</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS1_AITHEN</name>
              <description>Asynchronous interrupt enable flag on high threshold for temperature sensor 1.
This bit are set and cleared by software.
It enables the asynchronous interrupt when the temperature is above the high threshold (only when REFCLK_SEL= 1)</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ICIFR</name>
          <displayName>ICIFR</displayName>
          <description>Temperature sensor clear interrupt flag register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TS1_CITEF</name>
              <description>Interrupt clear flag for end of measurement on temperature sensor 1
Writing 1 to this bit clears the TS1_ITEF flag in the DTS_SR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS1_CITLF</name>
              <description>Interrupt clear flag for low threshold on temperature sensor 1
Writing 1 to this bit clears the TS1_ITLF flag in the DTS_SR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS1_CITHF</name>
              <description>Interrupt clear flag for high threshold on temperature sensor 1
Writing this bit to 1 clears the TS1_ITHF flag in the DTS_SR register.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS1_CAITEF</name>
              <description>Write once bit. Clear the asynchronous IT flag for End Of Measure for thermal sensor 1. 
Writing 1 clears the TS1_AITEF flag of the DTS_SR register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS1_CAITLF</name>
              <description>Asynchronous interrupt clear flag for low threshold on temperature sensor 1
Writing 1 to this bit clears the TS1_AITLF flag in the DTS_SR register.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS1_CAITHF</name>
              <description>Asynchronous interrupt clear flag for high threshold on temperature sensor 1
Writing 1 to this bit clears the TS1_AITHF flag in the DTS_SR register.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OR</name>
          <displayName>OR</displayName>
          <description>Temperature sensor option register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TS_OP0</name>
              <description>general purpose option bits</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP1</name>
              <description>general purpose option bits</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP2</name>
              <description>general purpose option bits</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP3</name>
              <description>general purpose option bits</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP4</name>
              <description>general purpose option bits</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP5</name>
              <description>general purpose option bits</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP6</name>
              <description>general purpose option bits</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP7</name>
              <description>general purpose option bits</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP8</name>
              <description>general purpose option bits</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP9</name>
              <description>general purpose option bits</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP10</name>
              <description>general purpose option bits</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP11</name>
              <description>general purpose option bits</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP12</name>
              <description>general purpose option bits</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP13</name>
              <description>general purpose option bits</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP14</name>
              <description>general purpose option bits</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP15</name>
              <description>general purpose option bits</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP16</name>
              <description>general purpose option bits</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP17</name>
              <description>general purpose option bits</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP18</name>
              <description>general purpose option bits</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP19</name>
              <description>general purpose option bits</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP20</name>
              <description>general purpose option bits</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP21</name>
              <description>general purpose option bits</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP22</name>
              <description>general purpose option bits</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP23</name>
              <description>general purpose option bits</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP24</name>
              <description>general purpose option bits</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP25</name>
              <description>general purpose option bits</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP26</name>
              <description>general purpose option bits</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP27</name>
              <description>general purpose option bits</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP28</name>
              <description>general purpose option bits</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP29</name>
              <description>general purpose option bits</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP30</name>
              <description>general purpose option bits</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS_OP31</name>
              <description>general purpose option bits</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>ETH</name>
      <description>Ethernet register block</description>
      <groupName>ETH</groupName>
      <baseAddress>0x40028000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x11F0</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>ETH</name>
        <description>Ethernet global interrupt</description>
        <value>92</value>
      </interrupt>
      <registers>
        <register>
          <name>MACCR</name>
          <displayName>MACCR</displayName>
          <description>Operating mode configuration register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RE</name>
              <description>Receiver Enable
When this bit is set, the Rx state machine of the MAC is enabled for receiving packets from the MII interface. When this bit is reset, the MAC Rx state machine is disabled after it completes the reception of the current packet. The Rx state machine does not receive any more packets from the MII interface.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TE</name>
              <description>Transmitter Enable
When this bit is set, the Tx state machine of the MAC is enabled for transmission on the MII interface. When this bit is reset, the MAC Tx state machine is disabled after it completes the transmission of the current packet. The Tx state machine does not transmit any more packets.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PRELEN</name>
              <description>Preamble Length for Transmit packets
These bits control the number of preamble bytes that are added to the beginning of every Tx packet. The preamble reduction occurs only when the MAC is operating in the Full-duplex mode.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DC</name>
              <description>Deferral Check
When this bit is set, the deferral check function is enabled in the MAC. The MAC issues a Packet Abort status, along with the excessive deferral error bit set in the Tx packet status, when the Tx state machine is deferred for more than 24,288 bit times in 10 or 100 Mbps mode.
Deferral begins when the transmitter is ready to transmit, but it is prevented because of an active carrier sense signal (CRS) on MII.
The defer time is not cumulative. For example, if the transmitter defers for 10,000 bit times because the CRS signal is active and the CRS signal becomes inactive, the transmitter transmits and collision happens. Because of collision, the transmitter needs to back off and then defer again after back off completion. In such a scenario, the deferral timer is reset to 0, and it is restarted.
When this bit is reset, the deferral check function is disabled and the MAC defers until the CRS signal goes inactive.
This bit is applicable only in the Half-duplex mode.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BL</name>
              <description>Back-Off Limit
The back-off limit determines the random integer number (r) of slot time delays (512 bit times for 10/100 Mbps) for which the MAC waits before rescheduling a transmission attempt during retries after a collision:
where n = retransmission attempt
The random integer r takes the value in the range 0 &lt;= r &lt; 2^k.
This bit is applicable only in the Half-duplex mode.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DR</name>
              <description>Disable Retry
When this bit is set, the MAC attempts only one transmission. When a collision occurs on the MII interface, the MAC ignores the current packet transmission and reports a Packet Abort with excessive collision error in the Tx packet status.
When this bit is reset, the MAC retries based on the settings of the BL field. This bit is applicable only in the Half-duplex mode.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DCRS</name>
              <description>Disable Carrier Sense During Transmission
When this bit is set, the MAC transmitter ignores the MII CRS signal during packet transmission in the Half-duplex mode. As a result, no errors are generated because of Loss of Carrier or No Carrier during transmission.
When this bit is reset, the MAC transmitter generates errors because of Carrier Sense. The MAC can even abort the transmission.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DO</name>
              <description>Disable Receive Own
When this bit is set, the MAC disables the reception of packets when the ETH_TX_EN is asserted in the Half-duplex mode. When this bit is reset, the MAC receives all packets given by the PHY.
This bit is not applicable in the Full-duplex mode. This bit is reserved and read-only (RO) with default value in the Full-duplex-only configurations.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECRSFD</name>
              <description>Enable Carrier Sense Before Transmission in Full-duplex mode
When this bit is set, the MAC transmitter checks the CRS signal before packet transmission in the Full-duplex mode. The MAC starts the transmission only when the CRS signal is low.
When this bit is reset, the MAC transmitter ignores the status of the CRS signal.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LM</name>
              <description>Loopback Mode
When this bit is set, the MAC operates in the loopback mode at MII. The MII Rx clock input (eth_mii_rx_clk) is required for the loopback to work properly. This is because the Tx clock is not internally looped back.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DM</name>
              <description>Duplex Mode
When this bit is set, the MAC operates in the Full-duplex mode in which it can transmit and receive simultaneously.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FES</name>
              <description>MAC Speed
This bit selects the speed in the 10/100 Mbps mode:</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JE</name>
              <description>Jumbo Packet Enable
When this bit is set, the MAC allows jumbo packets of 9,018 bytes (9,022 bytes for VLAN tagged packets) without reporting a giant packet error in the Rx packet status.
For more information about how the setting of this bit and the JE bit impact the Giant packet status, see Table 563: Giant Packet Status based on S2KP and JE Bits.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JD</name>
              <description>Jabber Disable
When this bit is set, the MAC disables the jabber timer on the transmitter. The MAC can transfer packets of up to 16,383 bytes.
When this bit is reset, if the application sends more than 2,048 bytes of data (10,240 if JE is set high) during transmission, the MAC does not send rest of the bytes in that packet.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WD</name>
              <description>Watchdog Disable
When this bit is set, the MAC disables the watchdog timer on the receiver. The MAC can receive packets of up to 16,383 bytes.
When this bit is reset, the MAC does not allow more than 2,048 bytes (10,240 if JE is set high) of the packet being received. The MAC cuts off any bytes received after 2,048 bytes.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACS</name>
              <description>Automatic Pad or CRC Stripping
When this bit is set, the MAC strips the Pad or FCS field on the incoming packets only if the value of the length field is less than 1,536 bytes. All received packets with length field greater than or equal to 1,536 bytes are passed to the application without stripping the Pad or FCS field.
When this bit is reset, the MAC passes all incoming packets to the application, without any modification.
Note: For information about how the settings of CST bit and this bit impact the packet length, see Table 564: Packet Length based on the CST and ACS bits.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CST</name>
              <description>CRC stripping for Type packets
When this bit is set, the last four bytes (FCS) of all packets of Ether type (type field greater than 1,536) are stripped and dropped before forwarding the packet to the application. This function is not valid when the IP Checksum Engine (Type 1) is enabled in the MAC receiver. This function is valid when Type 2 Checksum Offload Engine is enabled.
Note: For information about how the settings of the ACS bit and this bit impact the packet length, see Table 564: Packet Length based on the CST and ACS bits.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>S2KP</name>
              <description>IEEE 802.3as Support for 2K Packets
When this bit is set, the MAC considers all packets with up to 2,000 bytes length as normal packets. When the JE bit is not set, the MAC considers all received packets of size more than 2K bytes as Giant packets.
When this bit is reset and the JE bit is not set, the MAC considers all received packets of size more than 1,518 bytes (1,522 bytes for tagged) as giant packets. For more information about how the setting of this bit and the JE bit impact the Giant packet status, see Table 563: Giant Packet Status based on S2KP and JE Bits.
Note: When the JE bit is set, setting this bit has no effect on the giant packet status.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GPSLCE</name>
              <description>Giant Packet Size Limit Control Enable
When this bit is set, the MAC considers the value in GPSL field in ETH_MACECR register to declare a received packet as Giant packet. This field must be programmed to more than 1,518 bytes. Otherwise, the MAC considers 1,518 bytes as giant packet limit.
When this bit is reset, the MAC considers a received packet as Giant packet when its size is greater than 1,518 bytes (1522 bytes for tagged packet).
The watchdog timeout limit, Jumbo Packet Enable and 2K Packet Enable have higher precedence over this bit, that is the MAC considers a received packet as Giant packet when its size is greater than 9,018 bytes (9,022 bytes for tagged packet) with Jumbo Packet Enabled and greater than 2,000 bytes with 2K Packet Enabled. The watchdog timeout, if enabled, terminates the received packet when watchdog limit is reached. Therefore, the programmed giant packet limit should be less than the watchdog limit to get the giant packet status.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IPG</name>
              <description>Inter-Packet Gap
These bits control the minimum IPG between packets during transmission.
...
This range of minimum IPG is valid in Full-duplex mode.
In the Half-duplex mode, the minimum IPG can be configured only for 64-bit times (IPG = 100). Lower values are not considered. 
When a JAM pattern is being transmitted because of backpressure activation, the MAC does not consider the minimum IPG. 
 The above function (IPG less than 96 bit times) is valid only when EIPGEN bit in ETH_MACECR register is reset. When EIPGEN is set, then the minimum IPG (greater than 96 bit times) is controlled as per the description given in EIPG field in ETH_MACECR register.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IPC</name>
              <description>Checksum Offload
When set, this bit enables the IPv4 header checksum checking and IPv4 or IPv6 TCP, UDP, or ICMP payload checksum checking. When this bit is reset, the COE function in the receiver is disabled.
The Layer 3 and Layer 4 Packet Filter feature automatically selects the IPC Full Checksum Offload Engine on the Receive side. When this feature is enabled, you must set the IPC bit.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SARC</name>
              <description>Source Address Insertion or Replacement Control
This field controls the source address insertion or replacement for all transmitted packets. Bit 30 specifies which MAC Address register (0 or 1) is used for source address insertion or replacement based on the values of Bits[29:28]:
Others: Reserved, must not be used. 
Note: Changes to this field take effect only on the start of a packet. If you write to this register field when a packet is being transmitted, only the subsequent packet can use the updated value, that is, the current packet does not use the updated value.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ARPEN</name>
              <description>ARP Offload Enable
When this bit is set, the MAC can recognize an incoming ARP request packet and schedules the ARP packet for transmission. It forwards the ARP packet to the application and also indicate the events in the RxStatus. 
When this bit is reset, the MAC receiver does not recognize any ARP packet and indicates them as Type frame in the RxStatus.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACECR</name>
          <displayName>MACECR</displayName>
          <description>Extended operating mode configuration register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>GPSL</name>
              <description>Giant Packet Size Limit
If the received packet size is greater than the value programmed in this field in units of bytes, the MAC declares the received packet as Giant packet. The value programmed in this field must be greater than or equal to 1,518 bytes. Any other programmed value is considered as 1,518 bytes.
For VLAN tagged packets, the MAC adds 4 bytes to the programmed value. For double VLAN tagged packets, the MAC adds 8 bytes to the programmed value. The value in this field is applicable when the GPSLCE bit is set in ETH_MACCR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>14</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DCRCC</name>
              <description>Disable CRC Checking for Received Packets
When this bit is set, the MAC receiver does not check the CRC field in the received packets. When this bit is reset, the MAC receiver always checks the CRC field in the received packets.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPEN</name>
              <description>Slow Protocol Detection Enable
When this bit is set, MAC processes the Slow Protocol packets (Ether Type 0x8809) and provides the Rx status. The MAC discards the Slow Protocol packets with invalid subtypes.
When this bit is reset, the MAC forwards all error-free Slow Protocol packets to the application. The MAC considers such packets as normal Type packets.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USP</name>
              <description>Unicast Slow Protocol Packet Detect
When this bit is set, the MAC detects the Slow Protocol packets with unicast address of the station specified in the MAC Address 0 high register (ETH_MACA0HR) and MAC Address 0 low register MAC Address x low register (ETH_MACAxLR). The MAC also detects the Slow Protocol packets with the Slow Protocols multicast address (01-80-C2-00-00-02).
When this bit is reset, the MAC detects only Slow Protocol packets with the Slow Protocol multicast address specified in the IEEE 802.3-2008, Section 5.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EIPGEN</name>
              <description>Extended Inter-Packet Gap Enable
 When this bit is set, the MAC interprets EIPG field and IPG field in Operating mode configuration register (ETH_MACCR) together as minimum IPG greater than 96 bit times in steps of 8 bit times.
 When this bit is reset, the MAC ignores EIPG field and interprets IPG field in Operating mode configuration register (ETH_MACCR) as minimum IPG less than or equal to 96 bit times in steps of 8 bit times.
Note: The extended Inter-Packet Gap feature must be enabled when operating in Full-duplex mode only. There may be undesirable effects on back-pressure function and frame transmission if it is enabled in Half-duplex mode.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EIPG</name>
              <description>Extended Inter-Packet Gap
The value in this field is applicable when the EIPGEN bit is set. This field (as Most Significant bits) along with IPG field in Operating mode configuration register (ETH_MACCR), gives the minimum IPG greater than 96 bit times in steps of 8 bit times. For example: 
EIPG =  0 and IPG = 0 give 104 bit times
EIPG =  0 and IPG = 1 give 112 bit times
EIPG =  0 and IPG = 2 give 120 bit times
..
EIPG = 7 and IPG = 31 give 2144 bit times</description>
              <bitOffset>25</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACPFR</name>
          <displayName>MACPFR</displayName>
          <description>Packet filtering control register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PR</name>
              <description>Promiscuous Mode
When this bit is set, the Address Filtering module passes all incoming packets irrespective of the destination or source address. The SA or DA Filter Fails status bits of the Rx Status Word are always cleared when PR is set.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HUC</name>
              <description>Hash Unicast
When this bit is set, the MAC performs the destination address filtering of unicast packets according to the Hash table.
When this bit is reset, the MAC performs a perfect destination address filtering for unicast packets, that is, it compares the DA field with the values programmed in DA registers.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HMC</name>
              <description>Hash Multicast
When this bit is set, the MAC performs the destination address filtering of received multicast packets according to the Hash table.
When this bit is reset, the MAC performs the perfect destination address filtering for multicast packets, that is, it compares the DA field with the values programmed in DA registers.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DAIF</name>
              <description>DA Inverse Filtering
When this bit is set, the Address Check block operates in inverse filtering mode for the DA address comparison for both unicast and multicast packets. When this bit is reset, normal filtering of packets is performed.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PM</name>
              <description>Pass All Multicast
When this bit is set, it indicates that all received packets with a multicast destination address (first bit in the destination address field is '1') are passed. When this bit is reset, filtering of multicast packet depends on HMC bit.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBF</name>
              <description>Disable Broadcast Packets
When this bit is set, the AFM module blocks all incoming broadcast packets. In addition, it overrides all other filter settings.
When this bit is reset, the AFM module passes all received broadcast packets.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PCF</name>
              <description>Pass Control Packets
These bits control the forwarding of all control packets (including unicast and multicast Pause packets).</description>
              <bitOffset>6</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SAIF</name>
              <description>SA Inverse Filtering
When this bit is set, the Address Check block operates in the inverse filtering mode for SA address comparison. If the SA of a packet matches the values programmed in the SA registers, it is marked as failing the SA Address filter.
When this bit is reset, if the SA of a packet does not match the values programmed in the SA registers, it is marked as failing the SA Address filter.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SAF</name>
              <description>Source Address Filter Enable
When this bit is set, the MAC compares the SA field of the received packets with the values programmed in the enabled SA registers. If the comparison fails, the MAC drops the packet.
When this bit is reset, the MAC forwards the received packet to the application with updated SAF bit of the Rx Status depending on the SA address comparison.
Note: According to the IEEE specification, Bit 47 of the SA is reserved. However, the MAC compares all 48 bits. The software driver should take this into consideration while programming the MAC address registers for SA.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HPF</name>
              <description>Hash or Perfect Filter
When this bit is set, the address filter passes a packet if it matches either the perfect filtering or Hash filtering as set by the HMC or HUC bit.
When this bit is reset and the HUC or HMC bit is set, the packet is passed only if it matches the Hash filter.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VTFE</name>
              <description>VLAN Tag Filter Enable
When this bit is set, the MAC drops the VLAN tagged packets that do not match the VLAN Tag. When this bit is reset, the MAC forwards all packets irrespective of the match status of the VLAN Tag.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IPFE</name>
              <description>Layer 3 and Layer 4 Filter Enable
When this bit is set, the MAC drops packets that do not match the enabled Layer 3 and Layer 4 filters. If Layer 3 or Layer 4 filters are not enabled for matching, this bit does not have any effect.
When this bit is reset, the MAC forwards all packets irrespective of the match status of the Layer 3 and Layer 4 fields.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DNTU</name>
              <description>Drop Non-TCP/UDP over IP Packets
When this bit is set, the MAC drops the non-TCP or UDP over IP packets. The MAC forward only those packets that are processed by the Layer 4 filter. When this bit is reset, the MAC forwards all non-TCP or UDP over IP packets.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RA</name>
              <description>Receive All
When this bit is set, the MAC Receiver module passes all received packets to the application, irrespective of whether they pass the address filter or not. The result of the SA or DA filtering is updated (pass or fail) in the corresponding bit in the Rx Status Word.
When this bit is reset, the Receiver module passes only those packets to the application that pass the SA or DA address filter.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACWTR</name>
          <displayName>MACWTR</displayName>
          <description>Watchdog timeout register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>WTO</name>
              <description>Watchdog Timeout
When the PWE bit is set and the WD bit of the Operating mode configuration register (ETH_MACCR) register is reset, this field is used as watchdog timeout for a received packet. If the length of a received packet exceeds the value of this field, such packet is terminated and declared as an error packet.
Encoding is as follows:
..
Note: When the PWE bit is set, the value in this field should be more than 1,522 (0x05F2). Otherwise, the IEEE 802.3-specified valid tagged packets are declared as error packets and then dropped.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PWE</name>
              <description>Programmable Watchdog Enable
When this bit is set and the WD bit of the Operating mode configuration register (ETH_MACCR) register is reset, the WTO field is used as watchdog timeout for a received packet. When this bit is cleared, the watchdog timeout for a received packet is controlled by setting of WD and JE bits in Operating mode configuration register (ETH_MACCR) register.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACHT0R</name>
          <displayName>MACHT0R</displayName>
          <description>Hash Table 0 register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>HT31T0</name>
              <description>MAC Hash Table First 32 Bits
This field contains the first 32 Bits [31:0] of the Hash table.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACHT1R</name>
          <displayName>MACHT1R</displayName>
          <description>Hash Table 1 register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>HT63T32</name>
              <description>MAC Hash Table Second 32 Bits
This field contains the second 32 Bits [63:32] of the Hash table.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACVTR</name>
          <displayName>MACVTR</displayName>
          <description>VLAN tag register</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>VL</name>
              <description>VLAN Tag Identifier for Receive Packets
This field contains the 802.1Q VLAN tag to identify the VLAN packets. This VLAN tag identifier is compared to the 15th and 16th bytes of the packets being received for VLAN packets. The following list describes the bits of this field:
Bits[15:13]: User Priority
Bit 12: Canonical Format Indicator (CFI) or Drop Eligible Indicator (DEI)
Bits[11:0]: VLAN Identifier (VID) field of VLAN tag
When the ETV bit is set, only the VID is used for comparison.
If this field ([11:0] if ETV is set) is all zeros, the MAC does not check the 15th and 16th bytes for VLAN tag comparison and declares all packets with Type field value of 0x8100 or 0x88a8 as VLAN packets.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ETV</name>
              <description>Enable 12-Bit VLAN Tag Comparison
When this bit is set, a 12-bit VLAN identifier is used for comparing and filtering instead of the complete 16-bit VLAN tag. Bits[11:0] of VLAN tag are compared with the corresponding field in the received VLAN-tagged packet. Similarly, when enabled, only 12 bits of the VLAN tag in the received packet are used for Hash-based VLAN filtering.
When this bit is reset, all 16 bits of the 15th and 16th bytes of the received VLAN packet are used for comparison and VLAN Hash filtering.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VTIM</name>
              <description>VLAN Tag Inverse Match Enable
When this bit is set, this bit enables the VLAN Tag inverse matching. The packets without matching VLAN Tag are marked as matched. When reset, this bit enables the VLAN Tag perfect matching. The packets with matched VLAN Tag are marked as matched.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ESVL</name>
              <description>Enable S-VLAN
When this bit is set, the MAC transmitter and receiver consider the S-VLAN packets (Type = 0x88A8) as valid VLAN tagged packets.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ERSVLM</name>
              <description>Enable Receive S-VLAN Match
When this bit is set, the MAC receiver enables filtering or matching for S-VLAN (Type = 0x88A8) packets. When this bit is reset, the MAC receiver enables filtering or matching for C-VLAN (Type = 0x8100) packets.
The ERIVLT bit determines the VLAN tag position considered for filtering or matching.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOVLTC</name>
              <description>Disable VLAN Type Check
When this bit is set, the MAC does not check whether the VLAN Tag specified by the ERIVLT bit is of type S-VLAN or C-VLAN.
When this bit is reset, the MAC filters or matches the VLAN Tag specified by the ERIVLT bit only when VLAN Tag type is similar to the one specified by the ERSVLM bit.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EVLS</name>
              <description>Enable VLAN Tag Stripping on Receive
This field indicates the stripping operation on the outer VLAN Tag in received packet:</description>
              <bitOffset>21</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EVLRXS</name>
              <description>Enable VLAN Tag in Rx status
When this bit is set, MAC provides the outer VLAN Tag in the Rx status. When this bit is reset, the MAC does not provide the outer VLAN Tag in Rx status.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VTHM</name>
              <description>VLAN Tag Hash Table Match Enable
When this bit is set, the most significant four bits of CRC of VLAN Tag are used to index the content of the ETH_MACVLANHTR register. A value of 1 in the VLAN Hash Table register, corresponding to the index, indicates that the packet matched the VLAN Hash table.
When the ETV bit is set, the CRC of the 12-bit VLAN Identifier (VID) is used for comparison. When the ETV bit is reset, the CRC of the 16-bit VLAN tag is used for comparison.
When this bit is reset, the VLAN Hash Match operation is not performed.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EDVLP</name>
              <description>Enable Double VLAN Processing
When this bit is set, the MAC enables processing of up to two VLAN Tags on Tx and Rx (if present). When this bit is reset, the MAC enables processing of up to one VLAN Tag on Tx and Rx (if present).</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ERIVLT</name>
              <description>Enable Inner VLAN Tag
When this bit and the EDVLP field are set, the MAC receiver enables operation on the inner VLAN Tag (if present). When this bit is reset, the MAC receiver enables operation on the outer VLAN Tag (if present). The ERSVLM bit determines which VLAN type is enabled for filtering or matching.The ERSVLM bit and DOVLTC bit determines which VLAN type is enabled for filtering.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EIVLS</name>
              <description>Enable Inner VLAN Tag Stripping on Receive
This field indicates the stripping operation on inner VLAN Tag in received packet:</description>
              <bitOffset>28</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EIVLRXS</name>
              <description>Enable Inner VLAN Tag in Rx Status
When this bit is set, the MAC provides the inner VLAN Tag in the Rx status. When this bit is reset, the MAC does not provide the inner VLAN Tag in Rx status.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACVHTR</name>
          <displayName>MACVHTR</displayName>
          <description>VLAN Hash table register</description>
          <addressOffset>0x58</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>VLHT</name>
              <description>VLAN Hash Table
This field contains the 16-bit VLAN Hash Table.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACVIR</name>
          <displayName>MACVIR</displayName>
          <description>VLAN inclusion register</description>
          <addressOffset>0x60</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>VLT</name>
              <description>VLAN Tag for Transmit Packets
This field contains the value of the VLAN tag to be inserted or replaced. The value must only be changed when the transmit lines are inactive or during the initialization phase.
The following list describes the bits of this field:
Bits[15:13]: User Priority
Bit 12: Canonical Format Indicator (CFI) or Drop Eligible Indicator (DEI)
Bits[11:0]: VLAN Identifier (VID) field of VLAN tag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VLC</name>
              <description>VLAN Tag Control in Transmit Packets
Note: Changes to this field take effect only on the start of a packet. If you write this register field when a packet is being transmitted, only the subsequent packet can use the updated value, that is, the current packet does not use the updated value.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VLP</name>
              <description>VLAN Priority Control
When this bit is set, the control bits[17:16] are used for VLAN deletion, insertion, or replacement. When this bit is reset, bits[17:16] are ignored.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CSVL</name>
              <description>C-VLAN or S-VLAN
When this bit is set, S-VLAN type (0x88A8) is inserted or replaced in the 13th and 14th bytes of transmitted packets. When this bit is reset, C-VLAN type (0x8100) is inserted or replaced in the 13th and 14th bytes of transmitted packets.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VLTI</name>
              <description>VLAN Tag Input
When this bit is set, it indicates that the VLAN tag to be inserted or replaced in Tx packet should be taken from the Tx descriptor.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACIVIR</name>
          <displayName>MACIVIR</displayName>
          <description>Inner VLAN inclusion register</description>
          <addressOffset>0x64</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>VLT</name>
              <description>VLAN Tag for Transmit Packets
This field contains the value of the VLAN tag to be inserted or replaced. The value must only be changed when the transmit lines are inactive or during the initialization phase.
The following list describes the bits of this field:
Bits[15:13]: User Priority
Bit 12: Canonical Format Indicator (CFI) or Drop Eligible Indicator (DEI)
Bits[11:0]: VLAN Identifier (VID) field of VLAN tag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VLC</name>
              <description>VLAN Tag Control in Transmit Packets
The MAC removes the VLAN type (bytes 17 and 18) and VLAN tag (bytes 19 and 20) of all transmitted packets with VLAN tags.
The MAC inserts VLT in bytes 19 and 20 of the packet after inserting the Type value (0x8100 or 0x88a8) in bytes 17 and 18. This operation is performed on all transmitted packets, irrespective of whether they already have a VLAN tag.
The MAC replaces VLT in bytes 19 and 20 of all VLAN-type transmitted packets (Bytes 17 and 18 are 0x8100 or 0x88a8).
Note: Changes to this field take effect only on the start of a packet. If you write to this register field when a packet is being transmitted, only the subsequent packet can use the updated value, that is, the current packet does not use the updated value.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VLP</name>
              <description>VLAN Priority Control
When this bit is set, the VLC field is used for VLAN deletion, insertion, or replacement. When this bit is reset, the VLC field is ignored.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CSVL</name>
              <description>C-VLAN or S-VLAN
When this bit is set, S-VLAN type (0x88A8) is inserted or replaced in the 13th and 14th bytes of transmitted packets. When this bit is reset, C-VLAN type (0x8100) is inserted or replaced in the 13th and 14th bytes of transmitted packets.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VLTI</name>
              <description>VLAN Tag Input
When this bit is set, it indicates that the VLAN tag to be inserted or replaced in Tx packet should be taken from the Tx descriptor</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACQTXFCR</name>
          <displayName>MACQTXFCR</displayName>
          <description>Tx Queue flow control register</description>
          <addressOffset>0x70</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FCB_BPA</name>
              <description>Flow Control Busy or Backpressure Activate
This bit initiates a Pause packet in the Full-duplex mode and activates the backpressure function in the Half-duplex mode if the TFE bit is set.
Full-Duplex mode: this bit should be read as 0 before writing to this register. To initiate a Pause packet, the application must set this bit to 1. During Control packet transfer, this bit continues to be set to indicate that a packet transmission is in progress. When Pause packet transmission is complete, the MAC resets this bit to 0. You should not write to this register until this bit is cleared.
Half-duplex mode: When this bit is set (and TFE bit is set) in the Half-duplex mode, the MAC asserts the backpressure. During backpressure, when the MAC receives a new packet, the transmitter starts sending a JAM pattern resulting in a collision. When the MAC is configured for the Full-duplex mode, the BPA is automatically disabled.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TFE</name>
              <description>Transmit Flow Control Enable
Full-duplex mode: when this bit is set, the MAC enables the flow control operation to Tx Pause packets. When this bit is reset, the flow control operation in the MAC is disabled, and the MAC does not transmit any Pause packets.
Half-duplex mode: when this bit is set, the MAC enables the backpressure operation. When this bit is reset, the backpressure feature is disabled.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PLT</name>
              <description>Pause Low Threshold
This field configures the threshold of the Pause timer at which the input flow is checked for automatic retransmission of the Pause packet.
The threshold values should be always less than the Pause Time configured in Bits[31:16]. For example, if PT = 100H (256 slot times), and PLT = 001, a second Pause packet is automatically transmitted at 228 (256-28) slot times after the first Pause packet is transmitted.
The following list provides the threshold values for different values:
110 to 111: Reserved, must not be used
The slot time is defined as the time taken to transmit 512 bits (64 bytes) on the MII interface.
This (approximate) computation is based on the packet size (64, 1518, 2000, 9018, 16384, or 32768) + 2 Pause Packet Size + IPG in Slot Times.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DZPQ</name>
              <description>Disable Zero-Quanta Pause
When this bit is set, it disables the automatic generation of the zero-quanta Pause packets.
When this bit is reset, normal operation with automatic zero-quanta Pause packet generation is enabled.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PT</name>
              <description>Pause Time
This field holds the value to be used in the Pause Time field in the Tx control packet. I</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACRXFCR</name>
          <displayName>MACRXFCR</displayName>
          <description>Rx flow control register</description>
          <addressOffset>0x90</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RFE</name>
              <description>Receive Flow Control Enable
When this bit is set and the MAC is operating in Full-duplex mode, the MAC decodes the received Pause packet and disables its transmitter for a specified (Pause) time. When this bit is reset or the MAC is operating in Half-duplex mode, the decode function of the Pause packet is disabled.
When PFC is enabled, flow control is enabled for PFC packets. The MAC decodes the received PFC packet and disables the Transmit queue, with matching priorities, for a duration of received Pause time.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UP</name>
              <description>Unicast Pause Packet Detect
A pause packet is processed when it has the unique multicast address specified in the IEEE 802.3. When this bit is set, the MAC can also detect Pause packets with unicast address of the station. This unicast address should be as specified in MAC Address 0 high register (ETH_MACA0HR) and MAC Address 0 low register MAC Address x low register (ETH_MACAxLR).
When this bit is reset, the MAC only detects Pause packets with unique multicast address.
Note: The MAC does not process a Pause packet if the multicast address is different from the unique multicast address. This is also applicable to the received PFC packet when the Priority Flow Control (PFC) is enabled. The unique multicast address (0x01_80_C2_00_00_01) is as specified in IEEE 802.1 Qbb-2011.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACISR</name>
          <displayName>MACISR</displayName>
          <description>Interrupt status register</description>
          <addressOffset>0xB0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PHYIS</name>
              <description>PHY Interrupt
This bit is set when rising edge is detected on the ETH_PHY_INTN input. This bit is cleared when this register is read.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PMTIS</name>
              <description>PMT Interrupt Status
This bit is set when a Magic packet or Wake-on-LAN packet is received in the power-down mode (RWKPRCVD and MGKPRCVD bits in ETH_MACPCSR register). This bit is cleared when Bits[6:5] are cleared because of a Read operation to the PMT control status register (ETH_MACPCSR).</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>LPIIS</name>
              <description>LPI Interrupt Status
This bit is set for any LPI state entry or exit in the MAC Transmitter or Receiver. This bit is cleared when the TLPIEN bit of LPI control and status register (ETH_MACLCSR) is read.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>MMCIS</name>
              <description>MMC Interrupt Status
This bit is set high when MMCTXIS or MMCRXIS is set high. This bit is cleared only when all these bits are low.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>MMCRXIS</name>
              <description>MMC Receive Interrupt Status
This bit is set high when an interrupt is generated in the MMC Rx interrupt register (ETH_MMC_RX_INTERRUPT). This bit is cleared when all bits in this interrupt register are cleared.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>MMCTXIS</name>
              <description>MMC Transmit Interrupt Status
This bit is set high when an interrupt is generated in the MMC Tx interrupt register (ETH_MMC_TX_INTERRUPT). This bit is cleared when all bits in this interrupt register are cleared.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TSIS</name>
              <description>Timestamp Interrupt Status
If the Timestamp feature is enabled, this bit is set when any of the following conditions is true:
The system time value is equal to or exceeds the value specified in the Target Time High and Low registers.
There is an overflow in the Seconds register.
The Target Time Error occurred, that is, programmed target time already elapsed.
If the Auxiliary Snapshot feature is enabled, this bit is set when the auxiliary snapshot trigger is asserted.
When drop transmit status is enabled in MTL, this bit is set when the captured transmit timestamp is updated in the Tx timestamp status nanoseconds register (ETH_MACTXTSSNR) and Tx timestamp status seconds register (ETH_MACTXTSSSR) registers.
When PTP offload feature is enabled, this bit is set when the captured transmit timestamp is updated in the Tx timestamp status nanoseconds register (ETH_MACTXTSSNR) and Tx timestamp status seconds register (ETH_MACTXTSSSR) registers, for PTO generated Delay Request and Pdelay request packets.
This bit is cleared when the corresponding interrupt source bit is read (or corresponding interrupt source bit is written to 1 when RCWE bit of CSR software control register (ETH_MACCSRSWCR) is set) in the Timestamp status register (ETH_MACTSSR).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>TXSTSIS</name>
              <description>Transmit Status Interrupt
This bit indicates the status of transmitted packets. This bit is set when any of the following bits is set in the Rx Tx status register (ETH_MACRXTXSR):
Excessive Collision (EXCOL)
Late Collision (LCOL)
Excessive Deferral (EXDEF)
Loss of Carrier (LCARR)
No Carrier (NCARR)
Jabber Timeout (TJT)
This bit is cleared when the corresponding interrupt source bit is read (or corresponding interrupt source bit is written to 1 when RCWE bit of CSR software control register (ETH_MACCSRSWCR) is set) in the ETH_MACISR register.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>RXSTSIS</name>
              <description>Receive Status Interrupt
This bit indicates the status of received packets. This bit is set when the RWT bit is set in the Rx Tx status register (ETH_MACRXTXSR). This bit is cleared when the corresponding interrupt source bit is read (or corresponding interrupt source bit is written to 1 when RCWE bit of CSR software control register (ETH_MACCSRSWCR) is set) in the ETH_MACISR register.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
          </fields>
        </register>
        <register>
          <name>MACIER</name>
          <displayName>MACIER</displayName>
          <description>Interrupt enable register</description>
          <addressOffset>0xB4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PHYIE</name>
              <description>PHY Interrupt Enable
When this bit is set, it enables the assertion of the interrupt signal because of the setting of PHYIS bit in Interrupt status register (ETH_MACISR).</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PMTIE</name>
              <description>PMT Interrupt Enable
When this bit is set, it enables the assertion of the interrupt signal because of the setting of PMTIS bit in Interrupt status register (ETH_MACISR).</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LPIIE</name>
              <description>LPI Interrupt Enable
When this bit is set, it enables the assertion of the interrupt signal because of the setting of LPIIS bit in Interrupt status register (ETH_MACISR).</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TSIE</name>
              <description>Timestamp Interrupt Enable
When this bit is set, it enables the assertion of the interrupt signal because of the setting of TSIS bit in Interrupt status register (ETH_MACISR).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXSTSIE</name>
              <description>Transmit Status Interrupt Enable
When this bit is set, it enables the assertion of the interrupt signal because of the setting of TXSTSIS bit in the Interrupt status register (ETH_MACISR).</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXSTSIE</name>
              <description>Receive Status Interrupt Enable
When this bit is set, it enables the assertion of the interrupt signal because of the setting of RXSTSIS bit in the Interrupt status register (ETH_MACISR).</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACRXTXSR</name>
          <displayName>MACRXTXSR</displayName>
          <description>Rx Tx status register</description>
          <addressOffset>0xB8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TJT</name>
              <description>Transmit Jabber Timeout
This bit indicates that the Transmit Jabber Timer expired which happens when the packet size exceeds 2,048 bytes (10,240 bytes when the Jumbo packet is enabled) and JD bit is reset in the Operating mode configuration register (ETH_MACCR). This bit is set when the packet size exceeds 16,383 bytes and the JD bit is set in the Operating mode configuration register (ETH_MACCR).
Cleared on read (or write of 1 when RCWE bit in CSR software control register (ETH_MACCSRSWCR) is set).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>NCARR</name>
              <description>No Carrier
When the DTXSTS bit is set in the Operating mode Register (ETH_MTLOMR), this bit indicates that the carrier signal from the PHY is not present at the end of preamble transmission.
Cleared on read (or write of 1 when RCWE bit in CSR software control register (ETH_MACCSRSWCR) is set).</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>LCARR</name>
              <description>Loss of Carrier
When the DTXSTS bit is set in the Operating mode Register (ETH_MTLOMR), this bit indicates that the loss of carrier occurred during packet transmission, that is, the ETH_CRS signal was inactive for one or more transmission clock periods during packet transmission. This bit is valid only for packets transmitted without collision.
Cleared on read (or write of 1 when RCWE bit in CSR software control register (ETH_MACCSRSWCR) is set).</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>EXDEF</name>
              <description>Excessive Deferral
When the DTXSTS bit is set in the Operating mode Register (ETH_MTLOMR) and the DC bit is set in the Operating mode configuration register (ETH_MACCR), this bit indicates that the transmission ended because of excessive deferral of over 24,288 bit times (155,680 when Jumbo packet is enabled).
Cleared on read (or write of 1 when RCWE bit in CSR software control register (ETH_MACCSRSWCR) is set).</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>LCOL</name>
              <description>Late Collision
When the DTXSTS bit is set in the Operating mode Register (ETH_MTLOMR), this bit indicates that the packet transmission aborted because a collision occurred after the collision window (64 bytes including Preamble in MII mode.
This bit is not valid if the Underflow error occurs.
Cleared on read (or write of 1 when RCWE bit in CSR software control register (ETH_MACCSRSWCR) is set).</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>EXCOL</name>
              <description>Excessive Collisions
When the DTXSTS bit is set in the Operating mode Register (ETH_MTLOMR), this bit indicates that the transmission aborted after 16 successive collisions while attempting to transmit the current packet. If the DR bit is set in the Operating mode configuration register (ETH_MACCR), this bit is set after the first collision and the packet transmission is aborted.
Cleared on read (or write of 1 when RCWE bit in CSR software control register (ETH_MACCSRSWCR) is set).</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>RWT</name>
              <description>Receive Watchdog Timeout
This bit is set when a packet with length greater than 2,048 bytes is received (10, 240 bytes when Jumbo Packet mode is enabled) and the WD bit is reset in the Operating mode configuration register (ETH_MACCR). This bit is set when a packet with length greater than 16,383 bytes is received and the WD bit is set in the Operating mode configuration register (ETH_MACCR).
Cleared on read (or write of 1 when RCWE bit in CSR software control register (ETH_MACCSRSWCR) is set).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
          </fields>
        </register>
        <register>
          <name>MACPCSR</name>
          <displayName>MACPCSR</displayName>
          <description>PMT control status register</description>
          <addressOffset>0xC0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PWRDWN</name>
              <description>Power Down
When this bit is set, the MAC receiver drops all received packets until it receives the expected magic packet or remote wakeup packet. This bit is then self-cleared and the power-down mode is disabled. The software can clear this bit before the expected magic packet or remote wakeup packet is received. The packets received by the MAC after this bit is cleared are forwarded to the application. This bit must only be set when the Magic Packet Enable, Global Unicast, or Remote wakeup Packet Enable bit is set high.
Note: You can gate-off the CSR clock during the power-down mode. However, when the CSR clock is gated-off, you cannot perform any read or write operations on this register. Therefore, the Software cannot clear this bit.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MGKPKTEN</name>
              <description>Magic Packet Enable
When this bit is set, a power management event is generated when the MAC receives a magic packet.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RWKPKTEN</name>
              <description>Remote wakeup Packet Enable
When this bit is set, a power management event is generated when the MAC receives a remote wakeup packet.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MGKPRCVD</name>
              <description>Magic Packet Received
When this bit is set, it indicates that the power management event is generated because of the reception of a magic packet. This bit is cleared when this register is read (or write of 1 when RCWE bit in CSR software control register (ETH_MACCSRSWCR) is set).</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>RWKPRCVD</name>
              <description>Remote wakeup Packet Received
When this bit is set, it indicates that the power management event is generated because of the reception of a remote wakeup packet. This bit is cleared when this register is read.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>GLBLUCAST</name>
              <description>Global Unicast
When this bit set, any unicast packet filtered by the MAC (DAF) address recognition is detected as a remote wakeup packet.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RWKPFE</name>
              <description>Remote wakeup Packet Forwarding Enable 
 When this bit is set along with RWKPKTEN, the MAC receiver drops all received frames until it receives the expected wakeup frame. All frames after that event including the received wakeup frame are forwarded to application. This bit is then self-cleared on receiving the wakeup packet.
The application can also clear this bit before the expected wakeup frame is received. In such cases, the MAC reverts to the default behavior where packets received are forwarded to the application. This bit must only be set when RWKPKTEN is set high and PWRDWN is set low. The setting of this bit has no effect when PWRDWN is set high.
Note: If Magic Packet Enable and wakeup Frame Enable are both set along with setting of this bit and Magic Packet is received prior to wakeup frame, this bit is self-cleared on receiving Magic Packet, the received Magic packet is dropped, and all frames after received Magic Packet are forwarded to application.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RWKPTR</name>
              <description>Remote wakeup FIFO Pointer
This field gives the current value (0 to 7) of the Remote wakeup Packet Filter register pointer. When the value of this pointer is equal to 7, the contents of the Remote wakeup Packet Filter Register are transferred to the eth_mii_rx_clk domain when a Write occurs to that register.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RWKFILTRST</name>
              <description>Remote wakeup Packet Filter Register Pointer Reset
When this bit is set, the remote wakeup packet filter register pointer is reset to 0. It is automatically cleared after 1 clock cycle.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACRWKPFR</name>
          <displayName>MACRWKPFR</displayName>
          <description>Remote wakeup packet filter register</description>
          <addressOffset>0xC4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MACRWKPFR</name>
              <description>Remote wakeup packet filter
Refer to Table 532, Table 533 and Table 534 for details on register content and programming sequence.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACLCSR</name>
          <displayName>MACLCSR</displayName>
          <description>LPI control and status register</description>
          <addressOffset>0xD0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TLPIEN</name>
              <description>Transmit LPI Entry
When this bit is set, it indicates that the MAC Transmitter has entered the LPI state because of the setting of the LPIEN bit. This bit is cleared by a read into this register (or write of 1 when RCWE bit in CSR software control register (ETH_MACCSRSWCR) is set).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TLPIEX</name>
              <description>Transmit LPI Exit
When this bit is set, it indicates that the MAC transmitter exited the LPI state after the application cleared the LPIEN bit and the LPI TW Timer has expired. This bit is cleared by a read into this register (or write of 1 when RCWE bit in CSR software control register (ETH_MACCSRSWCR) is set).</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RLPIEN</name>
              <description>Receive LPI Entry
When this bit is set, it indicates that the MAC Receiver has received an LPI pattern and entered the LPI state. This bit is cleared by a read into this register (or write of 1 when RCWE bit in CSR software control register (ETH_MACCSRSWCR) is set).
Note: This bit may not be set if the MAC stops receiving the LPI pattern for a very short duration, such as, less than three clock cycles of CSR clock.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RLPIEX</name>
              <description>Receive LPI Exit
When this bit is set, it indicates that the MAC Receiver has stopped receiving the LPI pattern on the MII interface, exited the LPI state, and resumed the normal reception. This bit is cleared by a read into this register (or write of 1 when RCWE bit in CSR software control register (ETH_MACCSRSWCR) is set).
Note: This bit may not be set if the MAC stops receiving the LPI pattern for a very short duration, such as, less than three clock cycles of CSR clock.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TLPIST</name>
              <description>Transmit LPI State
When this bit is set, it indicates that the MAC is transmitting the LPI pattern on the MII interface.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RLPIST</name>
              <description>Receive LPI State
When this bit is set, it indicates that the MAC is receiving the LPI pattern on the MII interface.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>LPIEN</name>
              <description>LPI Enable
When this bit is set, it instructs the MAC Transmitter to enter the LPI state. When this bit is reset, it instructs the MAC to exit the LPI state and resume normal transmission.
This bit is cleared when the LPITXA bit is set and the MAC exits the LPI state because of the arrival of a new packet for transmission.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PLS</name>
              <description>PHY Link Status
This bit indicates the link status of the PHY. The MAC Transmitter asserts the LPI pattern only when the link status is up (OKAY) at least for the time indicated by the LPI LS TIMER.
When this bit is set, the link is considered to be okay (UP) and when this bit is reset, the link is considered to be down.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LPITXA</name>
              <description>LPI Tx Automate
This bit controls the behavior of the MAC when it is entering or coming out of the LPI mode on the Transmit side. 
If the LPITXA and LPIEN bits are set to 1, the MAC enters the LPI mode only after all outstanding packets (in the core) and pending packets (in the application interface) have been transmitted. The MAC comes out of the LPI mode when the application sends any packet for transmission or the application issues a Tx FIFO Flush command. In addition, the MAC automatically clears the LPIEN bit when it exits the LPI state. If Tx FIFO Flush is set in the FTQ bit of ETH_MTLTxQOMR, when the MAC is in the LPI mode, it exits the LPI mode.
When this bit is 0, the LPIEN bit directly controls behavior of the MAC when it is entering or coming out of the LPI mode.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LPITE</name>
              <description>LPI Timer Enable
 This bit controls the automatic entry of the MAC Transmitter into and exit out of the LPI state. When LPITE, LPITXA and LPIEN bits are set, the MAC Transmitter enters LPI state only when the complete MAC TX data path is IDLE for a period indicated by the ETH_MACLETR register.
After entering LPI state, if the data path becomes non-IDLE (due to a new packet being accepted for transmission), the Transmitter exits LPI state but does not clear LPIEN bit. This enables the re-entry into LPI state when it is IDLE again.
When LPITE is 0, the LPI Auto timer is disabled and MAC Transmitter enters LPI state based on the settings of LPITXA and LPIEN bit descriptions.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LPITCSE</name>
              <description>LPI Tx Clock Stop Enable
When this bit is set, the MAC asserts sbd_tx_clk_gating_ctrl_o signal high after it enters Tx LPI mode to indicate that the Tx clock to MAC can be stopped. When this bit is reset, the MAC does not assert sbd_tx_clk_gating_ctrl_o signal high after it enters Tx LPI mode. 
If RGMII Interface is selected, the Tx clock is required for transmitting the LPI pattern. The Tx Clock cannot be gated and so the LPITCSE bit cannot be programmed.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACLTCR</name>
          <displayName>MACLTCR</displayName>
          <description>LPI timers control register</description>
          <addressOffset>0xD4</addressOffset>
          <size>0x20</size>
          <resetValue>0x03E80000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TWT</name>
              <description>LPI TW Timer
This field specifies the minimum time (in microseconds) for which the MAC waits after it stops transmitting the LPI pattern to the PHY and before it resumes the normal transmission. The TLPIEX status bit is set after the expiry of this timer.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LST</name>
              <description>LPI LS Timer
This field specifies the minimum time (in milliseconds) for which the link status from the PHY should be up (OKAY) before the LPI pattern can be transmitted to the PHY. The MAC does not transmit the LPI pattern even when the LPIEN bit is set unless the LPI LS Timer reaches the programmed terminal count. The default value of the LPI LS Timer is 1000 (1 sec) as defined in the IEEE standard.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACLETR</name>
          <displayName>MACLETR</displayName>
          <description>LPI entry timer register</description>
          <addressOffset>0xD8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LPIET</name>
              <description>LPI Entry Timer
This field specifies the time in microseconds the MAC waits to enter LPI mode, after it has transmitted all the frames. This field is valid and used only when LPITE and LPITXA are set to 1.
Bits [2:0] are read-only so that the granularity of this timer is in steps of 8 micro-seconds.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>20</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MAC1USTCR</name>
          <displayName>MAC1USTCR</displayName>
          <description>One-microsecond-tick counter register</description>
          <addressOffset>0xDC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TIC_1US_CNTR</name>
              <description>1  s tick Counter
The application must program this counter so that the number of clock cycles of CSR clock is 1  s (subtract 1 from the value before programming).
For example if the CSR clock is 100 MHz then this field needs to be programmed to 
100 - 1 = 99 (which is 0x63).
This is required to generate the 1  s events that are used to update some of the EEE related counters.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACVR</name>
          <displayName>MACVR</displayName>
          <description>Version register</description>
          <addressOffset>0x110</addressOffset>
          <size>0x20</size>
          <resetValue>0x00003242</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SNPSVER</name>
              <description>IP version</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>USERVER</name>
              <description>ST-defined version</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACDR</name>
          <displayName>MACDR</displayName>
          <description>Debug register</description>
          <addressOffset>0x114</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RPESTS</name>
              <description>MAC MII Receive Protocol Engine Status
When this bit is set, it indicates that the MAC MII receive protocol engine is actively receiving data, and it is not in the Idle state.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RFCFCSTS</name>
              <description>MAC Receive Packet Controller FIFO Status
When this bit is set, this field indicates the active state of the small FIFO Read and Write controllers of the MAC Receive Packet Controller module.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TPESTS</name>
              <description>MAC MII Transmit Protocol Engine Status
When this bit is set, it indicates that the MAC MII transmit protocol engine is actively transmitting data, and it is not in the Idle state.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TFCSTS</name>
              <description>MAC Transmit Packet Controller Status
This field indicates the state of the MAC Transmit Packet Controller module:
Status of the previous packet
IPG or backoff period to be over</description>
              <bitOffset>17</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACHWF0R</name>
          <displayName>MACHWF0R</displayName>
          <description>HW feature 0 register</description>
          <addressOffset>0x11C</addressOffset>
          <size>0x20</size>
          <resetValue>0x0A0D73F7</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MIISEL</name>
              <description>10 or 100 Mbps Support
This bit is set to 1 when 10/100 Mbps is selected as operating mode.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>GMIISEL</name>
              <description>1000 Mbps Support
This bit is set to 1 when 1000 Mbps is selected as operating mode.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>HDSEL</name>
              <description>Half-duplex Support
This bit is set to 1 when the Half-duplex mode is selected</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PCSSEL</name>
              <description>PCS Registers (TBI, SGMII, or RTBI PHY interface)
This bit is set to 1 when the TBI, SGMII, or RTBI PHY interface option is selected</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>VLHASH</name>
              <description>VLAN Hash Filter Selected
This bit is set to 1 when the Enable VLAN Hash Table Based Filtering option is selected</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SMASEL</name>
              <description>SMA (MDIO) Interface
This bit is set to 1 when the Enable Station Management (MDIO Interface) option is selected</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RWKSEL</name>
              <description>PMT Remote Wakeup Packet Enable
This bit is set to 1 when the Enable Remote wakeup Packet Detection option is selected</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>MGKSEL</name>
              <description>PMT Magic Packet Enable
This bit is set to 1 when the Enable Magic Packet Detection option is selected</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>MMCSEL</name>
              <description>RMON Module Enable
This bit is set to 1 when the Enable MAC management counters (MMC) option is selected</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ARPOFFSEL</name>
              <description>ARP Offload Enabled
This bit is set to 1 when the Enable IPv4 ARP Offload option is selected</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TSSEL</name>
              <description>IEEE 1588-2008 Timestamp Enabled
This bit is set to 1 when the Enable IEEE 1588 Timestamp Support option is selected</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EEESEL</name>
              <description>Energy Efficient Ethernet Enabled
This bit is set to 1 when the Enable Energy Efficient Ethernet (EEE) option is selected</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TXCOESEL</name>
              <description>Transmit Checksum Offload Enabled
This bit is set to 1 when the Enable Transmit TCP/IP Checksum Insertion option is selected</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RXCOESEL</name>
              <description>Receive Checksum Offload Enabled
This bit is set to 1 when the Enable Receive TCP/IP Checksum Check option is selected</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ADDMACADRSEL</name>
              <description>MAC Addresses 1-31 Selected
This bit is set to 1 when the Enable Additional 1-31 MAC Address Registers option is selected</description>
              <bitOffset>18</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>MACADR32SEL</name>
              <description>MAC Addresses 32-63 Selected
This bit is set to 1 when the Enable Additional 32 MAC Address Registers (32-63) option is selected</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>MACADR64SEL</name>
              <description>MAC Addresses 64-127 Selected
This bit is set to 1 when the Enable Additional 64 MAC Address Registers (64-127) option is selected</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TSSTSSEL</name>
              <description>Timestamp System Time Source
This bit indicates the source of the Timestamp system time:
This bit is set to 1 when the Enable IEEE 1588 Timestamp Support option is selected</description>
              <bitOffset>25</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SAVLANINS</name>
              <description>Source Address or VLAN Insertion Enable
This bit is set to 1 when the Enable SA and VLAN Insertion on Tx option is selected</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ACTPHYSEL</name>
              <description>Active PHY Selected
When you have multiple PHY interfaces in your configuration, this field indicates the sampled value of phy_intf_sel_i during reset de-assertion:
Others: Reserved, must not be used</description>
              <bitOffset>28</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACHWF1R</name>
          <displayName>MACHWF1R</displayName>
          <description>HW feature 1 register</description>
          <addressOffset>0x120</addressOffset>
          <size>0x20</size>
          <resetValue>0x11041904</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXFIFOSIZE</name>
              <description>MTL Receive FIFO Size
This field contains the configured value of MTL Rx FIFO in bytes expressed as Log to base 2 minus 7, that is, Log2(RXFIFO_SIZE) -7:
01100 to 11111: Reserved, must not be used</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TXFIFOSIZE</name>
              <description>MTL Transmit FIFO Size
This field contains the configured value of MTL Tx FIFO in bytes expressed as Log to base 2 minus 7, that is, Log2(TXFIFO_SIZE) -7:
01011 to 11111: Reserved, must not be used</description>
              <bitOffset>6</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OSTEN</name>
              <description>One-Step Timestamping Enable
 This bit is set to 1 when the Enable One-Step Timestamp Feature is selected.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PTOEN</name>
              <description>PTP Offload Enable
 This bit is set to 1 when the Enable PTP Timestamp Offload Feature is selected.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ADVTHWORD</name>
              <description>IEEE 1588 High Word Register Enable
This bit is set to 1 when the Add IEEE 1588 Higher Word Register option is selected</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ADDR64</name>
              <description>Address width
This field indicates the configured address width.
Others: Reserved, must not be used</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DCBEN</name>
              <description>DCB Feature Enable
This bit is set to 1 when the Enable Data Center Bridging option is selected</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SPHEN</name>
              <description>Split Header Feature Enable
This bit is set to 1 when the Enable Split Header Structure option is selected</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TSOEN</name>
              <description>TCP Segmentation Offload Enable
This bit is set to 1 when the Enable TCP Segmentation Offloading for TCP/IP Packets option is selected</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DBGMEMA</name>
              <description>DMA Debug Registers Enable
This bit is set to 1 when the Debug Mode Enable option is selected</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>AVSEL</name>
              <description>AV Feature Enable
This bit is set to 1 when the Enable Audio video bridging option is selected.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RAVSEL</name>
              <description>Rx Side Only AV Feature Enable
This bit is set to 1 when the Enable Audio video bridging option on Rx Side Only is selected.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>POUOST</name>
              <description>One Step for PTP over UDP/IP Feature Enable
This bit is set to 1 when the Enable one step timestamp for PTP over UDP/IP feature is selected.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>HASHTBLSZ</name>
              <description>Hash Table Size
This field indicates the size of the Hash table:</description>
              <bitOffset>24</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>L3L4FNUM</name>
              <description>Total number of L3 or L4 Filters
This field indicates the total number of L3 or L4 filters:
..</description>
              <bitOffset>27</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACHWF2R</name>
          <displayName>MACHWF2R</displayName>
          <description>HW feature 2 register</description>
          <addressOffset>0x124</addressOffset>
          <size>0x20</size>
          <resetValue>0x41000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXQCNT</name>
              <description>Number of MTL Receive Queues
This field indicates the number of MTL Receive queues:
..</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TXQCNT</name>
              <description>Number of MTL Transmit Queues
This field indicates the number of MTL Transmit queues:
..</description>
              <bitOffset>6</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RXCHCNT</name>
              <description>Number of DMA Receive Channels
This field indicates the number of DMA Receive channels:
..</description>
              <bitOffset>12</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RDCSZ</name>
              <description>Rx DMA Descriptor Cache Size in terms of 16-byte descriptors</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TXCHCNT</name>
              <description>Number of DMA Transmit Channels
This field indicates the number of DMA Transmit channels:
..</description>
              <bitOffset>18</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TDCSZ</name>
              <description>Tx DMA Descriptor Cache Size in terms of 16-byte descriptors</description>
              <bitOffset>22</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PPSOUTNUM</name>
              <description>Number of PPS Outputs
This field indicates the number of PPS outputs:
101 to 111: Reserved, must not be used</description>
              <bitOffset>24</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>AUXSNAPNUM</name>
              <description>Number of Auxiliary Snapshot Inputs
This field indicates the number of auxiliary snapshot inputs:
101 to 111: Reserved, must not be used</description>
              <bitOffset>28</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACHWF3R</name>
          <displayName>MACHWF3R</displayName>
          <description>HW feature 3 register</description>
          <addressOffset>0x128</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000020</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>NRVF</name>
              <description>Number of Extended VLAN Tag Filters Enabled
This field indicates the Number of Extended VLAN Tag Filters selected:
110 to 111: Reserved, must not be used</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CBTISEL</name>
              <description>Queue/Channel based VLAN tag insertion on Tx enable
This bit is set to 1 when the Enable Queue/Channel based VLAN tag insertion on Tx feature is selected.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DVLAN</name>
              <description>Double VLAN processing enable
This bit is set to 1 when Double VLAN processing is enabled.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACMDIOAR</name>
          <displayName>MACMDIOAR</displayName>
          <description>MDIO address register</description>
          <addressOffset>0x200</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MB</name>
              <description>MII Busy
The application sets this bit to instruct the SMA to initiate a Read or Write
access to the MDIOS. The MAC clears this bit after the MDIO frame
transfer is completed. Hence the software must not write or change any of the
fields in MDIO address register (ETH_MACMDIOAR) and MDIO data register (ETH_MACMDIODR) as long as this bit is set.
For write transfers, the application must first write 16-bit data in the MD field (and also RA field when C45E is set) in MDIO data register (ETH_MACMDIODR) register before setting this bit. When C45E is set, it should also write into the RA field of MDIO data register (ETH_MACMDIODR) before initiating a read transfer. When a read transfer is completed (MII busy=0), the data read from the PHY register is valid in the MD field of the MDIO data register (ETH_MACMDIODR).
Note: Even if the addressed PHY is not present, there is no change in the
functionality of this bit.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>C45E</name>
              <description>Clause 45 PHY Enable
When this bit is set, Clause 45 capable PHY is connected to MDIO. When this bit is reset, Clause 22 capable PHY is connected to MDIO.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GOC</name>
              <description>MII Operation Command
This bit indicates the operation command to the PHY.
When Clause 22 PHY is enabled, only Write and Read commands are valid.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SKAP</name>
              <description>Skip Address Packet
When this bit is set, the SMA does not send the address packets before read, write, or post-read increment address packets. This bit is valid only when C45E is set.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CR</name>
              <description>CSR Clock Range
The CSR Clock Range selection determines the frequency of the MDC clock according to the CSR clock frequency used in your design:
0110 to 0111: Reserved, must not be used
 The suggested range of CSR clock frequency applicable for each value (when Bit 11 = 0) ensures that the MDC clock is approximately between 1.0 MHz to 2.5 MHz frequency range.
When Bit 11 is set, you can achieve a higher frequency of the MDC clock than the frequency limit of 2.5 MHz (specified in the IEEE 802.3) and program a clock divider of lower value. For example, when CSR clock is of 100 MHz frequency and you program these bits to 1010, the resultant MDC clock is of 12.5 MHz which is above the range specified in IEEE 802.3. Program the following values only if the interfacing chips support faster MDC clocks:</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NTC</name>
              <description>Number of Training Clocks
This field controls the number of trailing clock cycles generated on ETH_MDC after the end of transmission of MDIO frame. The valid values can be from 0 to 7. Programming the value to 011 indicates that there are additional three clock cycles on the MDC line after the end of MDIO frame transfer.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RDA</name>
              <description>Register/Device Address
These bits select the PHY register in selected Clause 22 PHY device. These bits select the Device (MMD) in selected Clause 45 capable PHY.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PA</name>
              <description>Physical Layer Address
This field indicates which Clause 22 PHY devices (out of 32 devices) the MAC is accessing. This field indicates which Clause 45 capable PHYs (out of 32 PHYs) the MAC is accessing.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BTB</name>
              <description>Back to Back transactions
When this bit is set and the NTC has value greater than 0, then the MAC informs the completion of a read or write command at the end of frame transfer (before the trailing clocks are transmitted). The software can thus initiate the next command which is executed immediately irrespective of the number trailing clocks generated for the previous frame.
When this bit is reset, then the read/write command completion (MII busy is cleared) only after the trailing clocks are generated. In this mode, it is ensured that the NTC is always generated after each frame.
This bit must not be set when NTC=0.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PSE</name>
              <description>Preamble Suppression Enable
When this bit is set, the SMA suppresses the 32-bit preamble and transmit MDIO frames with only 1 preamble bit.
When this bit is 0, the MDIO frame always has 32 bits of preamble as defined in the IEEE specifications.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACMDIODR</name>
          <displayName>MACMDIODR</displayName>
          <description>MDIO data register</description>
          <addressOffset>0x204</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MD</name>
              <description>MII Data
This field contains the 16-bit data value read from the PHY after a Management Read operation or the 16-bit data value to be written to the PHY before a Management Write operation.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RA</name>
              <description>Register Address
 This field is valid only when C45E is set. It contains the Register Address in the PHY to which the MDIO frame is intended for.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACARPAR</name>
          <displayName>MACARPAR</displayName>
          <description>ARP address register</description>
          <addressOffset>0x210</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ARPPA</name>
              <description>ARP Protocol Address
This field contains the IPv4 Destination Address of the MAC. This address is used for perfect match with the Protocol Address of Target field in the received ARP packet.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACCSRSWCR</name>
          <displayName>MACCSRSWCR</displayName>
          <description>CSR software control register</description>
          <addressOffset>0x230</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RCWE</name>
              <description>Register Clear on Write 1 Enable
When this bit is set, the access mode to some register fields changes to rc_w1 (clear on write) meaning that the application needs to set that respective bit to 1 to clear it.
When this bit is reset, the access mode to these register fields remains rc_r (clear on read).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SEEN</name>
              <description>Slave Error Response Enable
When this bit is set, the MAC responds with a Slave Error for accesses to reserved registers in CSR space.
When this bit is reset, the MAC responds with an Okay response to any register accessed from CSR space.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACA0HR</name>
          <displayName>MACA0HR</displayName>
          <description>MAC Address 0 high register</description>
          <addressOffset>0x300</addressOffset>
          <size>0x20</size>
          <resetValue>0x8000FFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ADDRHI</name>
              <description>MAC Address0[47:32]
This field contains the upper 16 bits [47:32] of the first 6-byte MAC address. The MAC uses this field for filtering the received packets and inserting the MAC address in the Transmit Flow Control (Pause) Packets.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AE</name>
              <description>Address Enable
This bit is always set to 1.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACA0LR</name>
          <displayName>MACA0LR</displayName>
          <description>MAC Address 0 low register</description>
          <addressOffset>0x304</addressOffset>
          <size>0x20</size>
          <resetValue>0xFFFFFFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ADDRLO</name>
              <description>MAC Address x [31:0]
This field contains the lower 32 bits of the first 6-byte MAC address. The MAC uses this field for filtering the received packets and inserting the MAC address in the Transmit Flow Control (Pause) Packets.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACA1HR</name>
          <displayName>MACA1HR</displayName>
          <description>MAC Address 1 high register</description>
          <addressOffset>0x308</addressOffset>
          <size>0x20</size>
          <resetValue>0x0000FFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ADDRHI</name>
              <description>MAC Address1 [47:32]
This field contains the upper 16 bits[47:32] of the second 6-byte MAC address.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MBC</name>
              <description>Mask Byte Control
These bits are mask control bits for comparing each of the MAC Address bytes. When set high, the MAC does not compare the corresponding byte of received DA or SA with the contents of MAC Address1 registers. Each bit controls the masking of the bytes as follows:
Bit 29: ETH_MACAxHR[15:8]
Bit 28: ETH_MACAxHR[7:0]
Bit 27: ETH_MACAxLR[31:24]
Bit 26: ETH_MACAxLR[23:16]
Bit 25: ETH_MACAxLR[15:8]
Bit 24: ETH_MACAxLR[7:0]
You can filter a group of addresses (known as group address filtering) by masking one or more bytes of the address.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SA</name>
              <description>Source Address
When this bit is set, the MAC Addressx[47:0] is used to compare with the SA fields of the received packet. When this bit is reset, the MAC Address x[47:0] is used to compare with the DA fields of the received packet.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AE</name>
              <description>Address Enable
When this bit is set, the address filter module uses the second MAC address for perfect filtering. When this bit is reset, the address filter module ignores the address for filtering.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACA1LR</name>
          <displayName>MACA1LR</displayName>
          <description>MAC Address 1 low register</description>
          <addressOffset>0x30C</addressOffset>
          <size>0x20</size>
          <resetValue>0xFFFFFFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ADDRLO</name>
              <description>MAC Address x [31:0]
This field contains the lower 32 bits of the first 6-byte MAC address. The MAC uses this field for filtering the received packets and inserting the MAC address in the Transmit Flow Control (Pause) Packets.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACA2HR</name>
          <displayName>MACA2HR</displayName>
          <description>MAC Address 2 high register</description>
          <addressOffset>0x310</addressOffset>
          <size>0x20</size>
          <resetValue>0x0000FFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ADDRHI</name>
              <description>MAC Address1 [47:32]
This field contains the upper 16 bits[47:32] of the second 6-byte MAC address.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MBC</name>
              <description>Mask Byte Control
These bits are mask control bits for comparing each of the MAC Address bytes. When set high, the MAC does not compare the corresponding byte of received DA or SA with the contents of MAC Address1 registers. Each bit controls the masking of the bytes as follows:
Bit 29: ETH_MACAxHR[15:8]
Bit 28: ETH_MACAxHR[7:0]
Bit 27: ETH_MACAxLR[31:24]
Bit 26: ETH_MACAxLR[23:16]
Bit 25: ETH_MACAxLR[15:8]
Bit 24: ETH_MACAxLR[7:0]
You can filter a group of addresses (known as group address filtering) by masking one or more bytes of the address.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SA</name>
              <description>Source Address
When this bit is set, the MAC Addressx[47:0] is used to compare with the SA fields of the received packet. When this bit is reset, the MAC Address x[47:0] is used to compare with the DA fields of the received packet.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AE</name>
              <description>Address Enable
When this bit is set, the address filter module uses the second MAC address for perfect filtering. When this bit is reset, the address filter module ignores the address for filtering.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACA2LR</name>
          <displayName>MACA2LR</displayName>
          <description>MAC Address 2 low register</description>
          <addressOffset>0x314</addressOffset>
          <size>0x20</size>
          <resetValue>0xFFFFFFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ADDRLO</name>
              <description>MAC Address x [31:0]
This field contains the lower 32 bits of the first 6-byte MAC address. The MAC uses this field for filtering the received packets and inserting the MAC address in the Transmit Flow Control (Pause) Packets.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACA3HR</name>
          <displayName>MACA3HR</displayName>
          <description>MAC Address 3 high register</description>
          <addressOffset>0x318</addressOffset>
          <size>0x20</size>
          <resetValue>0x0000FFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ADDRHI</name>
              <description>MAC Address1 [47:32]
This field contains the upper 16 bits[47:32] of the second 6-byte MAC address.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MBC</name>
              <description>Mask Byte Control
These bits are mask control bits for comparing each of the MAC Address bytes. When set high, the MAC does not compare the corresponding byte of received DA or SA with the contents of MAC Address1 registers. Each bit controls the masking of the bytes as follows:
Bit 29: ETH_MACAxHR[15:8]
Bit 28: ETH_MACAxHR[7:0]
Bit 27: ETH_MACAxLR[31:24]
Bit 26: ETH_MACAxLR[23:16]
Bit 25: ETH_MACAxLR[15:8]
Bit 24: ETH_MACAxLR[7:0]
You can filter a group of addresses (known as group address filtering) by masking one or more bytes of the address.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SA</name>
              <description>Source Address
When this bit is set, the MAC Addressx[47:0] is used to compare with the SA fields of the received packet. When this bit is reset, the MAC Address x[47:0] is used to compare with the DA fields of the received packet.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AE</name>
              <description>Address Enable
When this bit is set, the address filter module uses the second MAC address for perfect filtering. When this bit is reset, the address filter module ignores the address for filtering.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACA3LR</name>
          <displayName>MACA3LR</displayName>
          <description>MAC Address 3 low register</description>
          <addressOffset>0x31C</addressOffset>
          <size>0x20</size>
          <resetValue>0xFFFFFFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ADDRLO</name>
              <description>MAC Address x [31:0]
This field contains the lower 32 bits of the first 6-byte MAC address. The MAC uses this field for filtering the received packets and inserting the MAC address in the Transmit Flow Control (Pause) Packets.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MMC_CONTROL</name>
          <displayName>MMC_CONTROL</displayName>
          <description>MMC control register</description>
          <addressOffset>0x700</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CNTRST</name>
              <description>Counters Reset
When this bit is set, all counters are reset. This bit is cleared automatically after 1 clock cycle.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNTSTOPRO</name>
              <description>Counter Stop Rollover
When this bit is set, the counter does not roll over to zero after reaching the maximum value.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RSTONRD</name>
              <description>Reset on Read
When this bit is set, the MMC counters are reset to zero after Read (self-clearing after reset). The counters are cleared when the least significant byte lane (Bits[7:0]) is read.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNTFREEZ</name>
              <description>MMC Counter Freeze
When this bit is set, it freezes all MMC counters to their current value.
Until this bit is reset to 0, no MMC counter is updated because of any transmitted or received packet. If any MMC counter is read with the Reset on Read bit set, then that counter is also cleared in this mode.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNTPRST</name>
              <description>Counters Preset
When this bit is set, all counters are initialized or preset to almost full or almost half according to the CNTPRSTLVL bit. This bit is cleared automatically after 1 clock cycle. 
This bit, along with the CNTPRSTLVL bit, is useful for debugging and testing the assertion of interrupts because of MMC counter becoming half-full or full.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNTPRSTLVL</name>
              <description>Full-Half Preset
When this bit is low and the CNTPRST bit is set, all MMC counters get preset to almost-half value. All octet counters get preset to 0x7FFF_F800 (Half 2Kbytes) and all packet-counters get preset to 0x7FFF_FFF0 (Half 16).
When this bit is high and the CNTPRST bit is set, all MMC counters get preset to almost-full value. All octet counters get preset to 0xFFFF_F800 (Full 2Kbytes) and all packet-counters get preset to 0xFFFF_FFF0 (Full 16).
For 16-bit counters, the almost-half preset values are 0x7800 and 0x7FF0 for the respective octet and packet counters. Similarly, the almost-full preset values for the 16-bit counters are 0xF800 and 0xFFF0.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UCDBC</name>
              <description>Update MMC Counters for Dropped Broadcast Packets 
The CNTRST bit has a higher priority than the CNTPRST bit. Therefore, when the software tries to set both bits in the same write cycle, all counters are cleared and the CNTPRST bit is not set.
When set, the MAC updates all related MMC Counters for Broadcast packets that are dropped because of the setting of the DBF bit of Packet filtering control register (ETH_MACPFR).
When reset, the MMC Counters are not updated for dropped Broadcast packets.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MMC_RX_INTERRUPT</name>
          <displayName>MMC_RX_INTERRUPT</displayName>
          <description>MMC Rx interrupt register</description>
          <addressOffset>0x704</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXCRCERPIS</name>
              <description>MMC Receive CRC Error Packet Counter Interrupt Status
This bit is set when the Rx CRC error packets register (ETH_RX_CRC_ERROR_PACKETS) counter reaches half of the maximum value or the maximum value.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>RXALGNERPIS</name>
              <description>MMC Receive Alignment Error Packet Counter Interrupt Status
This bit is set when the Rx alignment error packets register (ETH_RX_ALIGNMENT_ERROR_PACKETS) counter reaches half of the maximum value or the maximum value.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>RXUCGPIS</name>
              <description>MMC Receive Unicast Good Packet Counter Interrupt Status
This bit is set when the Rx unicast packets good register (ETH_RX_UNICAST_PACKETS_GOOD) counter reaches half of the maximum value or the maximum value.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>RXLPIUSCIS</name>
              <description>MMC Receive LPI microsecond counter interrupt status
This bit is set when the Rx LPI microsecond counter register (ETH_RX_LPI_USEC_CNTR) counter reaches half of the maximum value or the maximum value.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>RXLPITRCIS</name>
              <description>MMC Receive LPI transition counter interrupt status
This bit is set when the Rx LPI transition counter register (ETH_RX_LPI_TRAN_CNTR) counter reaches half of the maximum value or the maximum value.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
          </fields>
        </register>
        <register>
          <name>MMC_TX_INTERRUPT</name>
          <displayName>MMC_TX_INTERRUPT</displayName>
          <description>MMC Tx interrupt register</description>
          <addressOffset>0x708</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXSCOLGPIS</name>
              <description>MMC Transmit Single Collision Good Packet Counter Interrupt Status
This bit is set when the Tx single collision good packets register (ETH_TX_SINGLE_COLLISION_GOOD_PACKETS) counter reaches half of the maximum value or the maximum value.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>TXMCOLGPIS</name>
              <description>MMC Transmit Multiple Collision Good Packet Counter Interrupt Status
This bit is set when the Tx multiple collision good packets register (ETH_TX_MULTIPLE_COLLISION_GOOD_PACKETS) counter reaches half of the maximum value or the maximum value.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>TXGPKTIS</name>
              <description>MMC Transmit Good Packet Counter Interrupt Status
This bit is set when the Tx packet count good register (ETH_TX_PACKET_COUNT_GOOD) counter reaches half of the maximum value or the maximum value.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>TXLPIUSCIS</name>
              <description>MMC Transmit LPI microsecond counter interrupt status
This bit is set when the Tx LPI microsecond timer register (ETH_TX_LPI_USEC_CNTR) counter reaches half of the maximum value or the maximum value.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>TXLPITRCIS</name>
              <description>MMC Transmit LPI transition counter interrupt status
This bit is set when the Tx LPI transition counter register (ETH_TX_LPI_TRAN_CNTR) counter reaches half of the maximum value or the maximum value.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
          </fields>
        </register>
        <register>
          <name>MMC_RX_INTERRUPT_MASK</name>
          <displayName>MMC_RX_INTERRUPT_MASK</displayName>
          <description>MMC Rx interrupt mask register</description>
          <addressOffset>0x70C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXCRCERPIM</name>
              <description>MMC Receive CRC Error Packet Counter Interrupt Mask
Setting this bit masks the interrupt when the Rx CRC error packets register (ETH_RX_CRC_ERROR_PACKETS) counter reaches half of the maximum value or the maximum value.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXALGNERPIM</name>
              <description>MMC Receive Alignment Error Packet Counter Interrupt Mask
Setting this bit masks the interrupt when the Rx alignment error packets register (ETH_RX_ALIGNMENT_ERROR_PACKETS) counter reaches half of the maximum value or the maximum value.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXUCGPIM</name>
              <description>MMC Receive Unicast Good Packet Counter Interrupt Mask
Setting this bit masks the interrupt when the Rx unicast packets good register (ETH_RX_UNICAST_PACKETS_GOOD) counter reaches half of the maximum value or the maximum value.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXLPIUSCIM</name>
              <description>MMC Receive LPI microsecond counter interrupt Mask
Setting this bit masks the interrupt when the Rx LPI microsecond counter register (ETH_RX_LPI_USEC_CNTR) counter reaches half of the maximum value or the maximum value.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXLPITRCIM</name>
              <description>MMC Receive LPI transition counter interrupt Mask
Setting this bit masks the interrupt when the Rx LPI transition counter register (ETH_RX_LPI_TRAN_CNTR) counter reaches half of the maximum value or the maximum value.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MMC_TX_INTERRUPT_MASK</name>
          <displayName>MMC_TX_INTERRUPT_MASK</displayName>
          <description>MMC Tx interrupt mask register</description>
          <addressOffset>0x710</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXSCOLGPIM</name>
              <description>MMC Transmit Single Collision Good Packet Counter Interrupt Mask
Setting this bit masks the interrupt when the Tx single collision good packets register (ETH_TX_SINGLE_COLLISION_GOOD_PACKETS) counter reaches half of the maximum value or the maximum value.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXMCOLGPIM</name>
              <description>MMC Transmit Multiple Collision Good Packet Counter Interrupt Mask
Setting this bit masks the interrupt when the Tx multiple collision good packets register (ETH_TX_MULTIPLE_COLLISION_GOOD_PACKETS) counter reaches half of the maximum value or the maximum value.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXGPKTIM</name>
              <description>MMC Transmit Good Packet Counter Interrupt Mask
Setting this bit masks the interrupt when the Tx packet count good register (ETH_TX_PACKET_COUNT_GOOD) counter reaches half of the maximum value or the maximum value.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXLPIUSCIM</name>
              <description>MMC Transmit LPI microsecond counter interrupt Mask
Setting this bit masks the interrupt when the Tx LPI microsecond timer register (ETH_TX_LPI_USEC_CNTR) counter reaches half of the maximum value or the maximum value.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXLPITRCIM</name>
              <description>MMC Transmit LPI transition counter interrupt Mask
Setting this bit masks the interrupt when the Tx LPI transition counter register (ETH_TX_LPI_TRAN_CNTR) counter reaches half of the maximum value or the maximum value.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TX_SINGLE_COLLISION_GOOD_PACKETS</name>
          <displayName>TX_SINGLE_COLLISION_GOOD_PACKETS</displayName>
          <description>Tx single collision good packets register</description>
          <addressOffset>0x74C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXSNGLCOLG</name>
              <description>Tx Single Collision Good Packets
This field indicates the number of successfully transmitted packets after a single collision in the Half-duplex mode.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TX_MULTIPLE_COLLISION_GOOD_PACKETS</name>
          <displayName>TX_MULTIPLE_COLLISION_GOOD_PACKETS</displayName>
          <description>Tx multiple collision good packets register</description>
          <addressOffset>0x750</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXMULTCOLG</name>
              <description>Tx Multiple Collision Good Packets
This field indicates the number of successfully transmitted packets after multiple collisions in the Half-duplex mode.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TX_PACKET_COUNT_GOOD</name>
          <displayName>TX_PACKET_COUNT_GOOD</displayName>
          <description>Tx packet count good register</description>
          <addressOffset>0x768</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXPKTG</name>
              <description>Tx Packet Count Good
This field indicates the number of good packets transmitted.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RX_CRC_ERROR_PACKETS</name>
          <displayName>RX_CRC_ERROR_PACKETS</displayName>
          <description>Rx CRC error packets register</description>
          <addressOffset>0x794</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXCRCERR</name>
              <description>Rx CRC Error Packets
This field indicates the number of packets received with CRC error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RX_ALIGNMENT_ERROR_PACKETS</name>
          <displayName>RX_ALIGNMENT_ERROR_PACKETS</displayName>
          <description>Rx alignment error packets register</description>
          <addressOffset>0x798</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXALGNERR</name>
              <description>Rx Alignment Error Packets
This field indicates the number of packets received with alignment (dribble) error. It is valid only in 10/100 mode.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RX_UNICAST_PACKETS_GOOD</name>
          <displayName>RX_UNICAST_PACKETS_GOOD</displayName>
          <description>Rx unicast packets good register</description>
          <addressOffset>0x7C4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXUCASTG</name>
              <description>Rx Unicast Packets Good
This field indicates the number of good unicast packets received.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TX_LPI_USEC_CNTR</name>
          <displayName>TX_LPI_USEC_CNTR</displayName>
          <description>Tx LPI microsecond timer register</description>
          <addressOffset>0x7EC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXLPIUSC</name>
              <description>Tx LPI Microseconds Counter
This field indicates the number of microseconds Tx LPI is asserted. For every Tx LPI Entry and Exit, the Timer value can have an error of +/- 1 microsecond.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TX_LPI_TRAN_CNTR</name>
          <displayName>TX_LPI_TRAN_CNTR</displayName>
          <description>Tx LPI transition counter register</description>
          <addressOffset>0x7F0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXLPITRC</name>
              <description>Tx LPI Transition counter
This field indicates the number of times Tx LPI Entry has occurred. Even if Tx LPI Entry occurs in Automate mode (because of LPITXA bit set in the LPI control and status register (ETH_MACLCSR)), the counter increments.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RX_LPI_USEC_CNTR</name>
          <displayName>RX_LPI_USEC_CNTR</displayName>
          <description>Rx LPI microsecond counter register</description>
          <addressOffset>0x7F4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXLPIUSC</name>
              <description>Rx LPI Microseconds Counter
This field indicates the number of microseconds Rx LPI is asserted. For every Rx LPI Entry and Exit, the Timer value can have an error of +/- 1 microsecond.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RX_LPI_TRAN_CNTR</name>
          <displayName>RX_LPI_TRAN_CNTR</displayName>
          <description>Rx LPI transition counter register</description>
          <addressOffset>0x7F8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXLPITRC</name>
              <description>Rx LPI Transition counter
This field indicates the number of times Rx LPI Entry has occurred.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACL3L4C0R</name>
          <displayName>MACL3L4C0R</displayName>
          <description>L3 and L4 control 0 register</description>
          <addressOffset>0x900</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>L3PEN0</name>
              <description>Layer 3 Protocol Enable
When this bit is set, the Layer 3 IP Source or Destination Address matching is enabled for IPv6 packets. When this bit is reset, the Layer 3 IP Source or Destination Address matching is enabled for IPv4 packets.
The Layer 3 matching is done only when the L3SAM0 or L3DAM0 bit is set.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L3SAM0</name>
              <description>Layer 3 IP SA Match Enable
When this bit is set, the Layer 3 IP Source Address field is enabled for matching. When this bit is reset, the MAC ignores the Layer 3 IP Source Address field for matching.
Note: When the L3PEN0 bit is set, you should set either this bit or the L3DAM0 bit because either IPv6 SA or DA can be checked for filtering.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L3SAIM0</name>
              <description>Layer 3 IP SA Inverse Match Enable
When this bit is set, the Layer 3 IP Source Address field is enabled for inverse matching. When this bit reset, the Layer 3 IP Source Address field is enabled for perfect matching.
This bit is valid and applicable only when the L3SAM0 bit is set.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L3DAM0</name>
              <description>Layer 3 IP DA Match Enable
When this bit is set, the Layer 3 IP Destination Address field is enabled for matching. When this bit is reset, the MAC ignores the Layer 3 IP Destination Address field for matching.
Note: When the L3PEN0 bit is set, you should set either this bit or the L3SAM0 bit because either IPv6 DA or SA can be checked for filtering.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L3DAIM0</name>
              <description>Layer 3 IP DA Inverse Match Enable
When this bit is set, the Layer 3 IP Destination Address field is enabled for inverse matching. When this bit is reset, the Layer 3 IP Destination Address field is enabled for perfect matching.
This bit is valid and applicable only when the L3DAM0 bit is set high.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L3HSBM0</name>
              <description>Layer 3 IP SA higher bits match
This field contains the number of lower bits of IP source address that are masked for matching in the IPv4 packets. The following list describes the values of this field:
..
Condition: IPv6 packets:
This field contains Bits[4:0] of L3HSBM0. These bits indicate the number of higher bits of IP source or destination address matched in the IPv6 packets. This field is valid and applicable only when the L3DAM0 or L3SAM0 bit is set high.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L3HDBM0</name>
              <description>Layer 3 IP DA higher bits match
This field contains the number of higher bits of IP Destination Address that are masked in the IPv4 packets:
..
Bits[12:11] of this field correspond to Bits[6:5] of L3HSBM0 which indicate the number of lower bits of IP Source or Destination Address that are masked in the IPv6 packets. Number of bits masked is given by concatenated values of the L3HDBM0[1:0] and L3HSBM0 bits:
..
This field is valid and applicable only when the L3DAM0 or L3SAM0 bit is set.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L4PEN0</name>
              <description>Layer 4 Protocol Enable
When this bit is set, the Source and Destination Port number fields of UDP packets are used for matching. When this bit is reset, the Source and Destination Port number fields of TCP packets are used for matching.
The Layer 4 matching is done only when the L4SPM0 or L4DPM0 bit is set.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L4SPM0</name>
              <description>Layer 4 Source Port Match Enable
When this bit is set, the Layer 4 Source Port number field is enabled for matching. When this bit is reset, the MAC ignores the Layer 4 Source Port number field for matching.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L4SPIM0</name>
              <description>Layer 4 Source Port Inverse Match Enable
When this bit is set, the Layer 4 Source Port number field is enabled for inverse matching. When this bit is reset, the Layer 4 Source Port number field is enabled for perfect matching.
This bit is valid and applicable only when the L4SPM0 bit is set high.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L4DPM0</name>
              <description>Layer 4 Destination Port Match Enable
When this bit is set, the Layer 4 Destination Port number field is enabled for matching. When this bit is reset, the MAC ignores the Layer 4 Destination Port number field for matching.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L4DPIM0</name>
              <description>Layer 4 Destination Port Inverse Match Enable
When this bit is set, the Layer 4 Destination Port number field is enabled for inverse matching. When this bit is reset, the Layer 4 Destination Port number field is enabled for perfect matching.
This bit is valid and applicable only when the L4DPM0 bit is set high.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACL4A0R</name>
          <displayName>MACL4A0R</displayName>
          <description>Layer4 Address filter 0 register</description>
          <addressOffset>0x904</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>L4SP0</name>
              <description>Layer 4 Source Port Number Field
When the L4PEN0 bit is reset and the L4DPM0 bit is set in the L3 and L4 control 0 register (ETH_MACL3L4C0R), this field contains the value to be matched with the TCP Source Port Number field in the IPv4 or IPv6 packets.
When the L4PEN0 and L4DPM0 bits are set in L3 and L4 control 0 register (ETH_MACL3L4C0R), this field contains the value to be matched with the UDP Source Port Number field in the IPv4 or IPv6 packets.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L4DP0</name>
              <description>Layer 4 Destination Port Number Field
When the L4PEN0 bit is reset and the L4DPM0 bit is set in the L3 and L4 control 0 register (ETH_MACL3L4C0R), this field contains the value to be matched with the TCP Destination Port Number field in the IPv4 or IPv6 packets.
When the L4PEN0 and L4DPM0 bits are set in L3 and L4 control 0 register (ETH_MACL3L4C0R), this field contains the value to be matched with the UDP Destination Port Number field in the IPv4 or IPv6 packets.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACL3A00R</name>
          <displayName>MACL3A00R</displayName>
          <description>Layer3 Address 0 filter 0 register</description>
          <addressOffset>0x910</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>L3A00</name>
              <description>Layer 3 Address 0 Field
When the L3PEN0 and L3SAM0 bits are set in the L3 and L4 control 0 register (ETH_MACL3L4C0R), this field contains the value to be matched with Bits[31:0] of the IP Source Address field in the IPv6 packets.
When the L3PEN0 and L3DAM0 bits are set in the L3 and L4 control 0 register (ETH_MACL3L4C0R), this field contains the value to be matched with Bits[31:0] of the IP Destination Address field in the IPv6 packets.
When the L3PEN0 bit is reset and the L3SAM0 bit is set in the L3 and L4 control 0 register (ETH_MACL3L4C0R), this field contains the value to be matched with the IP Source Address field in the IPv4 packets.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACL3A10R</name>
          <displayName>MACL3A10R</displayName>
          <description>Layer3 Address 1 filter 0 register</description>
          <addressOffset>0x914</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>L3A10</name>
              <description>Layer 3 Address 1 Field
When the L3PEN0 and L3SAM0 bits are set in the L3 and L4 control 0 register (ETH_MACL3L4C0R), this field contains the value to be matched with Bits[63:32] of the IP Source Address field in the IPv6 packets.
When the L3PEN0 and L3DAM0 bits are set in the L3 and L4 control 0 register (ETH_MACL3L4C0R), this field contains the value to be matched with Bits[63:32] of the IP Destination Address field in the IPv6 packets.
When the L3PEN0 bit is reset and the L3SAM0 bit is set in the L3 and L4 control 0 register (ETH_MACL3L4C0R), this field contains the value to be matched with the IP Destination Address field in the IPv4 packets.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACL3A20R</name>
          <displayName>MACL3A20R</displayName>
          <description>Layer3 Address 2 filter 0 register</description>
          <addressOffset>0x918</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>L3A20</name>
              <description>Layer 3 Address 2 Field
When the L3PEN0 and L3SAM0 bits are set in the L3 and L4 control 0 register (ETH_MACL3L4C0R), this field contains the value to be matched with Bits[95:64] of the IP Source Address field in the IPv6 packets.
When the L3PEN0 and L3DAM0 bits are set in the L3 and L4 control 0 register (ETH_MACL3L4C0R), this field contains the value to be matched with Bits[95:64] of the IP Destination Address field in the IPv6 packets.
When the L3PEN0 bit is reset in the L3 and L4 control 0 register (ETH_MACL3L4C0R), this field is not used.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACL3A30R</name>
          <displayName>MACL3A30R</displayName>
          <description>Layer3 Address 3 filter 0 register</description>
          <addressOffset>0x91C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>L3A30</name>
              <description>Layer 3 Address 3 Field
When the L3PEN0 and L3SAM0 bits are set in the L3 and L4 control 0 register (ETH_MACL3L4C0R), this field contains the value to be matched with Bits[127:96] of the IP Source Address field in the IPv6 packets.
When the L3PEN0 and L3DAM0 bits are set in the L3 and L4 control 0 register (ETH_MACL3L4C0R), this field contains the value to be matched with Bits[127:96] of the IP Destination Address field in the IPv6 packets.
When the L3PEN0 bit is reset in the L3 and L4 control 0 register (ETH_MACL3L4C0R), this field is not used.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACL3L4C1R</name>
          <displayName>MACL3L4C1R</displayName>
          <description>L3 and L4 control 1 register</description>
          <addressOffset>0x930</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>L3PEN1</name>
              <description>Layer 3 Protocol Enable
When this bit is set, the Layer 3 IP Source or Destination Address matching is enabled for IPv6 packets. When this bit is reset, the Layer 3 IP Source or Destination Address matching is enabled for IPv4 packets.
The Layer 3 matching is done only when the L3SAM1 or L3DAM1 bit is set.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L3SAM1</name>
              <description>Layer 3 IP SA Match Enable
When this bit is set, the Layer 3 IP Source Address field is enabled for matching. When this bit is reset, the MAC ignores the Layer 3 IP Source Address field for matching.
Note: When the L3PEN01 bit is set, you should set either this bit or the L3DAM1 bit because either IPv6 SA or DA can be checked for filtering.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L3SAIM1</name>
              <description>Layer 3 IP SA Inverse Match Enable
When this bit is set, the Layer 3 IP Source Address field is enabled for inverse matching. When this bit reset, the Layer 3 IP Source Address field is enabled for perfect matching.
This bit is valid and applicable only when the L3SAM1 bit is set.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L3DAM1</name>
              <description>Layer 3 IP DA Match Enable
When this bit is set, the Layer 3 IP Destination Address field is enabled for matching. When this bit is reset, the MAC ignores the Layer 3 IP Destination Address field for matching.
Note: When the L3PEN1 bit is set, you should set either this bit or the L3SAM1 bit because either IPv6 DA or SA can be checked for filtering.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L3DAIM1</name>
              <description>Layer 3 IP DA Inverse Match Enable
When this bit is set, the Layer 3 IP Destination Address field is enabled for inverse matching. When this bit is reset, the Layer 3 IP Destination Address field is enabled for perfect matching.
This bit is valid and applicable only when the L3DAM1 bit is set high.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L3HSBM1</name>
              <description>Layer 3 IP SA Higher Bits Match
This field contains the number of lower bits of IP Source Address that are masked for matching in the IPv4 packets. The following list describes the values of this field:
..
This field contains Bits[4:0] of L3HSBM1. These bits indicate the number of higher bits of IP Source or Destination Address matched in the IPv6 packets. This field is valid and applicable only when the L3DAM1 or L3SAM1 bit is set high.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L3HDBM1</name>
              <description>Layer 3 IP DA higher bits match
This field contains the number of lower bits of IP Destination Address that are masked for matching in the IPv4 packets. The following list describes the values of this field:
..
Bits[12:11] of this field correspond to Bits[6:5] of L3HSBM1, which indicate the number of lower bits of IP Source or Destination Address that are masked in the IPv6 packets. The following list describes the concatenated values of the L3HDBM1[1:0] and L3HSBM1 bits:
..
This field is valid and applicable only when the L3DAM1 or L3SAM1 bit is set.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L4PEN1</name>
              <description>Layer 4 Protocol Enable
When this bit is set, the Source and Destination Port number fields of UDP packets are used for matching. When this bit is reset, the Source and Destination Port number fields of TCP packets are used for matching.
The Layer 4 matching is done only when the L4SPM1 or L4DPM1 bit is set.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L4SPM1</name>
              <description>Layer 4 Source Port Match Enable
When this bit is set, the Layer 4 Source Port number field is enabled for matching. When this bit is reset, the MAC ignores the Layer 4 Source Port number field for matching.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L4SPIM1</name>
              <description>Layer 4 Source Port Inverse Match Enable
When this bit is set, the Layer 4 Source Port number field is enabled for inverse matching. When this bit is reset, the Layer 4 Source Port number field is enabled for perfect matching.
This bit is valid and applicable only when the L4SPM1 bit is set high.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L4DPM1</name>
              <description>Layer 4 Destination Port Match Enable
When this bit is set, the Layer 4 Destination Port number field is enabled for matching. When this bit is reset, the MAC ignores the Layer 4 Destination Port number field for matching.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L4DPIM1</name>
              <description>Layer 4 Destination Port Inverse Match Enable
When this bit is set, the Layer 4 Destination Port number field is enabled for inverse matching. When this bit is reset, the Layer 4 Destination Port number field is enabled for perfect matching.
This bit is valid and applicable only when the L4DPM1 bit is set high.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACL4A1R</name>
          <displayName>MACL4A1R</displayName>
          <description>Layer 4 address filter 1 register</description>
          <addressOffset>0x934</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>L4SP1</name>
              <description>Layer 4 Source Port Number Field
When the L4PEN1 bit is reset and the L4DPM1 bit is set in the L3 and L4 control 1 register (ETH_MACL3L4C1R), this field contains the value to be matched with the TCP Source Port Number field in the IPv4 or IPv6 packets.
When the L4PEN1 and L4DPM1 bits are set in L3 and L4 control 1 register (ETH_MACL3L4C1R), this field contains the value to be matched with the UDP Source Port Number field in the IPv4 or IPv6 packets.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L4DP1</name>
              <description>Layer 4 Destination Port Number Field
When the L4PEN1 bit is reset and the L4DPM1 bit is set in the L3 and L4 control 1 register (ETH_MACL3L4C1R), this field contains the value to be matched with the TCP Destination Port Number field in the IPv4 or IPv6 packets.
When the L4PEN1 and L4DPM1 bits are set in L3 and L4 control 1 register (ETH_MACL3L4C1R), this field contains the value to be matched with the UDP Destination Port Number field in the IPv4 or IPv6 packets.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACL3A01R</name>
          <displayName>MACL3A01R</displayName>
          <description>Layer3 address 0 filter 1 Register</description>
          <addressOffset>0x940</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>L3A01</name>
              <description>Layer 3 Address 0 Field
When the L3PEN1 and L3SAM1bits are set in the L3 and L4 control 1 register (ETH_MACL3L4C1R), this field contains the value to be matched with Bits[31:0] of the IP Source Address field in the IPv6 packets.
When the L3PEN1 and L3DAM1 bits are set in the L3 and L4 control 1 register (ETH_MACL3L4C1R), this field contains the value to be matched with Bits[31:0] of the IP Destination Address field in the IPv6 packets.
When the L3PEN1 bit is reset and the L3SAM1 bit is set in the L3 and L4 control 1 register (ETH_MACL3L4C1R), this field contains the value to be matched with the IP Source Address field in the IPv4 packets.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACL3A11R</name>
          <displayName>MACL3A11R</displayName>
          <description>Layer3 address 1 filter 1 register</description>
          <addressOffset>0x944</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>L3A11</name>
              <description>Layer 3 Address 1 Field
When the L3PEN1 and L3SAM1 bits are set in the L3 and L4 control 1 register (ETH_MACL3L4C1R), this field contains the value to be matched with Bits[63:32] of the IP Source Address field in the IPv6 packets.
When the L3PEN1 and L3DAM1 bits are set in the L3 and L4 control 1 register (ETH_MACL3L4C1R), this field contains the value to be matched with Bits[63:32] of the IP Destination Address field in the IPv6 packets.
When the L3PEN1 bit is reset and the L3SAM1 bit is set in the L3 and L4 control 1 register (ETH_MACL3L4C1R), this field contains the value to be matched with the IP Destination Address field in the IPv4 packets.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACL3A21R</name>
          <displayName>MACL3A21R</displayName>
          <description>Layer3 address 2 filter 1 Register</description>
          <addressOffset>0x948</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>L3A21</name>
              <description>Layer 3 Address 2 Field
When the L3PEN1 and L3SAM1 bits are set in the L3 and L4 control 1 register (ETH_MACL3L4C1R), this field contains the value to be matched with Bits[95:64] of the IP Source Address field in the IPv6 packets.
When the L3PEN1 and L3DAM1 bits are set in the L3 and L4 control 1 register (ETH_MACL3L4C1R), this field contains the value to be matched with Bits[95:64] of the IP Destination Address field in the IPv6 packets.
When the L3PEN1 bit is reset in the L3 and L4 control 1 register (ETH_MACL3L4C1R), this field is not used.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACL3A31R</name>
          <displayName>MACL3A31R</displayName>
          <description>Layer3 address 3 filter 1 register</description>
          <addressOffset>0x94C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>L3A31</name>
              <description>Layer 3 Address 3 Field
When the L3PEN1 and L3SAM1 bits are set in the L3 and L4 control 1 register (ETH_MACL3L4C1R), this field contains the value to be matched with Bits[127:96] of the IP Source Address field in the IPv6 packets.
When the L3PEN1 and L3DAM1 bits are set in the L3 and L4 control 1 register (ETH_MACL3L4C1R), this field contains the value to be matched with Bits[127:96] of the IP Destination Address field in the IPv6 packets.
When the L3PEN1 bit is reset in the L3 and L4 control 1 register (ETH_MACL3L4C1R), this field is not used.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACTSCR</name>
          <displayName>MACTSCR</displayName>
          <description>Timestamp control Register</description>
          <addressOffset>0xB00</addressOffset>
          <size>0x20</size>
          <resetValue>0x00002000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TSENA</name>
              <description>Enable Timestamp
When this bit is set, the timestamp is added for Transmit and Receive packets. When disabled, timestamp is not added for transmit and receive packets and the Timestamp Generator is also suspended. You need to initialize the Timestamp (system time) after enabling this mode.
On the Receive side, the MAC processes the 1588 packets only if this bit is set.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TSCFUPDT</name>
              <description>Fine or Coarse Timestamp Update
When this bit is set, the Fine method is used to update system timestamp. When this bit is reset, Coarse method is used to update the system timestamp.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TSINIT</name>
              <description>Initialize Timestamp
When this bit is set, the system time is initialized (overwritten) with the value specified in the System time seconds update register (ETH_MACSTSUR) and System time nanoseconds update register (ETH_MACSTNUR).
This bit should be zero before it is updated. This bit is reset when the initialization is complete.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TSUPDT</name>
              <description>Update Timestamp
When this bit is set, the system time is updated (added or subtracted) with the value specified in System time seconds update register (ETH_MACSTSUR) and System time nanoseconds update register (ETH_MACSTNUR).
This bit should be zero before updating it. This bit is reset when the update is complete in hardware.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TSADDREG</name>
              <description>Update Addend Register
When this bit is set, the content of the Timestamp Addend register is updated in the PTP block for fine correction. This bit is cleared when the update is complete. This bit should be zero before it is set.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TSENALL</name>
              <description>Enable Timestamp for All Packets
When this bit is set, the timestamp snapshot is enabled for all packets received by the MAC.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TSCTRLSSR</name>
              <description>Timestamp Digital or Binary Rollover Control
When this bit is set, the Timestamp Low register rolls over after 0x3B9A_C9FF value (that is, 1 nanosecond accuracy) and increments the timestamp (High) seconds. When this bit is reset, the rollover value of subsecond register is 0x7FFF_FFFF. The subsecond increment must be programmed correctly depending on the PTP reference clock frequency and the value of this bit.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TSVER2ENA</name>
              <description>Enable PTP Packet Processing for Version 2 Format
When this bit is set, the IEEE 1588 version 2 format is used to process the PTP packets. When this bit is reset, the IEEE 1588 version 1 format is used to process the PTP packets. The IEEE 1588 formats are described in 'PTP Processing and Control'.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TSIPENA</name>
              <description>Enable Processing of PTP over Ethernet Packets
When this bit is set, the MAC receiver processes the PTP packets encapsulated directly in the Ethernet packets. When this bit is reset, the MAC ignores the PTP over Ethernet packets.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TSIPV6ENA</name>
              <description>Enable Processing of PTP Packets Sent over IPv6-UDP
When this bit is set, the MAC receiver processes the PTP packets encapsulated in IPv6-UDP packets. When this bit is clear, the MAC ignores the PTP transported over IPv6-UDP packets.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TSIPV4ENA</name>
              <description>Enable Processing of PTP Packets Sent over IPv4-UDP
When this bit is set, the MAC receiver processes the PTP packets encapsulated in IPv4-UDP packets. When this bit is reset, the MAC ignores the PTP transported over IPv4-UDP packets. This bit is set by default.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TSEVNTENA</name>
              <description>Enable Timestamp Snapshot for Event Messages
When this bit is set, the timestamp snapshot is taken only for event messages (SYNC, Delay_Req, Pdelay_Req, or Pdelay_Resp). When this bit is reset, the snapshot is taken for all messages except Announce, Management, and Signaling. For more information about the timestamp snapshots, see Table 518: Timestamp Snapshot Dependency on ETH_MACTSCR Bits.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TSMSTRENA</name>
              <description>Enable Snapshot for Messages Relevant to Master
When this bit is set, the snapshot is taken only for the messages that are relevant to the master node. Otherwise, the snapshot is taken for the messages relevant to the slave node.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SNAPTYPSEL</name>
              <description>Select PTP packets for Taking Snapshots
These bits, along with Bits 15 and 14, define the set of PTP packet types for which snapshot needs to be taken. The encoding is given in Table 518: Timestamp Snapshot Dependency on ETH_MACTSCR Bits.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TSENMACADDR</name>
              <description>Enable MAC Address for PTP Packet Filtering
When this bit is set, the DA MAC address (that matches any MAC Address register) is used to filter the PTP packets when PTP is directly sent over Ethernet. 
 When this bit is set, received PTP packets with DA containing a special multicast or unicast address that matches the one programmed in MAC address registers are considered for processing as indicated below, when PTP is directly sent over Ethernet.
 For normal timestamping operation, MAC address registers 0 to 31 is considered for unicast destination address matching. 
 For PTP offload, only MAC address register 0 is considered for unicast destination address matching.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXTSSTSM</name>
              <description>Transmit Timestamp Status Mode
When this bit is set, the MAC overwrites the earlier transmit timestamp status even if it is not read by the software. The MAC indicates this by setting the TXTSSMIS bit of the Tx timestamp status nanoseconds register (ETH_MACTXTSSNR) register.
When this bit is reset, the MAC ignores the timestamp status of current packet if the timestamp status of previous packet is not read by the software. The MAC indicates this by setting the TXTSSMIS bit of the Tx timestamp status nanoseconds register (ETH_MACTXTSSNR).</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AV8021ASMEN</name>
              <description>AV 802.1AS Mode Enable
When this bit is set, the MAC processes only untagged PTP over Ethernet packets for providing PTP status and capturing timestamp snapshots, that is, IEEE 802.1AS operating mode.
 When PTP offload feature is enabled, for the purpose of PTP offload, the transport specific field in the PTP header is generated and checked based on the value of this bit.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACSSIR</name>
          <displayName>MACSSIR</displayName>
          <description>Subsecond increment register</description>
          <addressOffset>0xB04</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SSINC</name>
              <description>Subsecond Increment Value
The value programmed in this field is accumulated every clock cycle (of clk_ptp_i) with the contents of the subsecond register. For example, when the PTP clock is 50 MHz (period is 20 ns), you should program 20 (0x14) when the System Time Nanoseconds register has an accuracy of 1 ns [TSCTRLSSR bit is set in Timestamp control Register (ETH_MACTSCR)]. When TSCTRLSSR is cleared, the Nanoseconds register has a resolution of ~0.465 ns. In this case, you should program a value of 43 (0x2B) which is derived by 20 ns/0.465.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACSTSR</name>
          <displayName>MACSTSR</displayName>
          <description>System time seconds register</description>
          <addressOffset>0xB08</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TSS</name>
              <description>Timestamp Second
The value in this field indicates the current value in seconds of the System Time maintained by the MAC.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACSTNR</name>
          <displayName>MACSTNR</displayName>
          <description>System time nanoseconds register</description>
          <addressOffset>0xB0C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TSSS</name>
              <description>Timestamp subseconds
The value in this field has the subsecond representation of time, with an accuracy of 0.46 ns. When TSCTRLSSR is set in Timestamp control Register (ETH_MACTSCR), each bit represents 1 ns. The maximum value is 0x3B9A_C9FF after which it rolls-over to zero.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>31</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACSTSUR</name>
          <displayName>MACSTSUR</displayName>
          <description>System time seconds update register</description>
          <addressOffset>0xB10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TSS</name>
              <description>Timestamp Seconds
The value in this field is the seconds part of the update.
When ADDSUB is reset, this field must be programmed with the seconds part of the update value.
When ADDSUB is set, this field must be programmed with the complement of the seconds part of the update value.
For example, to subtract 2.000000001 seconds from the system time, the TSS field in the ETH_MACSTSUR register must be 0xFFFF_FFFE (that is, 2^32   2).
When the ADDSUB bit is set, TSSS[30:0] field cannot be set to 0 in System time nanoseconds update register (ETH_MACSTNUR). The TSSS bitfield must be programmed to 0x7FFF FFFF (resulting in  0.46 ns) even if 0 ns must be subtracted.
For example, to subtract 2.000000000 seconds from the system time, the TSS field in the System time seconds update register (ETH_MACSTSUR) must be 0xFFFF FFFE (that is, 2^32   1) and the System time nanoseconds update register (ETH_MACSTNUR) must be 0xFFFF FFFF (ADDSUB = 1 and TSSS[30:0] field = 0x7FFF_FFFF)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACSTNUR</name>
          <displayName>MACSTNUR</displayName>
          <description>System time nanoseconds update register</description>
          <addressOffset>0xB14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TSSS</name>
              <description>Timestamp subseconds
The value in this field is the subseconds part of the update.
ADDSUB is 1: This field must be programmed with the complement of the subseconds part of the update value as described.
ADDSUB is 0: This field must be programmed with the subseconds part of the update value, with an accuracy based on the TSCTRLSSR bit of the Timestamp control Register (ETH_MACTSCR).
TSCTRLSSR field in the Timestamp control Register (ETH_MACTSCR)is 1: 
- The programmed value must be 10^9   &lt;subsecond value&gt;. 
- Each bit represents 1 ns and the programmed value should not exceed 0x3B9A_C9FF.
TSCTRLSSR field in the Timestamp control Register (ETH_MACTSCR) is 0: 
- The programmed value must be 2^31 - &lt;subsecond_value&gt;. 
- Each bit represents an accuracy of 0.46 ns. 
For example, to subtract 2.000000001 seconds from the system time, then the TSSS field in the ETH_MACSTNUR register must be 0x7FFF_FFFF (that is, 2^31   1), when TSCTRLSSR bit in Timestamp control Register (ETH_MACTSCR) is reset and 0x3B9A_C9FF (that is, 10^9  1), when TSCTRLSSR bit in Timestamp control Register (ETH_MACTSCR) is set.
When the ADDSUB bit is set, TSSS[30:0] field cannot be set to 0. The TSSS bitfield must be programmed to 0x7FFF FFFF (resulting in  0.46 ns) even if 0 ns must be subtracted. 
For example, to subtract 2.000000000 seconds from the system time, System time nanoseconds update register (ETH_MACSTNUR) must be 0xFFFF FFFF (ADDSUB = 1 and TSSS[30:0] = 0) and the TSS field in the System time seconds update register (ETH_MACSTSUR) must be 0xFFFF FFFE (that is, 2^32   1).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>31</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADDSUB</name>
              <description>Add or Subtract Time
When this bit is set, the time value is subtracted with the contents of the update register. When this bit is reset, the time value is added with the contents of the update register.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACTSAR</name>
          <displayName>MACTSAR</displayName>
          <description>Timestamp addend register</description>
          <addressOffset>0xB18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TSAR</name>
              <description>Timestamp Addend Register
This field indicates the 32-bit time value to be added to the Accumulator register to achieve time synchronization.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACTSSR</name>
          <displayName>MACTSSR</displayName>
          <description>Timestamp status register</description>
          <addressOffset>0xB20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TSSOVF</name>
              <description>Timestamp Seconds Overflow
When this bit is set, it indicates that the seconds value of the timestamp (when supporting version 2 format) has overflowed beyond 32'hFFFF_FFFF.
This bit is cleared when the application reads this bit (or write of 1 when RCWE bit in CSR software control register (ETH_MACCSRSWCR) is set)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>TSTARGT0</name>
              <description>Timestamp Target Time Reached
When set, this bit indicates that the value of system time is greater than or equal to the value specified in the PPS target time seconds register (ETH_MACPPSTTSR) and PPS target time nanoseconds register (ETH_MACPPSTTNR).
This bit is cleared when the application reads this bit (or write of 1 when RCWE bit in CSR software control register (ETH_MACCSRSWCR) is set)</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>AUXTSTRIG</name>
              <description>Auxiliary Timestamp Trigger Snapshot
This bit is set high when the auxiliary snapshot is written to the FIFO.
This bit is cleared when the application reads this bit (or write of 1 when RCWE bit in CSR software control register (ETH_MACCSRSWCR) is set).</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>TSTRGTERR0</name>
              <description>Timestamp Target Time Error
This bit is set when the latest target time programmed in the PPS target time seconds register (ETH_MACPPSTTSR) and PPS target time nanoseconds register (ETH_MACPPSTTNR) elapses. This bit is cleared when the application reads this bit (or write of 1 when RCWE bit in CSR software control register (ETH_MACCSRSWCR) is set).</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>TXTSSIS</name>
              <description>Tx Timestamp Status Interrupt Status
When drop transmit status is enabled in MTL, this bit is set when the captured transmit timestamp is updated in the Tx timestamp status nanoseconds register (ETH_MACTXTSSNR) and Tx timestamp status seconds register (ETH_MACTXTSSSR).
 When PTP offload feature is enabled, this bit is set when the captured transmit timestamp is updated in the Tx timestamp status nanoseconds register (ETH_MACTXTSSNR) and Tx timestamp status seconds register (ETH_MACTXTSSSR), for PTO generated Delay Request and Pdelay request packets.
 This bit is cleared when the Tx timestamp status seconds register (ETH_MACTXTSSSR) is read (or write of 1 when RCWE bit in CSR software control register (ETH_MACCSRSWCR) is set).</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>ATSSTN</name>
              <description>Auxiliary Timestamp Snapshot Trigger Identifier
These bits identify the Auxiliary trigger inputs for which the timestamp available in the Auxiliary Snapshot Register is applicable. When more than one bit is set at the same time, it means that corresponding auxiliary triggers were sampled at the same clock. These bits are applicable only if the number of Auxiliary snapshots is more than one. One bit is assigned for each trigger as shown in the following list:
Bit 16: Auxiliary trigger 0
Bit 17: Auxiliary trigger 1
Bit 18: Auxiliary trigger 2
Bit 19: Auxiliary trigger 3
The software can read this register to find the triggers that are set when the timestamp is taken.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>ATSSTM</name>
              <description>Auxiliary Timestamp Snapshot Trigger Missed
This bit is set when the Auxiliary timestamp snapshot FIFO is full and external trigger was set. This indicates that the latest snapshot is not stored in the FIFO.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>ATSNS</name>
              <description>Number of Auxiliary Timestamp Snapshots
This field indicates the number of Snapshots available in the FIFO. A value equal to the depth of FIFO (4) indicates that the Auxiliary Snapshot FIFO is full. These bits are cleared (to 00000) when the Auxiliary snapshot FIFO clear bit is set.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACTXTSSNR</name>
          <displayName>MACTXTSSNR</displayName>
          <description>Tx timestamp status nanoseconds register</description>
          <addressOffset>0xB30</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXTSSLO</name>
              <description>Transmit Timestamp Status Low
This field contains the 31 bits of the Nanoseconds field of the Transmit packet's captured timestamp.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>31</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>TXTSSMIS</name>
              <description>Transmit Timestamp Status Missed
When this bit is set, it indicates one of the following:
The timestamp of the current packet is ignored if TXTSSTSM bit of the Timestamp control Register (ETH_MACTSCR) is reset
The timestamp of the previous packet is overwritten with timestamp of the current packet if TXTSSTSM bit of the Timestamp control Register (ETH_MACTSCR) is set.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACTXTSSSR</name>
          <displayName>MACTXTSSSR</displayName>
          <description>Tx timestamp status seconds register</description>
          <addressOffset>0xB34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXTSSHI</name>
              <description>Transmit Timestamp Status High
This field contains the lower 32 bits of the Seconds field of Transmit packet's captured timestamp.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACACR</name>
          <displayName>MACACR</displayName>
          <description>Auxiliary control register</description>
          <addressOffset>0xB40</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ATSFC</name>
              <description>Auxiliary Snapshot FIFO Clear
When set, this bit resets the pointers of the Auxiliary Snapshot FIFO. This bit is cleared when the pointers are reset and the FIFO is empty. When this bit is high, the auxiliary snapshots are stored in the FIFO.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ATSEN0</name>
              <description>Auxiliary Snapshot 0 Enable
This bit controls the capturing of Auxiliary Snapshot Trigger 0. When this bit is set, the auxiliary snapshot of the event on eth_ptp_trg0 input is enabled. When this bit is reset, the events on this input are ignored.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ATSEN1</name>
              <description>Auxiliary Snapshot 1 Enable
This bit controls the capturing of Auxiliary Snapshot Trigger 1. When this bit is set, the auxiliary snapshot of the event on eth_ptp_trg1 input is enabled. When this bit is reset, the events on this input are ignored.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ATSEN2</name>
              <description>Auxiliary Snapshot 2 Enable
This bit controls the capturing of Auxiliary Snapshot Trigger 2. When this bit is set, the auxiliary snapshot of the event on eth_ptp_trg2 input is enabled. When this bit is reset, the events on this input are ignored.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ATSEN3</name>
              <description>Auxiliary Snapshot 3 Enable
This bit controls the capturing of Auxiliary Snapshot Trigger 3. When this bit is set, the auxiliary snapshot of the event on eth_ptp_trg3 input is enabled. When this bit is reset, the events on this input are ignored.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACATSNR</name>
          <displayName>MACATSNR</displayName>
          <description>Auxiliary timestamp nanoseconds register</description>
          <addressOffset>0xB48</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>AUXTSLO</name>
              <description>Auxiliary Timestamp
Contains the lower 31 bits (nanoseconds field) of the auxiliary timestamp.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>31</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACATSSR</name>
          <displayName>MACATSSR</displayName>
          <description>Auxiliary timestamp seconds register</description>
          <addressOffset>0xB4C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>AUXTSHI</name>
              <description>Auxiliary Timestamp
Contains the lower 32 bits of the Seconds field of the auxiliary timestamp.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACTSIACR</name>
          <displayName>MACTSIACR</displayName>
          <description>Timestamp Ingress asymmetric correction register</description>
          <addressOffset>0xB50</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OSTIAC</name>
              <description>One-Step Timestamp Ingress Asymmetry Correction
This field contains the ingress path asymmetry value to be added to correctionField of Pdelay_Resp PTP packet. The programmed value should be in units of nanoseconds and multiplied by 2^16. For example, 2.5 ns is represented as 0x00028000. 
 The value can also be negative, which is represented in 2's complement form with bit 31 representing the sign bit.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACTSEACR</name>
          <displayName>MACTSEACR</displayName>
          <description>Timestamp Egress asymmetric correction register</description>
          <addressOffset>0xB54</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OSTEAC</name>
              <description>One-Step Timestamp Egress Asymmetry Correction
This field contains the egress path asymmetry value to be subtracted from correctionField of Pdelay_Resp PTP packet. The programmed value must be the negated value in units of nanoseconds multiplied by 2^16. 
For example, if the required correction is +2.5 ns, the programmed value must be 0xFFFD_8000, which is the 2's complement of 0x0002_8000(2.5 * 2^16). Similarly, if the required correction is -3.3 ns, the programmed value is 0x0003_4CCC (3.3 *2^16).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACTSICNR</name>
          <displayName>MACTSICNR</displayName>
          <description>Timestamp Ingress correction nanosecond register</description>
          <addressOffset>0xB58</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TSIC</name>
              <description>Timestamp Ingress Correction
This field contains the ingress path correction value as defined by the Ingress Correction expression.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACTSECNR</name>
          <displayName>MACTSECNR</displayName>
          <description>Timestamp Egress correction nanosecond register</description>
          <addressOffset>0xB5C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TSEC</name>
              <description>Timestamp Egress Correction
This field contains the nanoseconds part of the egress path correction value as defined by the Egress Correction expression.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACPPSCR</name>
          <displayName>MACPPSCR</displayName>
          <description>PPS control register</description>
          <addressOffset>0xB70</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PPSCTRL</name>
              <description>PPS Output Frequency Control
This field controls the frequency of the PPS output (eth_ptp_pps_out) signal. The default value of PPSCTRL is 0000, and the PPS output is 1 pulse (of width clk_ptp_i) every second. For other values of PPSCTRL, the PPS output becomes a generated clock of following frequencies:
..
Note: In the binary rollover mode, the PPS output (eth_ptp_pps_out) has a duty cycle of 50 percent with these frequencies. In the digital rollover mode, the PPS output frequency is an average number. The actual clock is of different frequency that gets synchronized every second. For example:
When PPSCTRL = 0001, the PPS (1 Hz) has a low period of 537 ms and a high period of 463 ms
When PPSCTRL = 0010, the PPS (2 Hz) is a sequence of 
One clock of 50 percent duty cycle and 537 ms period
Second clock of 463 ms period (268 ms low and 195 ms high)
When PPSCTRL = 0011, the PPS (4 Hz) is a sequence of
Three clocks of 50 percent duty cycle and 268 ms period
Fourth clock of 195 ms period (134 ms low and 61 ms high)
This behavior is because of the non-linear toggling of bits in the digital rollover mode in the ETH_MACSTNR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PPSEN0</name>
              <description>Flexible PPS Output Mode Enable
When this bit is set, PPSCTRL[3:0] function as PPSCMD[3:0]. When this bit is reset, PPSCTRL[3:0] function as PPSCTRL (Fixed PPS mode).</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TRGTMODSEL0</name>
              <description>Target Time Register Mode for PPS Output
This field indicates the Target Time registers (PPS target time seconds register (ETH_MACPPSTTSR) and PPS target time nanoseconds register (ETH_MACPPSTTNR)) mode for PPS output signal:</description>
              <bitOffset>5</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACPPSCR_alternate</name>
          <displayName>MACPPSCR_alternate</displayName>
          <description>PPS control register</description>
          <alternateRegister>MACPPSCR</alternateRegister>
          <addressOffset>0xB70</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PPSCMD</name>
              <description>Flexible PPS Output (eth_ptp_pps_out) Control
Programming these bits with a non-zero value instructs the MAC to initiate an event. When the command is transferred or synchronized to the PTP clock domain, these bits get cleared automatically. The software should ensure that these bits are programmed only when they are all zero. The following list describes the values of PPSCMD0:
This command generates single pulse rising at the start point defined in Target Time Registers (register 455 and 456) and of a duration defined in the PPS Width Register.
This command generates the train of pulses rising at the start point defined in the Target Time Registers and of a duration defined in the PPS Width Register and repeated at interval defined in the PPS Interval Register. By default, the PPS pulse train is free-running unless stopped by the 'Stop Pulse train at time' or 'Stop Pulse Train immediately' commands.
This command cancels the START Single Pulse and START Pulse Train commands if the system time has not crossed the programmed start time.
This command stops the train of pulses initiated by the START Pulse Train command (PPSCMD[3:0] = 0010) after the time programmed in the Target Time registers elapses.
This command immediately stops the train of pulses initiated by the START Pulse Train command (PPSCMD[3:0] = 0010).
This command cancels the STOP pulse train at time command if the programmed stop time has not elapsed. The PPS pulse train becomes free-running on the successful execution of this command.
0111 to 1111: Reserved, must not be used</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PPSEN0</name>
              <description>Flexible PPS Output Mode Enable
When this bit is set, Bits[3:0] function as PPSCMD[3:0]. When this bit is reset, Bits[3:0] function as PPSCTRL (Fixed PPS mode).</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TRGTMODSEL0</name>
              <description>Target Time Register Mode for PPS Output
This field indicates the Target Time registers (MAC registers 96 and 97) mode for PPS output signal:</description>
              <bitOffset>5</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACPPSTTSR</name>
          <displayName>MACPPSTTSR</displayName>
          <description>PPS target time seconds register</description>
          <addressOffset>0xB80</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TSTRH0</name>
              <description>PPS Target Time Seconds Register
This field stores the time in seconds. When the timestamp value matches or exceeds both Target Timestamp registers, the MAC starts or stops the PPS signal output and generates an interrupt (if enabled) based on Target Time mode selected for the corresponding PPS output in the PPS control register (ETH_MACPPSCR).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACPPSTTNR</name>
          <displayName>MACPPSTTNR</displayName>
          <description>PPS target time nanoseconds register</description>
          <addressOffset>0xB84</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TTSL0</name>
              <description>Target Time Low for PPS Register
This register stores the time in (signed) nanoseconds. When the value of the timestamp matches the value in both Target Timestamp registers, the MAC starts or stops the PPS signal output and generates an interrupt (if enabled) based on the TRGTMODSEL0 field (Bits [6:5]) in PPS control register (ETH_MACPPSCR).
When the TSCTRLSSR bit is set in the Timestamp control Register (ETH_MACTSCR), this value should not exceed 0x3B9A_C9FF. The actual start or stop time of the PPS signal output may have an error margin up to one unit of subsecond increment value.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>31</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TRGTBUSY0</name>
              <description>PPS Target Time Register Busy
The MAC sets this bit when the PPSCMD0 field in the PPS control register (ETH_MACPPSCR) is programmed to 010 or 011. Programming the PPSCMD0 field to 010 or 011 instructs the MAC to synchronize the Target Time Registers to the PTP clock domain.
The MAC clears this bit after synchronizing the Target Time Registers with the PTP clock domain The application must not update the Target Time Registers when this bit is read as 1. Otherwise, the synchronization of the previous programmed time gets corrupted.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACPPSIR</name>
          <displayName>MACPPSIR</displayName>
          <description>PPS interval register</description>
          <addressOffset>0xB88</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PPSINT0</name>
              <description>PPS Output Signal Interval
These bits store the interval between the rising edges of PPS signal output. The interval is stored in terms of number of units of subsecond increment value.
You need to program one value less than the required interval. For example, if the PTP reference clock is 50 MHz (period of 20 ns), and desired interval between the rising edges of PPS signal output is 100 ns (that is, 5 units of subsecond increment value), you should program value 4 (5-1) in this register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACPPSWR</name>
          <displayName>MACPPSWR</displayName>
          <description>PPS width register</description>
          <addressOffset>0xB8C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PPSWIDTH0</name>
              <description>PPS Output Signal Width
These bits store the width between the rising edge and corresponding falling edge of PPS signal output. The width is stored in terms of number of units of subsecond increment value.
You need to program one value less than the required interval. For example, if PTP reference clock is 50 MHz (period of 20 ns), and width between the rising and corresponding falling edges of PPS signal output is 80 ns (that is, four units of subsecond increment value), you should program value 3 (4-1) in this register.
Note: The value programmed in this register must be lesser than the value programmed in PPS interval register (ETH_MACPPSIR).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACPOCR</name>
          <displayName>MACPOCR</displayName>
          <description>PTP Offload control register</description>
          <addressOffset>0xBC0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PTOEN</name>
              <description>PTP Offload Enable
When this bit is set, the PTP Offload feature is enabled.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ASYNCEN</name>
              <description>Automatic PTP SYNC message Enable
When this bit is set, PTP SYNC message is generated periodically based on interval programmed or trigger from application, when the MAC is programmed to be in Clock Master mode.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>APDREQEN</name>
              <description>Automatic PTP Pdelay_Req message Enable
When this bit is set, PTP Pdelay_Req message is generated periodically based on interval programmed or trigger from application, when the MAC is programmed to be in Peer-to-Peer Transparent mode.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ASYNCTRIG</name>
              <description>Automatic PTP SYNC message Trigger
When this bit is set, one PTP SYNC message is transmitted. This bit is automatically cleared after the PTP SYNC message is transmitted. The application should set the ASYNCEN bit for this operation.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>APDREQTRIG</name>
              <description>Automatic PTP Pdelay_Req message Trigger
When this bit is set, one PTP Pdelay_Req message is transmitted. This bit is automatically cleared after the PTP Pdelay_Req message is transmitted. The application should set the APDREQEN bit for this operation.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DRRDIS</name>
              <description>Disable PTO Delay Request/Response response generation
When this bit is set, the Delay Request and Delay response are not generated for received SYNC and Delay request packet respectively, as required by the programmed mode.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DN</name>
              <description>Domain Number
This field indicates the domain Number in which the PTP node is operating.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACSPI0R</name>
          <displayName>MACSPI0R</displayName>
          <description>PTP Source Port Identity 0 Register</description>
          <addressOffset>0xBC4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SPI0</name>
              <description>Source Port Identity 0
This field indicates bits [31:0] of sourcePortIdentity of PTP node.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACSPI1R</name>
          <displayName>MACSPI1R</displayName>
          <description>PTP Source port identity 1 register</description>
          <addressOffset>0xBC8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SPI1</name>
              <description>Source Port Identity 1
This field indicates bits [63:32] of sourcePortIdentity of PTP node.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACSPI2R</name>
          <displayName>MACSPI2R</displayName>
          <description>PTP Source port identity 2 register</description>
          <addressOffset>0xBCC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SPI2</name>
              <description>Source Port Identity 2
This field indicates bits [79:64] of sourcePortIdentity of PTP node.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MACLMIR</name>
          <displayName>MACLMIR</displayName>
          <description>Log message interval register</description>
          <addressOffset>0xBD0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LSI</name>
              <description>Log Sync Interval
 This field indicates the periodicity of the automatically generated SYNC message when the PTP node is Master. Allowed values are -15 to 15. Negative value must be represented in 2's-complement form. For example, if the required value is -1, the value programmed must be 0xFF.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DRSYNCR</name>
              <description>Delay_Req to SYNC Ratio 
In Slave mode, it is used for controlling frequency of Delay_Req messages transmitted.
Others: Reserved, must not be used
 The master sends this information (logMinDelayReqInterval) in the DelayResp PTP messages to the slave. The reception processes this value from the received DelayResp messages and updates this field accordingly. In the Slave mode, the host must not write/update this register unless it has to override the received value. In Master mode, the sum of this field and logSyncInterval (LSI) field is provided in the logMinDelayReqInterval field of the generated multicast Delay_Resp PTP message.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LMPDRI</name>
              <description>Log Min Pdelay_Req Interval
 This field indicates logMinPdelayReqInterval of PTP node. This is used to schedule the periodic Pdelay request packet transmission. Allowed values are -15 to 15.Negative value must be represented in 2's-complement form. For example, if the required value is -1, the value programmed must be 0xFF.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MTLOMR</name>
          <displayName>MTLOMR</displayName>
          <description>Operating mode Register</description>
          <addressOffset>0xC00</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DTXSTS</name>
              <description>Drop Transmit Status
When this bit is set, the Tx packet status received from the MAC is dropped in the MTL. When this bit is reset, the Tx packet status received from the MAC is forwarded to the application.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNTPRST</name>
              <description>Counters Preset
When this bit is set:
Tx queue underflow register (ETH_MTLTXQUR) is initialized/preset to 0x7F0.
Missed Packet and Overflow Packet counters in Rx queue missed packet and overflow counter register (ETH_MTLRXQMPOCR) is initialized/preset to 0x7F0
This bit is cleared automatically.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNTCLR</name>
              <description>Counters Reset
When this bit is set, all counters are reset. This bit is cleared automatically after 1 clock cycle.
If this bit is set along with CNTPRST bit, CNTPRST has precedence.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MTLISR</name>
          <displayName>MTLISR</displayName>
          <description>Interrupt status Register</description>
          <addressOffset>0xC20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>Q0IS</name>
              <description>Queue interrupt status
This bit indicates that an interrupt has been generated by Queue. To reset this bit, read ETH_MTLQICSR register to identify the interrupt cause and clear the source.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MTLTXQOMR</name>
          <displayName>MTLTXQOMR</displayName>
          <description>Tx queue operating mode Register</description>
          <addressOffset>0xD00</addressOffset>
          <size>0x20</size>
          <resetValue>0x00070008</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FTQ</name>
              <description>Flush Transmit Queue
When this bit is set, the Tx queue controller logic is reset to its default values. Therefore, all the data in the Tx queue is lost or flushed. This bit is internally reset when the flushing operation is complete. Until this bit is reset, you should not write to the ETH_MTLTXQOMR register. The data which is already accepted by the MAC transmitter is not flushed. It is scheduled for transmission and results in underflow and runt packet transmission.
Note: The flush operation is complete only when the Tx queue is empty and the application has accepted the pending Tx Status of all transmitted packets. To complete this flush operation, the PHY Tx clock (eth_mii_tx_clk) should be active.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TSF</name>
              <description>Transmit Store and Forward
When this bit is set, the transmission starts when a full packet resides in the MTL Tx queue. When this bit is set, the TTC values specified in Bits[6:4] of this register are ignored. This bit should be changed only when the transmission is stopped.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXQEN</name>
              <description>Transmit Queue Enable
This field is used to enable/disable the transmit queue .
Others: Reserved, must not be used. 
Note: In multiple Tx queues configuration, all the queues are disabled by default. Enable the Tx queue by programming this field.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TTC</name>
              <description>Transmit Threshold Control
These bits control the threshold level of the MTL Tx queue. The transmission starts when the packet size within the MTL Tx queue is larger than the threshold. In addition, full packets with length less than the threshold are also transmitted. These bits are used only when the TSF bit is reset.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TQS</name>
              <description>Transmit queue size
This field indicates the size of the allocated transmit queues in blocks of 256 bytes.
Queue size range from 256 bytes (TQS=0b000) to 2048 bytes (TQS=0b111).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MTLTXQUR</name>
          <displayName>MTLTXQUR</displayName>
          <description>Tx queue underflow register</description>
          <addressOffset>0xD04</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>UFFRMCNT</name>
              <description>Underflow Packet Counter
This field indicates the number of packets aborted by the controller because of Tx queue Underflow. This counter is incremented each time the MAC aborts outgoing packet because of underflow. The counter is cleared when this register is read.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>UFCNTOVF</name>
              <description>Overflow Bit for Underflow Packet Counter
This bit is set every time the Tx queue Underflow Packet Counter field overflows, that is, it has crossed the maximum count. In such a scenario, the overflow packet counter is reset to all-zeros and this bit indicates that the rollover happened.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
          </fields>
        </register>
        <register>
          <name>MTLTXQDR</name>
          <displayName>MTLTXQDR</displayName>
          <description>Tx queue debug Register</description>
          <addressOffset>0xD08</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXQPAUSED</name>
              <description>Transmit Queue in Pause
When this bit is high and the Rx flow control is enabled, it indicates that the Tx queue is in the Pause condition (in the Full-duplex only mode) because of the following:
Reception of the PFC packet for the priorities assigned to the Tx queue when PFC is enabled
Reception of 802.3x Pause packet when PFC is disabled</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TRCSTS</name>
              <description>MTL Tx Queue Read Controller Status
This field indicates the state of the Tx Queue Read Controller:</description>
              <bitOffset>1</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TWCSTS</name>
              <description>MTL Tx Queue Write Controller Status
When high, this bit indicates that the MTL Tx queue Write Controller is active, and it is transferring the data to the Tx queue.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TXQSTS</name>
              <description>MTL Tx Queue Not Empty Status
When this bit is high, it indicates that the MTL Tx queue is not empty and some data is left for transmission.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TXSTSFSTS</name>
              <description>MTL Tx Status FIFO Full Status
When high, this bit indicates that the MTL Tx Status FIFO is full. Therefore, the MTL cannot accept any more packets for transmission.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PTXQ</name>
              <description>Number of Packets in the Transmit Queue
This field indicates the current number of packets in the Tx queue. 
When the DTXSTS bit of Operating mode Register (ETH_MTLOMR) register is set to 1, this field does not reflect the number of packets in the Transmit queue.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>STXSTSF</name>
              <description>Number of Status Words in Tx Status FIFO of Queue
This field indicates the current number of status in the Tx Status FIFO of this queue.
When the DTXSTS bit of ETH_MTLOMR register is set to 1, this field does not reflect the number of status words in Tx Status FIFO.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MTLQICSR</name>
          <displayName>MTLQICSR</displayName>
          <description>Queue interrupt control status Register</description>
          <addressOffset>0xD2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXUNFIS</name>
              <description>Transmit Queue Underflow Interrupt Status
This bit indicates that the Transmit Queue had an underflow while transmitting the packet. Transmission is suspended and an Underflow Error TDES3[2] is set. This bit is cleared when the application writes 1 to this bit.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXUIE</name>
              <description>Transmit Queue Underflow Interrupt Enable
When this bit is set, the Transmit Queue Underflow interrupt is enabled. When this bit is reset, the Transmit Queue Underflow interrupt is disabled.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXOVFIS</name>
              <description>Receive Queue Overflow Interrupt Status
This bit indicates that the Receive Queue had an overflow while receiving the packet. If a partial packet is transferred to the application, the overflow status is set in RDES3[21]. This bit is cleared when the application writes 1 to this bit.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXOIE</name>
              <description>Receive Queue Overflow Interrupt Enable
When this bit is set, the Receive Queue Overflow interrupt is enabled. When this bit is reset, the Receive Queue Overflow interrupt is disabled.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MTLRXQOMR</name>
          <displayName>MTLRXQOMR</displayName>
          <description>Rx queue operating mode register</description>
          <addressOffset>0xD30</addressOffset>
          <size>0x20</size>
          <resetValue>0x00700000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RTC</name>
              <description>Receive Queue Threshold Control
These bits control the threshold level of the MTL Rx queue (in bytes):
The received packet is transferred to the application or DMA when the packet size within the MTL Rx queue is larger than the threshold. In addition, full packets with length less than the threshold are automatically transferred.
This field is valid only when the RSF bit is zero. This field is ignored when the RSF bit is set to 1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FUP</name>
              <description>Forward Undersized Good Packets
When this bit is set, the Rx queue forwards the undersized good packets (packets with no error and length less than 64 bytes), including pad-bytes and CRC. When this bit is reset, the Rx queue drops all packets of less than 64 bytes, unless a packet is already transferred because of the lower value of Rx Threshold, for example, RTC = 01.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FEP</name>
              <description>Forward Error Packets
When this bit is reset, the Rx queue drops packets with error status (CRC error, receive error, watchdog timeout, or overflow). However, if the start byte (write) pointer of a packet is already transferred to the read controller side (in Threshold mode), the packet is not dropped.
When this bit is set, all packets except the runt error packets are forwarded to the application or DMA. If the RSF bit is set and the Rx queue overflows when a partial packet is written, the packet is dropped irrespective of the setting of this bit. However, if the RSF bit is reset and the Rx queue overflows when a partial packet is written, a partial packet may be forwarded to the application or DMA.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RSF</name>
              <description>Receive Queue Store and Forward
When this bit is set, the Ethernet peripheral reads a packet from the Rx queue only after the complete packet has been written to it, ignoring the RTC field of this register. When this bit is reset, the Rx queue operates in the Threshold (cut-through) mode, subject to the threshold specified by the RTC field of this register.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DIS_TCP_EF</name>
              <description>Disable Dropping of TCP/IP Checksum Error Packets
When this bit is set, the MAC does not drop the packets which only have the errors detected by the Receive Checksum Offload engine. Such packets have errors only in the encapsulated payload. There are no errors (including FCS error) in the Ethernet packet received by the MAC.
When this bit is reset, all error packets are dropped if the FEP bit is reset.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RQS</name>
              <description>Receive Queue Size
This field is read-only and the configured Rx FIFO size in blocks of 256 bytes is reflected in the reset value. The size of the Queue is (RQS + 1) * 256 bytes.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MTLRXQMPOCR</name>
          <displayName>MTLRXQMPOCR</displayName>
          <description>Rx queue missed packet and overflow counter register</description>
          <addressOffset>0xD34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OVFPKTCNT</name>
              <description>Overflow Packet Counter
This field indicates the number of packets discarded by the Ethernet peripheral because of Receive queue overflow. This counter is incremented each time the Ethernet peripheral discards an incoming packet because of overflow. This counter is reset when this register is read.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>OVFCNTOVF</name>
              <description>Overflow Counter Overflow Bit
When set, this bit indicates that the Rx Queue Overflow Packet Counter field crossed the maximum limit.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>MISPKTCNT</name>
              <description>Missed Packet Counter
This field indicates the number of packets missed by the Ethernet peripheral because the application requested to flush the packets for this queue. This counter is reset when this register is read.
This counter is incremented by 1 when the DMA discards the packet because of buffer unavailability.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>MISCNTOVF</name>
              <description>Missed Packet Counter Overflow Bit
When set, this bit indicates that the Rx Queue Missed Packet Counter crossed the maximum limit.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
          </fields>
        </register>
        <register>
          <name>MTLRXQDR</name>
          <displayName>MTLRXQDR</displayName>
          <description>Rx queue debug register</description>
          <addressOffset>0xD38</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RWCSTS</name>
              <description>MTL Rx Queue Write Controller Active Status
When high, this bit indicates that the MTL Rx queue Write controller is active, and it is transferring a received packet to the Rx queue.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RRCSTS</name>
              <description>MTL Rx Queue Read Controller State
This field gives the state of the Rx queue Read controller:</description>
              <bitOffset>1</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RXQSTS</name>
              <description>MTL Rx Queue Fill-Level Status
This field gives the status of the fill-level of the Rx queue:</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PRXQ</name>
              <description>Number of Packets in Receive Queue
This field indicates the current number of packets in the Rx queue. The theoretical maximum value for this field is 256Kbyte/16bytes = 16K Packets, that is, Max_Queue_Size/Min_Packet_Size.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>14</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMAMR</name>
          <displayName>DMAMR</displayName>
          <description>DMA mode register</description>
          <addressOffset>0x1000</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SWR</name>
              <description>Software Reset
When this bit is set, the MAC and the DMA controller reset the logic and all internal registers of the DMA, MTL, and MAC. This bit is automatically cleared after the reset operation is complete in all clock domains. Before reprogramming any register, a value of zero should be read in this bit.
Note: The reset operation is complete only when all resets in all active clock domains are deasserted. Therefore, it is essential that all PHY inputs clocks (applicable for the selected PHY interface) are present for software reset completion. The time to complete the software reset operation depends on the frequency of the slowest active clock.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DA</name>
              <description>DMA Tx or Rx Arbitration Scheme
This bit specifies the arbitration scheme between the Transmit and Receive paths of all channels:
The priority between the paths is according to the priority specified in Bits[14:12] and the priority weight is specified in the TXPR bit.
The Tx path has priority over the Rx path when the TXPR bit is set. Otherwise, the Rx path has priority over the Tx path.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXPR</name>
              <description>Transmit priority
When set, this bit indicates that the Tx DMA has higher priority than the Rx DMA during arbitration for the system-side bus.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR</name>
              <description>Priority ratio
These bits control the priority ratio in weighted round-robin arbitration between the Rx DMA and Tx DMA. These bits are valid only when the DA bit is reset. The priority ratio is Rx:Tx or Tx:Rx depending on whether the TXPR bit is reset or set.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INTM</name>
              <description>Interrupt Mode
This field defines the interrupt mode of the Ethernet peripheral.
The behavior of the interrupt signal and of the RI/TI bits in the ETH_DMACSR register changes depending on the INTM value (refer to Table 535: Transfer complete interrupt behavior).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMASBMR</name>
          <displayName>DMASBMR</displayName>
          <description>System bus mode register</description>
          <addressOffset>0x1004</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FB</name>
              <description>Fixed Burst Length
When this bit is set to 1, the AHB master will initiate burst transfers of specified length (INCRx or SINGLE).
When this bit is set to 0, the AHB master will initiate transfers of unspecified length (INCR) or SINGLE transfers.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AAL</name>
              <description>Address-Aligned Beats
When this bit is set to 1, the master performs address-aligned burst transfers on Read and Write channels.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MB</name>
              <description>Mixed Burst
When this bit is set high and the FB bit is low, the AHB master performs undefined bursts transfers (INCR) for burst length of 16 or more. For burst length of 16 or less, the AHB master performs fixed burst transfers (INCRx and SINGLE).</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RB</name>
              <description>Rebuild INCRx Burst
When this bit is set high and the AHB master gets SPLIT, RETRY, or Early Burst Termination (EBT) response, the AHB master interface rebuilds the pending beats of any initiated burst transfer with INCRx and SINGLE transfers. By default, the AHB master interface rebuilds pending beats of an EBT with an unspecified (INCR) burst.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMAISR</name>
          <displayName>DMAISR</displayName>
          <description>Interrupt status register</description>
          <addressOffset>0x1008</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DC0IS</name>
              <description>DMA Channel Interrupt Status
This bit indicates an interrupt event in DMA Channel. To reset this bit to 0, the software must read the corresponding register in DMA Channel to get the exact cause of the interrupt and clear its source.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>MTLIS</name>
              <description>MTL Interrupt Status
This bit indicates an interrupt event in the MTL. To reset this bit to 1'b0, the software must read the corresponding register in the MTL to get the exact cause of the interrupt and clear its source.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>MACIS</name>
              <description>MAC Interrupt Status
This bit indicates an interrupt event in the MAC. To reset this bit to 1'b0, the software must read the corresponding register in the MAC to get the exact cause of the interrupt and clear its source.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMADSR</name>
          <displayName>DMADSR</displayName>
          <description>Debug status register</description>
          <addressOffset>0x100C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>AXWHSTS</name>
              <description>AHB Master Write Channel
When high, this bit indicates that the write channel of the AHB master FMSs are in non-idle state.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RPS0</name>
              <description>DMA Channel Receive Process State
This field indicates the Rx DMA FSM state for Channel:
The MSB of this field always returns 0. This field does not generate an interrupt.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TPS0</name>
              <description>DMA Channel Transmit Process State
This field indicates the Tx DMA FSM state for Channel:
The MSB of this field always returns 0. This field does not generate an interrupt.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMACCR</name>
          <displayName>DMACCR</displayName>
          <description>Channel control register</description>
          <addressOffset>0x1100</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MSS</name>
              <description>Maximum Segment Size
This field specifies the maximum segment size that should be used while segmenting the packet. This field is valid only if the TSE bit of Channel transmit control register (ETH_DMACTXCR) is set.
The value programmed in this field must be more than the configured Data width in bytes. It is recommended to use a MSS value of 64 bytes or more.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>14</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PBLX8</name>
              <description>8xPBL mode
When this bit is set, the PBL value programmed in Bits[21:16] in Channel transmit control register (ETH_DMACTXCR) is multiplied eight times. Therefore, the DMA transfers the data in 8, 16, 32, 64, 128, and 256 beats depending on the PBL value.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DSL</name>
              <description>Descriptor Skip Length
This bit specifies the 32-bit word number to skip between two unchained descriptors. The address skipping starts from the end of the current descriptor to the start of the next descriptor.
When the DSL value is equal to zero, the DMA takes the descriptor table as contiguous.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMACTXCR</name>
          <displayName>DMACTXCR</displayName>
          <description>Channel transmit control register</description>
          <addressOffset>0x1104</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ST</name>
              <description>Start or Stop Transmission Command
When this bit is set, transmission is placed in the Running state. The DMA checks the Transmit list at the current position for a packet to be transmitted.
The DMA tries to acquire descriptor from either of the following positions:
The current position in the list: this is the base address of the Transmit list set by the ETH_DMACTXDLAR register.
The position at which the transmission was previously stopped
If the DMA does not own the current descriptor, the transmission enters the Suspended state and the TBU bit of the ETH_DMACSR is set. The Start Transmission command is effective only when the transmission is stopped. If the command is issued before setting the ETH_DMACTXDLAR register, the DMA behavior is unpredictable.
When this bit is reset, the transmission process is placed in the Stopped state after completing the transmission of the current packet. The Next Descriptor position in the Transmit list is saved, and it becomes the current position when the transmission is restarted. To change the list address, you need to program ETH_DMACTXDLAR register with a new value when this bit is reset. The new value is considered when this bit is set again. The stop transmission command is effective only when the transmission of the current packet is complete or the transmission is in the Suspended state.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OSF</name>
              <description>Operate on Second Packet
When this bit is set, it instructs the DMA to process the second packet of the Transmit data even before the status for the first packet is obtained.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TSE</name>
              <description>TCP Segmentation Enabled
When this bit is set, the DMA performs the TCP segmentation for packets in Channel i. The TCP segmentation is done only for those packets for which the TSE bit (TDES0[19]) is set in the Tx Normal descriptor. When this bit is set, the TxPBL value must be greater than or equal to 4.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXPBL</name>
              <description>Transmit Programmable Burst Length
These bits indicate the maximum number of beats to be transferred in one DMA data transfer. This is the maximum value that is used in a single block Read or Write. The DMA always attempts to burst as specified in PBL each time it starts a burst transfer on the application bus. You can program PBL with any of the following values: 1, 2, 4, 8, 16, or 32. Any other value results in undefined behavior.
To transfer more than 32 beats, perform the following steps:
Set the PBLx8 mode in ETH_DMACCR.
Set the TXPBL[5:0].
Note: The maximum value of TXPBL must be less than or equal to half the Tx Queue size (TQS field of Tx queue operating mode Register (ETH_MTLTXQOMR)) in terms of beats. This is required so that the Tx Queue has space to store at least another Tx PBL worth of data while the MTL Tx Queue Controller is transferring data to MAC. The total locations in Tx Queue of size 2048 bytes is 512, TXPBL and 8xPBL needs to be programmed to less than or equal to 512/2.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMACRXCR</name>
          <displayName>DMACRXCR</displayName>
          <description>Channel receive control register</description>
          <addressOffset>0x1108</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SR</name>
              <description>Start or Stop Receive
When this bit is set, the DMA tries to acquire the descriptor from the Receive list and processes the incoming packets.
The DMA tries to acquire descriptor from either of the following positions:
The current position in the list: this is the address set by the Channel Rx descriptor list address register (ETH_DMACRXDLAR).
The position at which the Rx process was previously stopped
If the DMA does not own the current descriptor, the reception is suspended and the RBU bit of the ETH_DMACSR is set. The Start Receive command is effective only when the reception is stopped. If the command is issued before setting the Channel Rx descriptor list address register (ETH_DMACRXDLAR), the DMA behavior is unpredictable.
When this bit is reset, the Rx DMA operation is stopped after the transfer of the current packet. The next descriptor position in the Receive list is saved, and it becomes the current position after the Rx process is restarted. The Stop Receive command is effective only when the Rx process is in the Running (waiting for Rx packet) or Suspended state.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RBSZ</name>
              <description>Receive Buffer size
This field indicates the size of the Rx buffers specified in bytes. The maximum buffer size is limited to 16 Kbytes. 
Note: The buffer size must be a multiple of 4. This is required even if the value of buffer address pointer is not aligned to bus width. If the buffer size is not a multiple of 4, it may result into an undefined behavior.
Note: The LSB bits (1:0) are ignored and the DMA internally takes the LSB bits as all-zero. Therefore, these LSB bits are read-only (RO).</description>
              <bitOffset>1</bitOffset>
              <bitWidth>14</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXPBL</name>
              <description>Receive Programmable Burst Length
These bits indicate the maximum number of beats to be transferred in one DMA data transfer. This is the maximum value that is used in a single block Read or Write. The DMA always attempts to burst as specified in PBL each time it starts a burst transfer on the application bus. You can program PBL with any of the following values: 1, 2, 4, 8, 16, or 32. Any other value results in undefined behavior.
To transfer more than 32 beats, perform the following steps:
Set the PBLx8 mode in the ETH_DMACCR.
Set the RXPBL[5:0].
Note: The maximum value of RXPBL must be less than or equal to half the Rx Queue size (RQS field of Rx queue operating mode register (ETH_MTLRXQOMR)) in terms of beats. This is required so that the Rx Queue has space to store at least another Rx PBL worth of data while the MTL Rx Queue Controller is transferring data to MAC.The total locations in Rx Queue of size 2048 bytes is 512, RXPBL and 8xPBL needs to be programmed to less than or equal to 512/2.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RPF</name>
              <description>DMA Rx Channel Packet Flush
When this bit is set to 1, the Ethernet peripheral automatically flushes the packet from the Rx queues destined to DMA Rx Channel when the DMA Rx Channel is stopped after a system bus error has occurred. When this bit remains set and the DMA is re-started by the software driver, the packets residing in the Rx Queues that were received when this RxDMA was stopped, are flushed out. The packets that are received by the MAC after the RxDMA is re-started are routed to the RxDMA. The flushing happens on the Read side of the Rx queue.
When this bit is set to 0 the Ethernet peripheral does not flush the packet in the Rx queue destined to DMA Rx Channel after the DMA is stopped due to a system bus error.
This might cause head-of-line blocking in the corresponding RxQueue.
Note: The stopping of packet flow from a Rx DMA Channel to the application by setting RPF works only when there is one-to-one mapping of Rx Queue to Rx DMA channels. In Dynamic mapping mode, setting RPF bit in ETH_DMACRXCR register might flush packets from unintended Rx Queues which are destined to the stopped Rx DMA Channel.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMACTXDLAR</name>
          <displayName>DMACTXDLAR</displayName>
          <description>Channel Tx descriptor list address register</description>
          <addressOffset>0x1114</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TDESLA</name>
              <description>Start of Transmit List
This field contains the base address of the first descriptor in the Transmit descriptor list. The DMA ignores the LSB bits (1:0) for 32-bit bus width and internally takes these bits as all-zero. Therefore, these LSB bits are read-only (RO).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMACRXDLAR</name>
          <displayName>DMACRXDLAR</displayName>
          <description>Channel Rx descriptor list address register</description>
          <addressOffset>0x111C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RDESLA</name>
              <description>Start of Receive List
This field contains the base address of the first descriptor in the Rx Descriptor list. The DMA ignores the LSB bits (1:0) for 32-bit bus width and internally takes these bits as all-zero. Therefore, these LSB bits are read-only (RO).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMACTXDTPR</name>
          <displayName>DMACTXDTPR</displayName>
          <description>Channel Tx descriptor tail pointer register</description>
          <addressOffset>0x1120</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TDT</name>
              <description>Transmit Descriptor Tail Pointer
This field contains the tail pointer for the Tx descriptor ring. The software writes the tail pointer to add more descriptors to the Tx channel. The hardware tries to transmit all packets referenced by the descriptors between the head and the tail pointer registers.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMACRXDTPR</name>
          <displayName>DMACRXDTPR</displayName>
          <description>Channel Rx descriptor tail pointer register</description>
          <addressOffset>0x1128</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RDT</name>
              <description>Receive Descriptor Tail Pointer
This field contains the tail pointer for the Rx descriptor ring. The software writes the tail pointer to add more descriptors to the Rx channel. The hardware tries to write all received packets to the descriptors referenced between the head and the tail pointer registers.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMACTXRLR</name>
          <displayName>DMACTXRLR</displayName>
          <description>Channel Tx descriptor ring length register</description>
          <addressOffset>0x112C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TDRL</name>
              <description>Transmit Descriptor Ring Length
This field sets the maximum number of Tx descriptors in the circular descriptor ring. The maximum number of descriptors is limited to 1K descriptors. It is recommended to put a minimum ring descriptor length of 4.
For example, you can program any value up to 0x3FF in this field. This field is 10 bits wide, if you program 0x3FF, you can have 1024 descriptors. If you want to have 10 descriptors, program it to a value of 0x9.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMACRXRLR</name>
          <displayName>DMACRXRLR</displayName>
          <description>Channel Rx descriptor ring length register</description>
          <addressOffset>0x1130</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RDRL</name>
              <description>Receive Descriptor Ring Length
This register sets the maximum number of Rx descriptors in the circular descriptor ring. The maximum number of descriptors is limited to 1K descriptors.
For example, you can program any value up to 0x3FF in this field. This field is 10-bit wide. If you program 0x3FF, you can have 1024 descriptors. If you want to have 10 descriptors, program it to a value of 0x9.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ARBS</name>
              <description>Alternate Receive Buffer Size
Indicates size in bytes for Buffer 1 when ARBS[7:0] is programmed to a non-zero value.
When ARBS[7:0] = 0, Rx Buffer1 and Rx Buffer2 sizes are based on RBSZ[13:0] field of Channel receive control register (ETH_DMACRXCR).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMACIER</name>
          <displayName>DMACIER</displayName>
          <description>Channel interrupt enable register</description>
          <addressOffset>0x1134</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TIE</name>
              <description>Transmit Interrupt Enable
When this bit is set along with the NIE bit, the Transmit Interrupt is enabled. When this bit is reset, the Transmit Interrupt is disabled.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXSE</name>
              <description>Transmit Stopped Enable
When this bit is set along with the AIE bit, the Transmission Stopped interrupt is enabled. When this bit is reset, the Transmission Stopped interrupt is disabled.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TBUE</name>
              <description>Transmit Buffer Unavailable Enable
When this bit is set along with the NIE bit, the Transmit Buffer Unavailable interrupt is enabled. When this bit is reset, the Transmit Buffer Unavailable interrupt is disabled.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RIE</name>
              <description>Receive Interrupt Enable
When this bit is set along with the NIE bit, the Receive Interrupt is enabled. When this bit is reset, the Receive Interrupt is disabled.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RBUE</name>
              <description>Receive Buffer Unavailable Enable
When this bit is set along with the AIE bit, the Receive Buffer Unavailable interrupt is enabled. When this bit is reset, the Receive Buffer Unavailable interrupt is disabled.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RSE</name>
              <description>Receive Stopped Enable
When this bit is set along with the AIE bit, the Receive Stopped Interrupt is enabled. When this bit is reset, the Receive Stopped interrupt is disabled.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RWTE</name>
              <description>Receive Watchdog Timeout Enable
When this bit is set along with the AIE bit, the Receive Watchdog Timeout interrupt is enabled. When this bit is reset, the Receive Watchdog Timeout interrupt is disabled.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ETIE</name>
              <description>Early Transmit Interrupt Enable
When this bit is set along with the AIE bit, the Early Transmit interrupt is enabled. When this bit is reset, the Early Transmit interrupt is disabled.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ERIE</name>
              <description>Early Receive Interrupt Enable
When this bit is set along with the NIE bit, the Early Receive interrupt is enabled. When this bit is reset, the Early Receive interrupt is disabled.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FBEE</name>
              <description>Fatal Bus Error Enable
When this bit is set along with the AIE bit, the Fatal Bus error interrupt is enabled. When this bit is reset, the Fatal Bus Error error interrupt is disabled.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CDEE</name>
              <description>Context Descriptor Error Enable
When this bit is set along with the AIE bit, the Context Descriptor error interrupt is enabled. When this bit is reset, the Context Descriptor error interrupt is disabled.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AIE</name>
              <description>Abnormal Interrupt Summary Enable
When this bit is set, the abnormal interrupt summary is enabled. This bit enables the following interrupts in the Channel status register (ETH_DMACSR):
Bit 1: Transmit Process Stopped
Bit 7: Rx Buffer Unavailable
Bit 8: Receive Process Stopped
Bit 9: Receive Watchdog Timeout
Bit 10: Early Transmit Interrupt
Bit 12: Fatal Bus Error
When this bit is reset, the abnormal interrupt summary is disabled.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NIE</name>
              <description>Normal Interrupt Summary Enable
When this bit is set, the normal interrupt summary is enabled. This bit enables the following interrupts in the Channel status register (ETH_DMACSR):
Bit 0: Transmit Interrupt
Bit 2: Transmit Buffer Unavailable
Bit 6: Receive Interrupt
Bit 11: Early Receive Interrupt
When this bit is reset, the normal interrupt summary is disabled.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMACRXIWTR</name>
          <displayName>DMACRXIWTR</displayName>
          <description>Channel Rx interrupt watchdog timer register</description>
          <addressOffset>0x1138</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RWT</name>
              <description>Receive Interrupt Watchdog Timer Count
This field indicates the number of system clock cycles, multiplied by factor indicated in RWTU field, for which the watchdog timer is set.
The watchdog timer is triggered with the programmed value after the Rx DMA completes the transfer of a packet for which the RI bit is not set in the ETH_DMACSR, because of the setting of Interrupt Enable bit in the corresponding descriptor RDES3[30].
When the watchdog timer runs out, the RI bit is set and the timer is stopped. The watchdog timer is reset when the RI bit is set high because of automatic setting of RI as per the Interrupt Enable bit RDES3[30] of any received packet.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RWTU</name>
              <description>Receive Interrupt Watchdog Timer Count Units
This field indicates the number of system clock cycles corresponding to one unit in RWT[7:0] field. 
For example, when RWT[7:0] = 2 and RWTU[1:0] = 1, the watchdog timer is set for 2 * 512 = 1024 system clock cycles.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMACCATXDR</name>
          <displayName>DMACCATXDR</displayName>
          <description>Channel current application transmit descriptor register</description>
          <addressOffset>0x1144</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CURTDESAPTR</name>
              <description>Application Transmit Descriptor Address Pointer
The DMA updates this pointer during Tx operation. This pointer is cleared on reset.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMACCARXDR</name>
          <displayName>DMACCARXDR</displayName>
          <description>Channel current application receive descriptor register</description>
          <addressOffset>0x114C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CURRDESAPTR</name>
              <description>Application Receive Descriptor Address Pointer
The DMA updates this pointer during Rx operation. This pointer is cleared on reset.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMACCATXBR</name>
          <displayName>DMACCATXBR</displayName>
          <description>Channel current application transmit buffer register</description>
          <addressOffset>0x1154</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CURTBUFAPTR</name>
              <description>Application Transmit Buffer Address Pointer
The DMA updates this pointer during Tx operation. This pointer is cleared on reset.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMACCARXBR</name>
          <displayName>DMACCARXBR</displayName>
          <description>Channel current application receive buffer register</description>
          <addressOffset>0x115C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CURRBUFAPTR</name>
              <description>Application Receive Buffer Address Pointer
The DMA updates this pointer during Rx operation. This pointer is cleared on reset.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMACSR</name>
          <displayName>DMACSR</displayName>
          <description>Channel status register</description>
          <addressOffset>0x1160</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TI</name>
              <description>Transmit Interrupt
This bit indicates that the packet transmission is complete. When transmission is complete, Bit 31 of TDES3 is reset in the last descriptor, and the specific packet status information is updated in the descriptor.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TPS</name>
              <description>Transmit Process Stopped
This bit is set when the transmission is stopped.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TBU</name>
              <description>Transmit Buffer Unavailable
This bit indicates that the application owns the next descriptor in the Transmit list, and the DMA cannot acquire it. Transmission is suspended. The TPSi field of the Debug status register (ETH_DMADSR) register explains the Transmit Process state transitions.
To resume processing the Transmit descriptors, the application should do the following:
1. Change the ownership of the descriptor by setting Bit 31 of TDES3.
2. Issue a Transmit Poll Demand command.
For ring mode, the application should advance the Transmit Descriptor Tail Pointer register of a channel.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RI</name>
              <description>Receive Interrupt
This bit indicates that the packet reception is complete. When packet reception is complete, Bit 31 of RDES1 is reset in the last descriptor, and the specific packet status information is updated in the descriptor.
The reception remains in the Running state.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RBU</name>
              <description>Receive Buffer Unavailable
This bit indicates that the application owns the next descriptor in the Receive list, and the DMA cannot acquire it. The Rx process is suspended. To resume processing Rx descriptors, the application should change the ownership of the descriptor and issue a Receive Poll Demand command. If this command is not issued, the Rx process resumes when the next recognized incoming packet is received. In ring mode, the application should advance the Receive Descriptor Tail Pointer register of a channel. This bit is set only when the DMA owns the previous Rx descriptor.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RPS</name>
              <description>Receive Process Stopped
This bit is asserted when the Rx process enters the Stopped state.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RWT</name>
              <description>Receive Watchdog Timeout
This bit is asserted when a packet with length greater than 2,048 bytes (10,240 bytes when Jumbo Packet mode is enabled) is received.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ETI</name>
              <description>Early Transmit Interrupt
This bit indicates that the packet to be transmitted is fully transferred to the MTL Tx FIFO.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ERI</name>
              <description>Early Receive Interrupt
This bit indicates that the DMA filled the first data buffer of the packet.The RI bit of this register automatically clears this bit.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FBE</name>
              <description>Fatal Bus Error
This bit indicates that a bus error occurred (as described in the EB field). When this bit is set, the corresponding DMA channel engine disables all bus accesses.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CDE</name>
              <description>Context Descriptor Error
This bit indicates that the DMA Tx/Rx engine received a descriptor error, which indicates invalid context in the middle of packet flow (intermediate descriptor) or all ones descriptor in Tx case and on Rx side it indicates DMA has read a descriptor with either of the buffer address as ones which is considered to be invalid.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AIS</name>
              <description>Abnormal Interrupt Summary
Abnormal Interrupt Summary bit value is the logical OR of the following when the corresponding interrupt bits are enabled in the ETH_DMACIER register:
Bit 1: Transmit Process Stopped
Bit 7: Receive Buffer Unavailable
Bit 8: Receive Process Stopped
Bit 10: Early Transmit Interrupt
Bit 12: Fatal Bus Error
Bit 13: Context Descriptor Error
Only unmasked bits affect the Abnormal Interrupt Summary bit.
This is a sticky bit. You must clear this bit (by writing 1 to this bit) each time a corresponding bit, which causes AIS to be set, is cleared.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NIS</name>
              <description>Normal Interrupt Summary
Normal Interrupt Summary bit value is the logical OR of the following bits when the corresponding interrupt bits are enabled in the ETH_DMACIER register:
Bit 0: Transmit Interrupt
Bit 2: Transmit Buffer Unavailable
Bit 6: Receive Interrupt
Bit 11: Early Receive Interrupt
Only unmasked bits (interrupts for which interrupt enable is set in ETH_DMACIER register) affect the Normal Interrupt Summary bit.
This is a sticky bit. You must clear this bit (by writing 1 to this bit) each time a corresponding bit which causes NIS to be set is cleared.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TEB</name>
              <description>Tx DMA Error Bits 
This field indicates the type of error that caused a Bus Error. For example, error response on the AHB interface.
Bit[2]: Error during data transfer by Tx DMA when 1, no Error during data transfer by Tx DMA when 0
Bit[1]: Error during descriptor access when 1, Error during data buffer access when 0
Bit[0]: Error during read transfer when 1, Error during write transfer when 0
This field is valid only when the FBE bit is set. This field does not generate an interrupt.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>REB</name>
              <description>Rx DMA Error Bits
This field indicates the type of error that caused a Bus Error. For example, error response on the AHB interface.
Bit [2]: Error during data transfer by Rx DMA when 1, no Error during data transfer by Rx DMA when 0.
Bit[1]: Error during descriptor access when 1, Error during data buffer access when 0
Bit[0]: Error during read transfer when 1, Error during write transfer when 0
This field is valid only when the FBE bit is set. This field does not generate an interrupt.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMACMFCR</name>
          <displayName>DMACMFCR</displayName>
          <description>Channel missed frame count register</description>
          <addressOffset>0x116C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MFC</name>
              <description>Dropped Packet Counters
This counter indicates the number of packet counters that are dropped by the DMA either because of bus error or because of programing RPF field in Channel receive control register (ETH_DMACRXCR). The counter gets cleared when this register is read.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
            <field>
              <name>MFCO</name>
              <description>Overflow status of the MFC Counter
When this bit is set then the MFC counter does not get incremented further. The bit gets cleared when this register is read.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <readAction>clear</readAction>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>EXTI</name>
      <description>Extended interrupt and event controller</description>
      <groupName>EXTI</groupName>
      <baseAddress>0x58000000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>PVD_AVD</name>
        <description>PVD and AVD through the EXTI line</description>
        <value>0</value>
      </interrupt>
      <interrupt>
        <name>LOOKUP</name>
        <description>LOOKUP/Overstack</description>
        <value>6</value>
      </interrupt>
      <interrupt>
        <name>CACHE_ECC</name>
        <description>Error ECC cache</description>
        <value>7</value>
      </interrupt>
      <interrupt>
        <name>ECC_FPU</name>
        <description>ECC/FPU/ All flag from exec</description>
        <value>9</value>
      </interrupt>
      <interrupt>
        <name>FPU</name>
        <description>FPU safety Flag</description>
        <value>10</value>
      </interrupt>
      <interrupt>
        <name>EXTI0</name>
        <description>EXTI Line 0 interrupt through the EXTI line</description>
        <value>16</value>
      </interrupt>
      <interrupt>
        <name>EXTI1</name>
        <description>EXTI Line 1 interrupt through the EXTI line</description>
        <value>17</value>
      </interrupt>
      <interrupt>
        <name>EXTI2</name>
        <description>EXTI Line 2 interrupt through the EXTI line</description>
        <value>18</value>
      </interrupt>
      <interrupt>
        <name>EXTI3</name>
        <description>EXTI Line 3 interrupt through the EXTI line</description>
        <value>19</value>
      </interrupt>
      <interrupt>
        <name>EXTI4</name>
        <description>EXTI Line 4 interrupt through the EXTI line</description>
        <value>20</value>
      </interrupt>
      <interrupt>
        <name>EXTI5</name>
        <description>EXTI Line 5 interrupt through the EXTI line</description>
        <value>21</value>
      </interrupt>
      <interrupt>
        <name>EXTI6</name>
        <description>EXTI Line 6 interrupt through the EXTI line</description>
        <value>22</value>
      </interrupt>
      <interrupt>
        <name>EXTI7</name>
        <description>EXTI Line 7 interrupt through the EXTI line</description>
        <value>23</value>
      </interrupt>
      <interrupt>
        <name>EXTI8</name>
        <description>EXTI Line 8 interrupt through the EXTI line</description>
        <value>24</value>
      </interrupt>
      <interrupt>
        <name>EXTI9</name>
        <description>EXTI Line 9 interrupt through the EXTI line</description>
        <value>25</value>
      </interrupt>
      <interrupt>
        <name>EXTI10</name>
        <description>EXTI Line 10 interrupt through the EXTI line</description>
        <value>26</value>
      </interrupt>
      <interrupt>
        <name>EXTI11</name>
        <description>EXTI Line 11 interrupt through the EXTI line</description>
        <value>27</value>
      </interrupt>
      <interrupt>
        <name>EXTI12</name>
        <description>EXTI Line 12 interrupt through the EXTI line</description>
        <value>28</value>
      </interrupt>
      <interrupt>
        <name>EXTI13</name>
        <description>EXTI Line 13 interrupt through the EXTI line</description>
        <value>29</value>
      </interrupt>
      <interrupt>
        <name>EXTI14</name>
        <description>EXTI Line 14 interrupt through the EXTI line</description>
        <value>30</value>
      </interrupt>
      <interrupt>
        <name>EXTI15</name>
        <description>EXTI Line 15 interrupt through the EXTI line</description>
        <value>31</value>
      </interrupt>
      <interrupt>
        <name>WAKEUP_PIN</name>
        <description>Interrupt for 4 wakeup pins (1, 2, 3, 4)through EXTI line</description>
        <value>132</value>
      </interrupt>
      <registers>
        <register>
          <name>RTSR1</name>
          <displayName>RTSR1</displayName>
          <description>EXTI rising trigger selection register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TR0</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR1</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR2</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR3</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR4</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR5</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR6</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR7</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR8</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR9</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR10</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR11</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR12</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR13</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR14</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR15</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR16</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR17</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR18</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR19</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR20</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR21</name>
              <description>Rising trigger event configuration bit of configurable event input x.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>FTSR1</name>
          <displayName>FTSR1</displayName>
          <description>EXTI falling trigger selection register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TR0</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR1</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR2</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR3</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR4</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR5</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR6</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR7</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR8</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR9</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR10</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR11</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR12</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR13</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR14</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR15</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR16</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR17</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR18</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR19</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR20</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR21</name>
              <description>Falling trigger event configuration bit of configurable event input x.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SWIER1</name>
          <displayName>SWIER1</displayName>
          <description>EXTI software interrupt event register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SWIER0</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER1</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER2</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER3</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER4</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER5</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER6</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER7</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER8</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER9</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER10</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER11</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER12</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER13</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER14</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER15</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER16</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER17</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER18</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER19</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER20</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER21</name>
              <description>Software interrupt on line x
This bitfield alway returns 0 when read.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RTSR2</name>
          <displayName>RTSR2</displayName>
          <description>EXTI rising trigger selection register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TR34</name>
              <description>Rising trigger event configuration bit of configurable event input x+32.&lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR46</name>
              <description>Rising trigger event configuration bit of configurable event input x+32.&lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR49</name>
              <description>Rising trigger event configuration bit of configurable event input x+32.&lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR51</name>
              <description>Rising trigger event configuration bit of configurable event input x+32.&lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR54</name>
              <description>Rising trigger event configuration bit of configurable event input x+32.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>FTSR2</name>
          <displayName>FTSR2</displayName>
          <description>EXTI falling trigger selection register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TR34</name>
              <description>Falling trigger event configuration bit of configurable event input x+32.&lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR46</name>
              <description>Falling trigger event configuration bit of configurable event input x+32.&lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR49</name>
              <description>Falling trigger event configuration bit of configurable event input x+32.&lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR51</name>
              <description>Falling trigger event configuration bit of configurable event input x+32.&lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TR54</name>
              <description>Falling trigger event configuration bit of configurable event input x+32.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SWIER2</name>
          <displayName>SWIER2</displayName>
          <description>EXTI software interrupt event register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SWIER34</name>
              <description>Software interrupt on line x+32
Always returns 0 when read.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER46</name>
              <description>Software interrupt on line x+32
Always returns 0 when read.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER49</name>
              <description>Software interrupt on line x+32
Always returns 0 when read.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER51</name>
              <description>Software interrupt on line x+32
Always returns 0 when read.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SWIER54</name>
              <description>Software interrupt on line x+32
Always returns 0 when read.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IMR1</name>
          <displayName>IMR1</displayName>
          <description>EXTI interrupt mask register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0xFFC00000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MR0</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR1</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR2</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR3</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR4</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR5</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR6</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR7</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR8</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR9</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR10</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR11</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR12</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR13</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR14</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR15</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR16</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR17</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR18</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR19</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR20</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR21</name>
              <description>CPU interrupt mask on configurable event input x</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR22</name>
              <description>CPU interrupt mask on direct event input x</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR23</name>
              <description>CPU interrupt mask on direct event input x</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR24</name>
              <description>CPU interrupt mask on direct event input x</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR25</name>
              <description>CPU interrupt mask on direct event input x</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR26</name>
              <description>CPU interrupt mask on direct event input x</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR27</name>
              <description>CPU interrupt mask on direct event input x</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR28</name>
              <description>CPU interrupt mask on direct event input x</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR29</name>
              <description>CPU interrupt mask on direct event input x</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR30</name>
              <description>CPU interrupt mask on direct event input x</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR31</name>
              <description>CPU interrupt mask on direct event input x</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>EMR1</name>
          <displayName>EMR1</displayName>
          <description>EXTI event mask register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MR0</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR1</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR2</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR3</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR4</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR5</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR6</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR7</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR8</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR9</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR10</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR11</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR12</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR13</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR14</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR15</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR16</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR17</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR18</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR19</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR20</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR21</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR22</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR23</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR24</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR25</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR26</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR27</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR28</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR29</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR30</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR31</name>
              <description>CPU event mask on event input x</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PR1</name>
          <displayName>PR1</displayName>
          <description>EXTI pending register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>PR0</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR1</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR2</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR3</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR4</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR5</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR6</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR7</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR8</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR9</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR10</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR11</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR12</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR13</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR14</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR15</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR16</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR17</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR18</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR19</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR20</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR21</name>
              <description>Configurable event inputs x Pending bit
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IMR2</name>
          <displayName>IMR2</displayName>
          <description>EXTI interrupt mask register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0xFFF5FFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MR32</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR33</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR34</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR35</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR36</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR37</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR38</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR39</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR40</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR41</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR42</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR43</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR44</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR45</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR46</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR47</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR48</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR49</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR50</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR51</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR52</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR53</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR54</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR55</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR56</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR57</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR58</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR59</name>
              <description>CPU interrupt mask on direct event input i</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>EMR2</name>
          <displayName>EMR2</displayName>
          <description>EXTI event mask register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MR32</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR33</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR34</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR35</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR36</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR37</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR38</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR39</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR40</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR41</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR42</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR43</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR44</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR45</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR46</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR47</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR48</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR49</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR50</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR51</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR52</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR53</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR54</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR55</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR56</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR57</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR58</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MR59</name>
              <description>CPU event mask on event input i</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PR2</name>
          <displayName>PR2</displayName>
          <description>EXTI pending register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>PR34</name>
              <description>Configurable event inputs x+32 Pending bit 
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR46</name>
              <description>Configurable event inputs x+32 Pending bit 
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR49</name>
              <description>Configurable event inputs x+32 Pending bit 
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR51</name>
              <description>Configurable event inputs x+32 Pending bit 
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PR54</name>
              <description>Configurable event inputs x+32 Pending bit 
This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IMR3</name>
          <displayName>IMR3</displayName>
          <description>EXTI interrupt mask register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <resetValue>0x0F8BFFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MR77</name>
              <description>CPU interrupt mask on direct event input x+64</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>EMR3</name>
          <displayName>EMR3</displayName>
          <description>EXTI event mask register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MR77</name>
              <description>CPU event mask on event input x+64</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>FDCAN1</name>
      <groupName>FDCAN</groupName>
      <baseAddress>0x4000A000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>FDCAN1_IT0</name>
        <description>FDCAN1 Interrupt 0</description>
        <value>152</value>
      </interrupt>
      <interrupt>
        <name>FDCAN1_IT1</name>
        <description>FDCAN1 Interrupt 1</description>
        <value>153</value>
      </interrupt>
      <registers>
        <register>
          <name>CREL</name>
          <displayName>CREL</displayName>
          <description>FDCAN Core Release Register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x32141218</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DAY</name>
              <description>18</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>MON</name>
              <description>12</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>YEAR</name>
              <description>4</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SUBSTEP</name>
              <description>1</description>
              <bitOffset>20</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>STEP</name>
              <description>2</description>
              <bitOffset>24</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>REL</name>
              <description>3</description>
              <bitOffset>28</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ENDN</name>
          <displayName>ENDN</displayName>
          <description>FDCAN Core Release Register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x87654321</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ETV</name>
              <description>Endianness test value
The endianness test value is 0x8765 4321.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DBTP</name>
          <displayName>DBTP</displayName>
          <description>FDCAN data bit timing and prescaler register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000A33</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DSJW</name>
              <description>Synchronization jump width
Must always be smaller than DTSEG2, valid values are 0 to 15. The value used by the hardware is the one programmed, incremented by 1: t&lt;sub&gt;SJW&lt;/sub&gt; = (DSJW + 1) x tq.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTSEG2</name>
              <description>Data time segment after sample point
Valid values are 0 to 15. The value used by the hardware is the one programmed, incremented by 1, i.e. t&lt;sub&gt;BS2&lt;/sub&gt; = (DTSEG2 + 1) x tq.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTSEG1</name>
              <description>Data time segment before sample point
Valid values are 0 to 31. The value used by the hardware is the one programmed, incremented by 1, i.e. t&lt;sub&gt;BS1&lt;/sub&gt; = (DTSEG1 + 1) x tq.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBRP</name>
              <description>Data bit rate prescaler
The value by which the oscillator frequency is divided to generate the bit time quanta. The bit time is built up from a multiple of this quanta. Valid values for the Baud Rate Prescaler are 0 to 31. The hardware interpreters this value as the value programmed plus 1.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TDC</name>
              <description>Transceiver delay compensation</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TEST</name>
          <displayName>TEST</displayName>
          <description>FDCAN test register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LBCK</name>
              <description>Loop back mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TX</name>
              <description>Control of transmit pin</description>
              <bitOffset>5</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RX</name>
              <description>Receive pin
Monitors the actual value of pin FDCANx_RX</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RWD</name>
          <displayName>RWD</displayName>
          <description>FDCAN RAM watchdog register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>WDC</name>
              <description>Watchdog configuration
Start value of the message RAM watchdog counter. With the reset value of 00, the counter is disabled.
These are protected write (P) bits, write access is possible only when the bit 1 [CCE] and bit 0 [INIT] of FDCAN_CCCR register are set to 1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WDV</name>
              <description>Watchdog value
Actual message RAM watchdog counter value.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CCCR</name>
          <displayName>CCCR</displayName>
          <description>FDCAN CC control register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000001</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INIT</name>
              <description>Initialization</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CCE</name>
              <description>Configuration change enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ASM</name>
              <description>ASM restricted operation mode
The restricted operation mode is intended for applications that adapt themselves to different CAN bit rates. The application tests different bit rates and leaves the Restricted operation Mode after it has received a valid frame. In the optional Restricted operation Mode the node is able to transmit and receive data and remote frames and it gives acknowledge to valid frames, but it does not send active error frames or overload frames. In case of an error condition or overload condition, it does not send dominant bits, instead it waits for the occurrence of bus idle condition to resynchronize itself to the CAN communication. The error counters are not incremented. Bit ASM can only be set by software when both CCE and INIT are set to 1. The bit can be reset by the software at any time.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CSA</name>
              <description>Clock stop acknowledge</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CSR</name>
              <description>Clock stop request</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MON</name>
              <description>Bus monitoring mode
Bit MON can only be set by software when both CCE and INIT are set to 1. The bit can be reset by the Host at any time.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DAR</name>
              <description>Disable automatic retransmission</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TEST</name>
              <description>Test mode enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FDOE</name>
              <description>FD operation enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BRSE</name>
              <description>FDCAN bit rate switching</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PXHD</name>
              <description>Protocol exception handling disable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EFBI</name>
              <description>Edge filtering during bus integration</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXP</name>
              <description>If this bit is set, the FDCAN pauses for two CAN bit times before starting the next transmission after successfully transmitting a frame.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NISO</name>
              <description>Non ISO operation
If this bit is set, the FDCAN uses the CAN FD frame format as specified by the Bosch CAN FD Specification V1.0.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>NBTP</name>
          <displayName>NBTP</displayName>
          <description>FDCAN nominal bit timing and prescaler register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x06000A03</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>NTSEG2</name>
              <description>Nominal time segment after sample point
Valid values are 0 to 127. The actual interpretation by the hardware of this value is such that one more than the programmed value is used.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NTSEG1</name>
              <description>Nominal time segment before sample point
Valid values are 0 to 255. The actual interpretation by the hardware of this value is such that one more than the programmed value is used.
These are protected write (P) bits, write access is possible only when the bit 1 [CCE] and bit 0 [INIT] of CCCR register are set to 1.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NBRP</name>
              <description>Bit rate prescaler
Value by which the oscillator frequency is divided for generating the bit time quanta. The bit time is built up from a multiple of this quanta. Valid values are 0 to 511. The actual interpretation by the hardware of this value is such that one more than the value programmed here is used.
These are protected write (P) bits, write access is possible only when the bit 1 [CCE] and bit 0 [INIT] of CCCR register are set to 1.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>9</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NSJW</name>
              <description>Nominal (re)synchronization jump width
Valid values are 0 to 127. The actual interpretation by the hardware of this value is such that the used value is the one programmed incremented by one.
These are protected write (P) bits, write access is possible only when the bit 1 [CCE] and bit 0 [INIT] of CCCR register are set to 1.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TSCC</name>
          <displayName>TSCC</displayName>
          <description>FDCAN Timestamp Counter Configuration Register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TSS</name>
              <description>Timestamp select
These are protected write (P) bits, write access is possible only when the bit 1 [CCE] and bit 0 [INIT] of CCCR register are set to 1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TCP</name>
              <description>Timestamp counter prescaler</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TSCV</name>
          <displayName>TSCV</displayName>
          <description>FDCAN Timestamp Counter Value Register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TSC</name>
              <description>Timestamp counter
The internal/external timestamp counter value is captured on start of frame (both Rx and Tx). When TSCC[TSS] = 01, the timestamp counter is incremented in multiples of CAN bit times [1..16]  depending on the configuration of TSCC[TCP]. A wrap around sets interrupt flag IR[TSW]. Write access resets the counter to 0.
When TSCC.TSS = 10, TSC reflects the external timestamp counter value. A write access has no impact.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TOCC</name>
          <displayName>TOCC</displayName>
          <description>FDCAN timeout counter configuration register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0xFFFF0000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ETOC</name>
              <description>Timeout counter enable
This is a protected write (P) bit, write access is possible only when the bit 1 [CCE] and bit 0 [INIT] of CCCR register are set to 1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TOS</name>
              <description>Timeout select
When operating in Continuous mode, a write to TOCV presets the counter to the value configured by TOCC[TOP] and continues down-counting. When the timeout counter is controlled by one of the FIFOs, an empty FIFO presets the counter to the value configured by TOCC[TOP]. Down-counting is started when the first FIFO element is stored.
These are protected write (P) bits, write access is possible only when the bit 1 [CCE] and bit 0 [INIT] of CCCR register are set to 1.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TOP</name>
              <description>Timeout period
Start value of the timeout counter (down-counter). Configures the timeout period.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TOCV</name>
          <displayName>TOCV</displayName>
          <description>FDCAN Timeout Counter Value Register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x0000FFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TOC</name>
              <description>Timeout counter
The timeout counter is decremented in multiples of CAN bit times [1..16]  depending on the configuration of TSCC.TCP. When decremented to 0, interrupt flag IR.TOO is set and the timeout counter is stopped. Start and reset/restart conditions are configured via TOCC.TOS.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ECR</name>
          <displayName>ECR</displayName>
          <description>FDCAN Error Counter Register</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TEC</name>
              <description>Transmit error counter
Actual state of the transmit error counter, values between 0 and 255.
When CCCR.ASM is set, the CAN protocol controller does not increment TEC and REC when a CAN protocol error is detected, but CEL is still incremented.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>REC</name>
              <description>Receive error counter
Actual state of the receive error counter, values between 0 and 127.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RP</name>
              <description>Receive error passive</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CEL</name>
              <description>CAN error logging
The counter is incremented each time when a CAN protocol error causes the transmit error counter or the receive error counter to be incremented. It is reset by read access to CEL. The counter stops at 0xFF; the next increment of TEC or REC sets interrupt flag IR[ELO].
Access type is RX: reset on read.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PSR</name>
          <displayName>PSR</displayName>
          <description>FDCAN Protocol Status Register</description>
          <addressOffset>0x44</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000707</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LEC</name>
              <description>Last error code
The LEC indicates the type of the last error to occur on the CAN bus. This field is cleared to 0 when a message has been transferred (reception or transmission) without error.
Access type is RS: set on read.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACT</name>
              <description>Activity
Monitors the modules CAN communication state.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EP</name>
              <description>Error passive</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EW</name>
              <description>Warning Sstatus</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>BO</name>
              <description>Bus_Off status</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DLEC</name>
              <description>Data last error code
Type of last error that occurred in the data phase of a FDCAN format frame with its BRS flag set. Coding is the same as for LEC. This field is cleared to 0 when a FDCAN format frame with its BRS flag set has been transferred (reception or transmission) without error.
Access type is RS: set on read.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RESI</name>
              <description>ESI flag of last received FDCAN message
This bit is set together with REDL, independent of acceptance filtering.
Access type is RX: reset on read.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RBRS</name>
              <description>BRS flag of last received FDCAN message
This bit is set together with REDL, independent of acceptance filtering.
Access type is RX: reset on read.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>REDL</name>
              <description>Received FDCAN message
This bit is set independent of acceptance filtering.
Access type is RX: reset on read.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PXE</name>
              <description>Protocol exception event</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TDCV</name>
              <description>Transmitter delay compensation value
Position of the secondary sample point, defined by the sum of the measured delay from FDCAN_TX to FDCAN_RX and TDCR.TDCO. The SSP position is, in the data phase, the number of minimum time quanta (mtq) between the start of the transmitted bit and the secondary sample point. Valid values are 0 to 127 mtq.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TDCR</name>
          <displayName>TDCR</displayName>
          <description>FDCAN Transmitter Delay Compensation Register</description>
          <addressOffset>0x48</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TDCF</name>
              <description>Transmitter delay compensation filter window length
Defines the minimum value for the SSP position, dominant edges on FDCAN_RX that would result in an earlier SSP position are ignored for transmitter delay measurements.
These are protected write (P) bits, which means that write access by the bits is possible only when the bit 1 [CCE] and bit 0 [INIT] of CCCR register are set to 1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TDCO</name>
              <description>Transmitter delay compensation offset
Offset value defining the distance between the measured delay from FDCAN_TX to FDCAN_RX and the secondary sample point. Valid values are 0 to 127 mtq.
These are protected write (P) bits, which means that write access by the bits is possible only when the bit 1 [CCE] and bit 0 [INIT] of CCCR register are set to 1.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IR</name>
          <displayName>IR</displayName>
          <description>FDCAN interrupt register</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RF0N</name>
              <description>Rx FIFO 0 new message</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RF0F</name>
              <description>Rx FIFO 0 full</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RF0L</name>
              <description>Rx FIFO 0 message lost</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RF1N</name>
              <description>Rx FIFO 1 new message</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RF1F</name>
              <description>Rx FIFO 1 full</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RF1L</name>
              <description>Rx FIFO 1 message lost</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HPM</name>
              <description>High-priority message</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TC</name>
              <description>Transmission completed</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TCF</name>
              <description>Transmission cancellation finished</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TFE</name>
              <description>Tx FIFO empty</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TEFN</name>
              <description>Tx event FIFO New Entry</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TEFF</name>
              <description>Tx event FIFO full</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TEFL</name>
              <description>Tx event FIFO element lost</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TSW</name>
              <description>Timestamp wraparound</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MRAF</name>
              <description>Message RAM access failure
The flag is set when the Rx handler:
has not completed acceptance filtering or storage of an accepted message until the arbitration field of the following message has been received. In this case acceptance filtering or message storage is aborted and the Rx handler starts processing of the following message. 
was unable to write a message to the message RAM. In this case message storage is aborted.
In both cases the FIFO put index is not updated. The partly stored message is overwritten when the next message is stored to this location.
The flag is also set when the Tx Handler was not able to read a message from the Message RAM in time. In this case message transmission is aborted. In case of a Tx Handler access failure the FDCAN is switched into Restricted operation Mode (see Restricted operation mode). To leave Restricted operation Mode, the Host CPU has to reset CCCR.ASM.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TOO</name>
              <description>Timeout occurred</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ELO</name>
              <description>Error logging overflow</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EP</name>
              <description>Error passive</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EW</name>
              <description>Warning status</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BO</name>
              <description>Bus_Off status</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WDI</name>
              <description>Watchdog interrupt</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PEA</name>
              <description>Protocol error in arbitration phase (nominal bit time is used)</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PED</name>
              <description>Protocol error in data phase (data bit time is used)</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ARA</name>
              <description>Access to reserved address</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IE</name>
          <displayName>IE</displayName>
          <description>FDCAN interrupt enable register</description>
          <addressOffset>0x54</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RF0NE</name>
              <description>Rx FIFO 0 new message interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RF0FE</name>
              <description>Rx FIFO 0 full interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RF0LE</name>
              <description>Rx FIFO 0 message lost interrupt enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RF1NE</name>
              <description>Rx FIFO 1 new message interrupt enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RF1FE</name>
              <description>Rx FIFO 1 full interrupt enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RF1LE</name>
              <description>Rx FIFO 1 message lost interrupt enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HPME</name>
              <description>High-priority message interrupt enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TCE</name>
              <description>Transmission completed interrupt enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TCFE</name>
              <description>Transmission cancellation finished interrupt enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TFEE</name>
              <description>Tx FIFO empty interrupt enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TEFNE</name>
              <description>Tx event FIFO new entry interrupt enable</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TEFFE</name>
              <description>Tx event FIFO full interrupt enable</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TEFLE</name>
              <description>Tx event FIFO element lost interrupt enable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TSWE</name>
              <description>Timestamp wraparound interrupt enable</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MRAFE</name>
              <description>Message RAM access failure interrupt enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TOOE</name>
              <description>Timeout occurred interrupt enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ELOE</name>
              <description>Error logging overflow interrupt enable</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPE</name>
              <description>Error passive interrupt enable</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EWE</name>
              <description>Warning status interrupt enable</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BOE</name>
              <description>Bus_Off status</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WDIE</name>
              <description>Watchdog interrupt enable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PEAE</name>
              <description>Protocol error in arbitration phase enable</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PEDE</name>
              <description>Protocol error in data phase enable</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ARAE</name>
              <description>Access to reserved address enable</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ILS</name>
          <displayName>ILS</displayName>
          <description>FDCAN interrupt line select register</description>
          <addressOffset>0x58</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXFIFO0</name>
              <description>RX FIFO bit grouping the following interruption
RF0LL: Rx FIFO 0 message lost interrupt line
RF0FL: Rx FIFO 0 full interrupt line
RF0NL: Rx FIFO 0 new message interrupt line</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXFIFO1</name>
              <description>RX FIFO bit grouping the following interruption
RF1LL: Rx FIFO 1 message lost interrupt line
RF1FL: Rx FIFO 1 full interrupt line
RF1NL: Rx FIFO 1 new message interrupt line</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMSG</name>
              <description>Status message bit grouping the following interruption
TCFL: Transmission cancellation finished interrupt line
TCL: Transmission completed interrupt line
HPML: High-priority message interrupt line</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TFERR</name>
              <description>Tx FIFO ERROR grouping the following interruption
TEFLL: Tx event FIFO element lost interrupt line
TEFFL: Tx event FIFO full interrupt line
TEFNL: Tx event FIFO new entry interrupt line
TFEL: Tx FIFO empty interrupt line</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MISC</name>
              <description>Interrupt regrouping the following interruption
TOOL: Timeout occurred interrupt line
MRAFL: Message RAM access failure interrupt line
TSWL: Timestamp wraparound interrupt line</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BERR</name>
              <description>Bit and line error grouping the following interruption 
EPL Error passive interrupt line
ELOL: Error logging overflow interrupt line</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PERR</name>
              <description>Protocol error grouping the following interruption 
ARAL: Access to reserved address line
PEDL: Protocol error in data phase line
PEAL: Protocol error in arbitration phase line
WDIL: Watchdog interrupt line
BOL: Bus_Off status
EWL: Warning status interrupt line</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ILE</name>
          <displayName>ILE</displayName>
          <description>FDCAN interrupt line enable register</description>
          <addressOffset>0x5C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>EINT0</name>
              <description>Enable interrupt line 0</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EINT1</name>
              <description>Enable interrupt line 1</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RXGFC</name>
          <displayName>RXGFC</displayName>
          <description>FDCAN global filter configuration register</description>
          <addressOffset>0x80</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RRFE</name>
              <description>Reject remote frames extended
These are protected write (P) bits, which means that write access by the bits is possible only when the bit 1 [CCE] and bit 0 [INIT] of CCCR register are set to 1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RRFS</name>
              <description>Reject remote frames standard
These are protected write (P) bits, which means that write access by the bits is possible only when the bit 1 [CCE] and bit 0 [INIT] of CCCR register are set to 1.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ANFE</name>
              <description>Accept non-matching frames extended
Defines how received messages with 29-bit IDs that do not match any element of the filter list are treated.
These are protected write (P) bits, which means that write access by the bits is possible only when the bit 1 [CCE] and bit 0 [INIT] of CCCR register are set to 1.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ANFS</name>
              <description>Accept Non-matching frames standard
Defines how received messages with 11-bit IDs that do not match any element of the filter list are treated.
These are protected write (P) bits, which means that write access by the bits is possible only when the bit 1 [CCE] and bit 0 [INIT] of CCCR register are set to 1.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>F1OM</name>
              <description>FIFO 1 operation mode (overwrite or blocking)
This is a protected write (P) bits, which means that write access by the bits is possible only when the bit 1 [CCE] and bit 0 [INIT] of CCCR register are set to 1.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>F0OM</name>
              <description>FIFO 0 operation mode (overwrite or blocking)
This is protected write (P) bits, which means that write access by the bits is possible only when the bit 1 [CCE] and bit 0 [INIT] of CCCR register are set to 1.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSS</name>
              <description>List size standard
1 to 28: Number of standard message ID filter elements
&gt;28: Values greater than 28 are interpreted as 28.
These are protected write (P) bits, which means that write access by the bits is possible only when the bit 1 [CCE] and bit 0 [INIT] of CCCR register are set to 1.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSE</name>
              <description>List size extended
1 to 8: Number of extended message ID filter elements
&gt;8: Values greater than 8 are interpreted as 8.
These are protected write (P) bits, which means that write access by the bits is possible only when the bit 1 [CCE] and bit 0 [INIT] of CCCR register are set to 1.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>XIDAM</name>
          <displayName>XIDAM</displayName>
          <description>FDCAN Extended ID and Mask Register</description>
          <addressOffset>0x84</addressOffset>
          <size>0x20</size>
          <resetValue>0x1FFFFFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>EIDM</name>
              <description>Extended ID mask
For acceptance filtering of extended frames the Extended ID AND Mask is AND-ed with the Message ID of a received frame. Intended for masking of 29-bit IDs in SAE J1939. With the reset value of all bits set to 1 the mask is not active.
These are protected write (P) bits, which means that write access by the bits is possible only when the bit 1 [CCE] and bit 0 [INIT] of CCCR register are set to 1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>29</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HPMS</name>
          <displayName>HPMS</displayName>
          <description>FDCAN high-priority message status register</description>
          <addressOffset>0x88</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BIDX</name>
              <description>Buffer index
Index of Rx FIFO element to which the message was stored. Only valid when MSI[1] = 1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>MSI</name>
              <description>Message storage indicator</description>
              <bitOffset>6</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>FIDX</name>
              <description>Filter index
Index of matching filter element. Range is 0 to RXGFC[LSS] - 1 or RXGFC[LSE] - 1.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>FLST</name>
              <description>Filter list
Indicates the filter list of the matching filter element.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RXF0S</name>
          <displayName>RXF0S</displayName>
          <description>FDCAN Rx FIFO 0 Status Register</description>
          <addressOffset>0x90</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>F0FL</name>
              <description>Rx FIFO 0 fill level
Number of elements stored in Rx FIFO 0, range 0 to 3.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>F0GI</name>
              <description>Rx FIFO 0 get index
Rx FIFO 0 read index pointer, range 0 to 2.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>F0PI</name>
              <description>Rx FIFO 0 put index
Rx FIFO 0 write index pointer, range 0 to 2.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>F0F</name>
              <description>Rx FIFO 0 full</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RF0L</name>
              <description>Rx FIFO 0 message lost
This bit is a copy of interrupt flag IR[RF0L]. When IR[RF0L] is reset, this bit is also reset.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RXF0A</name>
          <displayName>RXF0A</displayName>
          <description>CAN Rx FIFO 0 Acknowledge Register</description>
          <addressOffset>0x94</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>F0AI</name>
              <description>Rx FIFO 0 acknowledge index
After the Host has read a message or a sequence of messages from Rx FIFO 0 it has to write the buffer index of the last element read from Rx FIFO 0 to F0AI. This sets the Rx FIFO 0 get index RXF0S[F0GI] to F0AI + 1 and update the FIFO 0 fill level RXF0S[F0FL].</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RXF1S</name>
          <displayName>RXF1S</displayName>
          <description>FDCAN Rx FIFO 1 Status Register</description>
          <addressOffset>0x98</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>F1FL</name>
              <description>Rx FIFO 1 fill level
Number of elements stored in Rx FIFO 1, range 0 to 3.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>F1GI</name>
              <description>Rx FIFO 1 get index
Rx FIFO 1 read index pointer, range 0 to 2.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>F1PI</name>
              <description>Rx FIFO 1 put index
Rx FIFO 1 write index pointer, range 0 to 2.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>F1F</name>
              <description>Rx FIFO 1 full</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RF1L</name>
              <description>Rx FIFO 1 message lost
This bit is a copy of interrupt flag IR[RF1L]. When IR[RF1L] is reset, this bit is also reset.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RXF1A</name>
          <displayName>RXF1A</displayName>
          <description>FDCAN Rx FIFO 1 Acknowledge Register</description>
          <addressOffset>0x9C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>F1AI</name>
              <description>Rx FIFO 1 acknowledge index
After the Host has read a message or a sequence of messages from Rx FIFO 1 it has to write the buffer index of the last element read from Rx FIFO 1 to F1AI. This sets the Rx FIFO 1 get index RXF1S[F1GI] to F1AI + 1 and update the FIFO 1 Fill Level RXF1S[F1FL].</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TXBC</name>
          <displayName>TXBC</displayName>
          <description>FDCAN Tx Buffer Configuration Register</description>
          <addressOffset>0xC0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TFQM</name>
              <description>Tx FIFO/queue mode
This is a protected write (P) bit, which means that write access by the bits is possible only when the bit 1 [CCE] and bit 0 [INIT] of CCCR register are set to 1.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TXFQS</name>
          <displayName>TXFQS</displayName>
          <description>FDCAN Tx FIFO/queue status register</description>
          <addressOffset>0xC4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000003</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TFFL</name>
              <description>Tx FIFO free level
Number of consecutive free Tx FIFO elements starting from TFGI, range 0 to 3. Read as 0 when Tx queue operation is configured (TXBC[TFQM] = 1).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TFGI</name>
              <description>Tx FIFO get index
Tx FIFO read index pointer, range 0 to 3. Read as 0 when Tx queue operation is configured (TXBC.TFQM = 1)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TFQPI</name>
              <description>Tx FIFO/queue put index
Tx FIFO/queue write index pointer, range 0 to 3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TFQF</name>
              <description>Tx FIFO/queue full</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TXBRP</name>
          <displayName>TXBRP</displayName>
          <description>FDCAN Tx Buffer Request Pending Register</description>
          <addressOffset>0xC8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TRP</name>
              <description>Transmission request pending
Each Tx buffer has its own transmission request pending bit. The bits are set via register TXBAR. The bits are reset after a requested transmission has completed or has been canceled via register TXBCR.
After a TXBRP bit has been set, a Tx scan is started to check for the pending Tx request with the highest priority (Tx buffer with lowest Message ID).
A cancellation request resets the corresponding transmission request pending bit of register TXBRP. In case a transmission has already been started when a cancellation is requested, this is done at the end of the transmission, regardless whether the transmission was successful or not. The cancellation request bits are reset directly after the corresponding TXBRP bit has been reset.
After a cancellation has been requested, a finished cancellation is signaled via TXBCF
after successful transmission together with the corresponding TXBTO bit
when the transmission has not yet been started at the point of cancellation
when the transmission has been aborted due to lost arbitration
when an error occurred during frame transmission
In DAR mode all transmissions are automatically canceled if they are not successful. The corresponding TXBCF bit is set for all unsuccessful transmissions.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TXBAR</name>
          <displayName>TXBAR</displayName>
          <description>FDCAN Tx Buffer Add Request Register</description>
          <addressOffset>0xCC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>AR</name>
              <description>Add request
Each Tx buffer has its own add request bit. Writing a 1 sets the corresponding add request bit; writing a 0 has no impact. This enables the Host to set transmission requests for multiple Tx buffers with one write to TXBAR. When no Tx scan is running, the bits are reset immediately, else the bits remain set until the Tx scan process has completed.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TXBCR</name>
          <displayName>TXBCR</displayName>
          <description>FDCAN Tx Buffer Cancellation Request Register</description>
          <addressOffset>0xD0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CR</name>
              <description>Cancellation request
Each Tx buffer has its own cancellation request bit. Writing a 1 sets the corresponding CR bit; writing a 0 has no impact.
This enables the Host to set cancellation requests for multiple Tx buffers with one write to TXBCR. The bits remain set until the corresponding TXBRP bit is reset.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TXBTO</name>
          <displayName>TXBTO</displayName>
          <description>FDCAN Tx Buffer Transmission Occurred Register</description>
          <addressOffset>0xD4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TO</name>
              <description>Transmission occurred.
Each Tx buffer has its own TO bit. The bits are set when the corresponding TXBRP bit is cleared after a successful transmission. The bits are reset when a new transmission is requested by writing a 1 to the corresponding bit of register TXBAR.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TXBCF</name>
          <displayName>TXBCF</displayName>
          <description>FDCAN Tx Buffer Cancellation Finished Register</description>
          <addressOffset>0xD8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CF</name>
              <description>Cancellation finished
Each Tx buffer has its own CF bit. The bits are set when the corresponding TXBRP bit is cleared after a cancellation was requested via TXBCR. In case the corresponding TXBRP bit was not set at the point of cancellation, CF is set immediately. The bits are reset when a new transmission is requested by writing a 1 to the corresponding bit of register TXBAR.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TXBTIE</name>
          <displayName>TXBTIE</displayName>
          <description>FDCAN Tx Buffer Transmission Interrupt Enable Register</description>
          <addressOffset>0xDC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TIE</name>
              <description>Transmission interrupt enable
Each Tx buffer has its own TIE bit.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TXBCIE</name>
          <displayName>TXBCIE</displayName>
          <description>FDCAN Tx Buffer Cancellation Finished Interrupt Enable Register</description>
          <addressOffset>0xE0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CFIE</name>
              <description>Cancellation finished interrupt enable.
Each Tx buffer has its own CFIE bit.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TXEFS</name>
          <displayName>TXEFS</displayName>
          <description>FDCAN Tx Event FIFO Status Register</description>
          <addressOffset>0xE4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>EFFL</name>
              <description>Event FIFO fill level
Number of elements stored in Tx event FIFO, range 0 to 3.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EFGI</name>
              <description>Event FIFO get index
Tx event FIFO read index pointer, range 0 to 3.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EFPI</name>
              <description>Event FIFO put index
Tx event FIFO write index pointer, range 0 to 3.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EFF</name>
              <description>Event FIFO full</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TEFL</name>
              <description>Tx event FIFO element lost
This bit is a copy of interrupt flag IR[TEFL]. When IR[TEFL] is reset, this bit is also reset.
0 No Tx event FIFO element lost
1 Tx event FIFO element lost, also set after write attempt to Tx event FIFO of size 0.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TXEFA</name>
          <displayName>TXEFA</displayName>
          <description>FDCAN Tx Event FIFO Acknowledge Register</description>
          <addressOffset>0xE8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>EFAI</name>
              <description>Event FIFO acknowledge index
After the Host has read an element or a sequence of elements from the Tx event FIFO, it has to write the index of the last element read from Tx event FIFO to EFAI. This sets the Tx event FIFO get index TXEFS[EFGI] to EFAI + 1 and updates the FIFO 0 fill level TXEFS[EFFL].</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CKDIV</name>
          <displayName>CKDIV</displayName>
          <description>FDCAN CFG clock divider Register</description>
          <addressOffset>0x100</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PDIV</name>
              <description>input clock divider
The APB clock could be divided prior to be used by the CAN sub system. The rate must be computed using the divider output clock.
These are protected write (P) bits, which means that write access by the bits is possible only when the bit 1 [CCE] and bit 0 [INIT] of CCCR register are set to 1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="FDCAN1">
      <name>FDCAN2</name>
      <baseAddress>0x4000A400</baseAddress>
      <interrupt>
        <name>FDCAN2_IT0</name>
        <description>FDCAN2 Interrupt 0</description>
        <value>154</value>
      </interrupt>
      <interrupt>
        <name>FDCAN2_IT1</name>
        <description>FDCAN2 Interrupt 1</description>
        <value>155</value>
      </interrupt>
    </peripheral>
    <peripheral>
      <name>FLASH</name>
      <description>Embedded Flash memory</description>
      <groupName>FLASH</groupName>
      <baseAddress>0x52002000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x1000</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>FLASH</name>
        <description>Flash memory</description>
        <value>8</value>
      </interrupt>
      <registers>
        <register>
          <name>ACR</name>
          <displayName>ACR</displayName>
          <description>Access control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000013</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LATENCY</name>
              <description>Read latency
These bits are used to control the number of wait states used during read operations on both non-volatile memory banks. The application software has to program them to the correct value depending on the embedded Flash memory interface frequency and voltage conditions. Please refer to Table 27 for details.
...
Note: Embedded Flash does not verify that the configuration is correct.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WRHIGHFREQ</name>
              <description>Flash signal delay 
These bits are used to control the delay between non-volatile memory signals during programming operations. Application software has to program them to the correct value depending on the embedded Flash memory interface frequency. Please refer to Table 27 for details.
Note: Embedded Flash does not verify that the configuration is correct.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>KEYR</name>
          <displayName>KEYR</displayName>
          <description>FLASH control key register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CUKEY</name>
              <description>Control unlock key
Following values must be written to FLASH_KEYR consecutively to unlock FLASH_CR register:
1st key = 0x4567 0123
2nd key = 0xCDEF 89AB
Reads to this register returns zero. If above sequence is wrong or performed twice, the FLASH_CR register is locked until the next system reset, and access to it generates a bus error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>FLASH control register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000001</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LOCK</name>
              <description>Configuration lock bit 
When this bit is set write to all other bits in this register, and to FLASH_IER register, are ignored. 
Clearing this bit requires the correct write sequence to FLASH_KEYR register (see this register for details). If a wrong sequence is executed, or if the unlock sequence is performed twice, this bit remains locked until the next system reset. 
During the write access to set LOCK bit from 0 to 1, it is possible to change the other bits of this register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PG</name>
              <description>Internal buffer control bit
Setting this bit enables internal buffer for write operations. This allows preparing program operations even if a sector or bank erase is ongoing. When PG is cleared, the internal buffer is disabled for write operations, and all the data stored in the buffer but not sent to the operation queue are lost.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SER</name>
              <description>Sector erase request 
Setting this bit requests a sector erase. 
Write protection error is triggered when a sector erase is required on at least one protected sector.
BER has a higher priority than SER: if both bits are set, the embedded Flash memory executes a bank erase.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BER</name>
              <description>Bank erase request
Setting this bit requests a bank erase operation (user Flash memory only).
Write protection error is triggered when a bank erase is required and some sectors are protected.
BER has a higher priority than SER: if both are set, the embedded Flash memory executes a bank erase.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FW</name>
              <description>Force write
This bit forces a write operation even if the write buffer is not full. In this case all bits not written are set by hardware. The embedded Flash memory resets FW when the corresponding operation has been acknowledged.
Note: Using a force-write operation prevents the application from updating later the missing bits with something else than 1, because it is likely that it will lead to permanent ECC error.
Write forcing is effective only if the write buffer is not empty (in particular, FW does not start several write operations when the force-write operations are performed consecutively).</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>START</name>
              <description>Erase start control bit
This bit is used to start a sector erase or a bank erase operation. The embedded Flash memory resets START when the corresponding operation has been acknowledged. The user application cannot access any embedded Flash memory register until the operation is acknowledged.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SSN</name>
              <description>Sector erase selection number 
These bits are used to select the target sector for an erase operation (they are unused otherwise). 
...</description>
              <bitOffset>6</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PG_OTP</name>
              <description>Program Enable for OTP Area
Set this bit to enable write operations to OTP area.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CRC_EN</name>
              <description>CRC enable
Setting this bit enables the CRC calculation. CRC_EN does not start CRC calculation but enables CRC configuration through FLASH_CRCCR register. 
When CRC calculation is performed it can be disabled by clearing CRC_EN bit. Doing so sets CRCDATA to 0x0, clears CRC configuration and resets the content of FLASH_CRCDATAR register.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ALL_BANKS</name>
              <description>All banks select bit
When this bit is set the erase is done on all Flash Memory sectors.
ALL_BANKS is used only if a bank erase is required (BER=1). In all others operations, this control bit is ignored.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>FLASH status register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BUSY</name>
              <description>Busy flag
This bit is set when an effective write, erase or option byte change operation is ongoing. It is possible to know what type of operation is being executed reading the flags IS_PROGRAM, IS_ERASE and IS_OPTCHANGE.
BUSY cannot be cleared by application. It is automatically reset by hardware every time a step in a write, erase or option byte change operation completes. It is not recommended to do software polling on BUSY to know when one operation completed because, depending of operation, more pulses are possible for one only operation. For software polling it is therefore better to use QW flag or to check the EOPF flag.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>WBNE</name>
              <description>Write buffer not empty flag 
This bit is set when the embedded Flash memory is waiting for new data to complete the write buffer. In this state, the write buffer is not empty. WBNE is reset by hardware each time the write buffer is complete or the write buffer is emptied following one of the event below:
the application software forces the write operation using FW bit in FLASH_CR
the embedded Flash memory detects an error that involves data loss
the application software has disabled write operations
This bit cannot be forced to 0. To reset it, clear the write buffer by performing any of the above listed actions, or send the missing data.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>QW</name>
              <description>Wait queue flag
This bit is set when a write, erase or option byte change operation is pending in the command queue buffer. It is not possible to know what type of programming operation is present in the queue.
This flag is reset by hardware when all write, erase or option byte change operations have been executed and thus removed from the waiting queue(s). This bit cannot be forced to 0. It is reset after a deterministic time if no other operations are requested.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CRC_BUSY</name>
              <description>CRC busy flag 
This bit is set when a CRC calculation is ongoing. This bit cannot be forced to 0. The user must wait until the CRC calculation has completed or disable CRC computation using CRC_EN bit in FLASH_CR register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>IS_PROGRAM</name>
              <description>Is a program
This bit is set together with BUSY when a program operation is ongoing. It is cleared when BUSY is cleared.
This flag can also raise with IS_OPTCHANGE, because  an program operation can happen during an option change.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>IS_ERASE</name>
              <description>Is an erase
This bit is set together with BUSY when an erase operation is ongoing. It is cleared when BUSY is cleared.
This flag can also raise with IS_OPTCHANGE, because  an erase operation can happen during an option change.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>IS_OPTCHANGE</name>
              <description>Is an option change
This bit is set together with BUSY when an option change operation is ongoing. It is cleared when BUSY is cleared.
This flag can also raise with IS_PROGRAM or IS_ERASE, because a program or erase step is ongoing during option change.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RCHECKF</name>
              <description>Root code check flag
This bit returns the status of the root code check performed following the first access to the Flash.
This bit is cleared with RCHECKF bit in FLASH_FCR (optional).</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>FCR</name>
          <displayName>FCR</displayName>
          <description>FLASH status register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RCHECKF</name>
              <description>Root code check flag clear
Set this bit to clear RCHECKF bit in FLASH_SR.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IER</name>
          <displayName>IER</displayName>
          <description>FLASH interrupt enable register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>EOPIE</name>
              <description>End-of-program interrupt control bit</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WRPERRIE</name>
              <description>Write protection error interrupt enable bit</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PGSERRIE</name>
              <description>Programming sequence error interrupt enable bit</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STRBERRIE</name>
              <description>Strobe error interrupt enable bit</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OBLERRIE</name>
              <description>Option byte loading error interrupt enable bit</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INCERRIE</name>
              <description>Inconsistency error interrupt enable bit</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RDSERRIE</name>
              <description>Read security error interrupt enable bit</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SNECCERRIE</name>
              <description>ECC single correction error interrupt enable bit</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBECCERRIE</name>
              <description>ECC double detection error interrupt enable bit</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CRCENDIE</name>
              <description>CRC end of calculation interrupt enable bit</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CRCRDERRIE</name>
              <description>CRC read error interrupt enable bit</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ISR</name>
          <displayName>ISR</displayName>
          <description>FLASH interrupt status register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>EOPF</name>
              <description>End-of-program flag
This bit is set when a programming operation completes. An interrupt is generated if the EOPIE is set. It is not necessary to reset EOPF before starting a new operation. Setting EOPF bit in FLASH_ICR register clears this bit.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>WRPERRF</name>
              <description>Write protection error flag
This bit is set when a protection error occurs during a program operation. An interrupt is also generated if the WRPERRIE is set. Setting WRPERRF bit in FLASH_ICR register clears this bit.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PGSERRF</name>
              <description>Programming sequence error flag
This bit is set when a sequence error occurs. An interrupt is generated if the PGSERRIE bit is set. Setting PGSERRF bit in FLASH_ICR register clears this bit.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>STRBERRF</name>
              <description>Strobe error flag 
This bit is set when a strobe error occurs (when the master attempts to write several times the same byte in the write buffer). An interrupt is generated if the STRBERRIE bit is set. Setting STRBERRF bit in FLASH_ICR register clears this bit.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OBLERRF</name>
              <description>Option byte loading error flag
This bit is set when an error is found during the option byte loading sequence. An interrupt is generated if OBLERRIE is set. 
Setting OBLERRF bit in the FLASH_ICR register clears this bit.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>INCERRF</name>
              <description>Inconsistency error flag
This bit is set when a inconsistency error occurs. An interrupt is generated if INCERRIE is set. Setting INCERRF bit in the FLASH_ICR register clears this bit.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RDSERRF</name>
              <description>Read security error flag
This bit is set when a read security error occurs (read access to hide protected area with incorrect hide protection level). An interrupt is generated if RDSERRIE is set. Setting RDSERRF bit in FLASH_ICR register clears this bit.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SNECCERRF</name>
              <description>ECC single error flag
This bit is set when an ECC single correction error occurs during a read operation. An interrupt is generated if SNECCERRIE is set. Setting SNECCERRF bit in FLASH_ICR register clears this bit.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DBECCERRF</name>
              <description>ECC double error flag
This bit is set when an ECC double detection error occurs during a read operation. An interrupt is generated if DBECCERRIE is set. Setting DBECCERRF bit in FLASH_ICR register clears this bit.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CRCENDF</name>
              <description>CRC end flag
This bit is set when the CRC computation has completed. An interrupt is generated if CRCENDIE is set. It is not necessary to reset CRCEND before restarting CRC computation. Setting CRCENDF bit in FLASH_ICR register clears this bit.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CRCRDERRF</name>
              <description>CRC read error flag 
This bit is set when a word is found read protected during a CRC operation. An interrupt is generated if CRCRDIE is set. Setting CRCRDERRF bit in FLASH_ICR register clears this bit.
This flag is valid only when CRCEND bit is set.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ICR</name>
          <displayName>ICR</displayName>
          <description>FLASH interrupt clear register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>EOPF</name>
              <description>End-of-program flag clear
Setting this bit clears EOPF flag in FLASH_ISR register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>WRPERRF</name>
              <description>Write protection error flag clear
Setting this bit clears WRPERRF flag in FLASH_ISR register.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>PGSERRF</name>
              <description>Programming sequence error flag clear
Setting this bit clears PGSERRF flag in FLASH_ISR register.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>STRBERRF</name>
              <description>Strobe error flag clear
Setting this bit clears STRBERRF flag in FLASH_ISR register.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>OBLERRF</name>
              <description>Option byte loading error flag clear
Setting this bit clears OBLERRF flag in FLASH_ISR register.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>INCERRF</name>
              <description>Inconsistency error flag clear
Setting this bit clears INCERRF flag in FLASH_ISR register.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>RDSERRF</name>
              <description>Read security error flag clear
Setting this bit clears RDSERRF flag in FLASH_ISR register.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNECCERRF</name>
              <description>ECC single error flag clear
Setting this bit clears SNECCERRF flag in FLASH_ISR register. If the DBECCERRF flag of FLASH_ISR register is also cleared, FLASH_ECCFAR register is reset to zero as well.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>DBECCERRF</name>
              <description>ECC double error flag clear
Setting this bit clears DBECCERRF flag in FLASH_ISR register. If the SNECCERRF flag of FLASH_ISR register is also cleared, FLASH_ECCFAR register is reset to zero as well.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CRCENDF</name>
              <description>CRC end flag clear
Setting this bit clears CRCENDF flag in FLASH_ISR register.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CRCRDERRF</name>
              <description>CRC error flag clear
Setting this bit clears CRCRDERRF flag in FLASH_ISR register.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CRCCR</name>
          <displayName>CRCCR</displayName>
          <description>FLASH CRC control register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <resetValue>0x001C0000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CRC_SECT</name>
              <description>CRC sector number
CRC_SECT is used to select one user Flash sectors to be added to the list of sectors on which the CRC is calculated. The CRC can be computed either between two addresses (using registers FLASH_CRCSADDR and FLASH_CRCEADDR) or on a list of sectors using this register. If this latter option is selected, it is possible to add a sector to the list of sectors by programming the sector number in CRC_SECT and then setting ADD_SECT bit. 
The list of sectors can be erased either by setting CLEAN_SECT bit or by disabling the CRC computation. 
...</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CRC_BY_SECT</name>
              <description>CRC sector mode select bit 
When this bit is set the CRC calculation is performed at sector level, on the sectors present in the list of sectors. To add a sector to this list, use ADD_SECT and CRC_SECT bits. To clean the list, use CLEAN_SECT bit.
When CRC_BY_SECT is cleared the CRC calculation is performed on all addresses defined between start and end addresses defined in FLASH_CRCSADDR and FLASH_CRCEADDR registers.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADD_SECT</name>
              <description>CRC sector select bit 
When this bit is set the sector whose number is written in CRC_SECT is added to the list of sectors on which the CRC is calculated.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CLEAN_SECT</name>
              <description>CRC sector list clear bit
When this bit is set the list of sectors on which the CRC is calculated is cleared.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>START_CRC</name>
              <description>CRC start bit 
START_CRC bit triggers a CRC calculation using the current configuration. No CRC calculation can launched when an option byte change operation is ongoing because all read accesses to embedded Flash memory registers are put on hold until the option byte change operation has completed.
This bit is cleared when CRC computation starts.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CLEAN_CRC</name>
              <description>CRC clear bit
Setting CLEAN_CRC to 1 clears the current CRC result stored in the FLASH_CRCDATAR register.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CRC_BURST</name>
              <description>CRC burst size
CRC_BURST bits set the size of the bursts that are generated by the CRC calculation unit. A Flash word is 128-bit.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ALL_SECT</name>
              <description>All sectors selection
When this bit is set all the sectors in user Flash are added to list of sectors on which the CRC shall be calculated.
This bit is cleared when CRC computation starts.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CRCSADDR</name>
          <displayName>CRCSADDR</displayName>
          <description>FLASH CRC start address register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CRC_START_ADDR</name>
              <description>CRC start address
This register is used when CRC_BY_SECT is cleared. It must be programmed to the address of the first Flash word to use for the CRC calculation, done burst by burst. 
CRC computation starts at an address aligned to the burst size defined in CRC_BURST of FLASH_CRCCR register. Hence least significant bits [5:0] of the address are set by hardware to 0 (minimum burst size= 64 bytes).
The address is relative to the Flash bank.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CRCEADDR</name>
          <displayName>CRCEADDR</displayName>
          <description>FLASH CRC end address register</description>
          <addressOffset>0x38</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CRC_END_ADDR</name>
              <description>CRC end address
This register is used when CRC_BY_SECT is cleared. It must be programmed to the address of the Flash word starting the last burst of the CRC calculation. The burst size is defined in CRC_BURST of FLASH_CRCCR register. 
The least significant bits [5:0] of the address are set by hardware to 0 (minimum burst size= 64 bytes). The address is relative to the Flash bank.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CRCDATAR</name>
          <displayName>CRCDATAR</displayName>
          <description>FLASH CRC data register</description>
          <addressOffset>0x3C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CRC_DATA</name>
              <description>CRC result
This bitfield contains the result of the last CRC calculation. The value is valid only when CRC calculation completed (CRCENDF is set in FLASH_ISR register).
CRC_DATA is cleared when CRC_EN is cleared in FLASH_CR register (CRC disabled), or when CLEAN_CRC bit is set in FLASH_CRCCR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ECCSFADDR</name>
          <displayName>ECCSFADDR</displayName>
          <description>FLASH ECC single error fail address</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SEC_FADD</name>
              <description>ECC single error correction fail address
When a single ECC error correction occurs during a read operation, the SEC_FADD bitfield contains the system bus address that generated the error. 
This register is automatically cleared when SNECCERRF flag that generated the error is cleared.
Note that only the first address that generated an ECC single error correction error is saved in this register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ECCDFADDR</name>
          <displayName>ECCDFADDR</displayName>
          <description>FLASH ECC double error fail address</description>
          <addressOffset>0x44</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DED_FADD</name>
              <description>ECC double error detection fail address
When a double ECC detection occurs during a read operation, the DED_FADD bitfield contains the system bus address that generated the error. 
This register is automatically cleared when the DBECCERRF flag that generated the error is cleared.
Note that only the first address that generated an ECC double error detection error is saved in this register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OPTKEYR</name>
          <displayName>OPTKEYR</displayName>
          <description>FLASH options key register</description>
          <addressOffset>0x100</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OCUKEY</name>
              <description>Options configuration unlock key
Following values must be written to FLASH_OPTKEYR consecutively to unlock FLASH_OPTCR register:
1st key = 0x0819 2A3B
2nd key = 0x4C5D 6E7F
Reads to this register returns zero. If above sequence is performed twice locks up the corresponding register/bit until the next system reset, and generates a bus error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OPTCR</name>
          <displayName>OPTCR</displayName>
          <description>FLASH options control register</description>
          <addressOffset>0x104</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000001</resetValue>
          <resetMask>0x0FFFFFFF</resetMask>
          <fields>
            <field>
              <name>OPTLOCK</name>
              <description>Options lock
When this bit is set write to all other bits in this register, and write to OTP words, option bytes and option bytes keys control registers, are ignored. 
Clearing this bit requires the correct write sequence to FLASH_OPTKEYR register (see this register for details). If a wrong sequence is executed, or the unlock sequence is performed twice, this bit remains locked until next system reset.
During the write access to set LOCK bit from 0 to 1, it is possible to change the other bits of this register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PG_OPT</name>
              <description>Program options</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>KVEIE</name>
              <description>Key valid error interrupt enable bit
This bit controls if an interrupt has to be generated when KVEF is set in FLASH_OPTISR.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>KTEIE</name>
              <description>Key transfer error interrupt enable bit
This bit controls if an interrupt has to be generated when KTEF is set in FLASH_OPTISR.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OPTERRIE</name>
              <description>Option byte change error interrupt enable bit
This bit controls if an interrupt has to be generated when an error occurs during an option byte change.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OPTISR</name>
          <displayName>OPTISR</displayName>
          <description>FLASH options interrupt status register</description>
          <addressOffset>0x108</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>KVEF</name>
              <description>Key valid error flag
This bit is set when loading an unknown or corrupted option byte key. More specifically:
Embedded Flash did not find an option byte key that corresponds to the given OBKINDEX[4:0] and the requested HDPL (optionally modified by NEXTKL[1:0]). It can happen for example when requested key has not being provisioned.
A double error detection was found when loading the requested option byte key. In this case, if this key is provisioned again the error should disappear.
When KVEF is set write to START bit in FLASH_OBKCR is ignored.
An interrupt is generated when this flag is raised if the KVEIE bit of FLASH_OPTCR register is set. Setting KVEF bit of register FLASH_OPTICR clears this bit.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>KTEF</name>
              <description>Key transfer error flag
This bit is set when embedded Flash signals an error to the SAES peripheral. It happens when the key size (128-bit or 256-bit) is not matching between embedded Flash
OBKSIZE[1:0] and KEYSIZE bit in SAES_CR register. It also happen when an ECC dual error detection occurred while embedded Flash loaded an option byte key for the SAES peripheral.
When KTEF is set write to START bit in FLASH_OBKCR is ignored.
An interrupt is generated when this flag is raised if the KTEIE bit of FLASH_OPTCR register is set. Setting KTEF bit of register FLASH_OPTICR clears this bit.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OPTERRF</name>
              <description>Option byte change error flag 
When OPTERRF is set, the option byte change operation did not successfully complete. An interrupt is generated when this flag is raised if the OPTERRIE bit of FLASH_OPTCR register is set. Setting OPTERRF of register FLASH_OPTICR clears this bit.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OPTICR</name>
          <displayName>OPTICR</displayName>
          <description>FLASH options interrupt clear register</description>
          <addressOffset>0x10C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>KVEF</name>
              <description>key valid error flag
Set this bit to clear KVEF flag in FLASH_OPTISR register.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>KTEF</name>
              <description>key transfer error flag
Set this bit to clear KTEF flag in FLASH_OPTISR register.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>OPTERRF</name>
              <description>Option byte change error flag 
Set this bit to clear OPTERRF flag in FLASH_OPTISR register.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OBKCR</name>
          <displayName>OBKCR</displayName>
          <description>FLASH option byte key control register</description>
          <addressOffset>0x110</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000C00</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OBKINDEX</name>
              <description>Option byte key index
This bitfield represents the index of the option byte key in a given hide protection level.
Reading keys with index lower that 8, the value is not be available in OBKDRx registers. It is instead sent directly to SAES peripheral. All others keys can be read using OBKDRx registers.
Up to 32 keys can be provisioned per hide protection level (0, 1 or 2), provided there is enough space left in the Flash to store them.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NEXTKL</name>
              <description>Next key level 
10 or 11: reserved</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OBKSIZE</name>
              <description>Option byte key size 
Application must use this bitfield to specify how many bits must be used for the new key. Embedded Flash ignores OBKSIZE during read of option keys because size is stored with the key.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>KEYPROG</name>
              <description>Key program
This bit must be set to write option byte keys (keys are read otherwise).</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>KEYSTART</name>
              <description>Key option start
This bit is used to start the option byte key operation defined by the PROG bit.
The embedded Flash memory resets START when the corresponding operation has been acknowledged.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OBKDR0</name>
          <displayName>OBKDR0</displayName>
          <description>FLASH option bytes key data register 0</description>
          <addressOffset>0x118</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OBKDATA</name>
              <description>option byte key data, bits [31+x:0+x]
Data register used in conjunction with FLASH_OBKCR register.
Reading this register (read value once), or incrementing HDPL value in SBS peripheral automatically clears OBKDATA to 0x0. Writing this register prevents reading OBKDATA until option byte key programming sequence is completed.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OBKDR1</name>
          <displayName>OBKDR1</displayName>
          <description>FLASH option bytes key data register 1</description>
          <addressOffset>0x11C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OBKDATA</name>
              <description>option byte key data, bits [31+x:0+x]
Data register used in conjunction with FLASH_OBKCR register.
Reading this register (read value once), or incrementing HDPL value in SBS peripheral automatically clears OBKDATA to 0x0. Writing this register prevents reading OBKDATA until option byte key programming sequence is completed.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OBKDR2</name>
          <displayName>OBKDR2</displayName>
          <description>FLASH option bytes key data register 2</description>
          <addressOffset>0x120</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OBKDATA</name>
              <description>option byte key data, bits [31+x:0+x]
Data register used in conjunction with FLASH_OBKCR register.
Reading this register (read value once), or incrementing HDPL value in SBS peripheral automatically clears OBKDATA to 0x0. Writing this register prevents reading OBKDATA until option byte key programming sequence is completed.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OBKDR3</name>
          <displayName>OBKDR3</displayName>
          <description>FLASH option bytes key data register 3</description>
          <addressOffset>0x124</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OBKDATA</name>
              <description>option byte key data, bits [31+x:0+x]
Data register used in conjunction with FLASH_OBKCR register.
Reading this register (read value once), or incrementing HDPL value in SBS peripheral automatically clears OBKDATA to 0x0. Writing this register prevents reading OBKDATA until option byte key programming sequence is completed.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OBKDR4</name>
          <displayName>OBKDR4</displayName>
          <description>FLASH option bytes key data register 4</description>
          <addressOffset>0x128</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OBKDATA</name>
              <description>option byte key data, bits [31+x:0+x]
Data register used in conjunction with FLASH_OBKCR register.
Reading this register (read value once), or incrementing HDPL value in SBS peripheral automatically clears OBKDATA to 0x0. Writing this register prevents reading OBKDATA until option byte key programming sequence is completed.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OBKDR5</name>
          <displayName>OBKDR5</displayName>
          <description>FLASH option bytes key data register 5</description>
          <addressOffset>0x12C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OBKDATA</name>
              <description>option byte key data, bits [31+x:0+x]
Data register used in conjunction with FLASH_OBKCR register.
Reading this register (read value once), or incrementing HDPL value in SBS peripheral automatically clears OBKDATA to 0x0. Writing this register prevents reading OBKDATA until option byte key programming sequence is completed.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OBKDR6</name>
          <displayName>OBKDR6</displayName>
          <description>FLASH option bytes key data register 6</description>
          <addressOffset>0x130</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OBKDATA</name>
              <description>option byte key data, bits [31+x:0+x]
Data register used in conjunction with FLASH_OBKCR register.
Reading this register (read value once), or incrementing HDPL value in SBS peripheral automatically clears OBKDATA to 0x0. Writing this register prevents reading OBKDATA until option byte key programming sequence is completed.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OBKDR7</name>
          <displayName>OBKDR7</displayName>
          <description>FLASH option bytes key data register 7</description>
          <addressOffset>0x134</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OBKDATA</name>
              <description>option byte key data, bits [31+x:0+x]
Data register used in conjunction with FLASH_OBKCR register.
Reading this register (read value once), or incrementing HDPL value in SBS peripheral automatically clears OBKDATA to 0x0. Writing this register prevents reading OBKDATA until option byte key programming sequence is completed.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>NVSR</name>
          <displayName>NVSR</displayName>
          <description>FLASH non-volatile status register</description>
          <addressOffset>0x200</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFF0000</resetMask>
          <fields>
            <field>
              <name>NVSTATE</name>
              <description>Non-volatile state
others: invalid configuration.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>NVSRP</name>
          <displayName>NVSRP</displayName>
          <description>FLASH security status register programming</description>
          <addressOffset>0x204</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFF0000</resetMask>
          <fields>
            <field>
              <name>NVSTATE</name>
              <description>Non-volatile state programming
Write to change corresponding bits in FLASH_NVSR register:
Actual option byte change from close to open is triggered only after memory clear hardware process is confirmed. When NVSTATE=0xB4 (resp. 0x51) writing any other value than 0x51 (resp. 0xB4) triggers an option byte change error (OPTERRF).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ROTSR</name>
          <displayName>ROTSR</displayName>
          <description>FLASH RoT status register</description>
          <addressOffset>0x208</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFF0000</resetMask>
          <fields>
            <field>
              <name>OEM_PROVD</name>
              <description>OEM provisioned device
Any other value: device is not provisioned by the OEM.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DBG_AUTH</name>
              <description>Debug authentication method
Any other value: no authentication method selected (NotSet).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>IROT_SELECT</name>
              <description>iRoT selection
This option is ignored for STM32H7R devices (OEM iRoT is always selected).
Any other value: OEM iRoT is selected at boot.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ROTSRP</name>
          <displayName>ROTSRP</displayName>
          <description>FLASH RoT status register programming</description>
          <addressOffset>0x20C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFF0000</resetMask>
          <fields>
            <field>
              <name>OEM_PROVD</name>
              <description>OEM provisioned device
Write to change corresponding bits in FLASH_ROTSR register.
Write are ignored if HDPL is greater than 1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_AUTH</name>
              <description>Debug authentication method programming
Write to change corresponding bits in FLASH_ROTSR register.
Write are ignored if HDPL is greater than 0.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IROT_SELECT</name>
              <description>iRoT selection
This option is ignored for STM32H7R devices.
Write to change corresponding bits in FLASH_ROTSR register.
Write are ignored if HDPL is greater than 1 and if NVSTATE is not 0xB4 (OPEN).</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OTPLSR</name>
          <displayName>OTPLSR</displayName>
          <description>FLASH OTP lock status register</description>
          <addressOffset>0x210</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFF0000</resetMask>
          <fields>
            <field>
              <name>OTPL</name>
              <description>OTP lock n
Block n corresponds to OTP 16-bit word 32 x n to 32 x n + 31.
OTPL[n] = 1 indicates that all OTP 16-bit words in OTP Block n are locked and can no longer be programmed.
OTPL[n] = 0 indicates that all OTP 16-bit words in OTP Block n are not locked and can still be modified.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OTPLSRP</name>
          <displayName>OTPLSRP</displayName>
          <description>FLASH OTP lock status register programming</description>
          <addressOffset>0x214</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFF0000</resetMask>
          <fields>
            <field>
              <name>OTPL</name>
              <description>OTP lock n programming
Write to change corresponding option byte bit in FLASH_OTPLSR.
OTPL bits can be only be set, not cleared.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>WRPSR</name>
          <displayName>WRPSR</displayName>
          <description>FLASH write protection status register</description>
          <addressOffset>0x218</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFF0000</resetMask>
          <fields>
            <field>
              <name>WRPS</name>
              <description>Write protection for sector n
This bit reflects the write protection status of user Flash sector n</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>WRPSRP</name>
          <displayName>WRPSRP</displayName>
          <description>FLASH write protection status register programming</description>
          <addressOffset>0x21C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFF0000</resetMask>
          <fields>
            <field>
              <name>WRPS</name>
              <description>Write protection for sector n programming
Write to change corresponding bit in FLASH_WRPSR</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HDPSR</name>
          <displayName>HDPSR</displayName>
          <description>FLASH hide protection status register</description>
          <addressOffset>0x230</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xF000FFFF</resetMask>
          <fields>
            <field>
              <name>HDP_AREA_START</name>
              <description>Hide protection user Flash area start
This option sets the start address that contains the first 256-byte block of the hide protection (HDP) area in user Flash area.
If HDP_AREA_END=HDP_AREA_START all the sectors are protected.
If HDP_AREA_END&lt;HDP_AREA_START no sectors are protected.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>9</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>HDP_AREA_END</name>
              <description>Hide protection user Flash area end
This option sets the end address that contains the last 256-byte block of the hide protection (HDP) area in user Flash area.
If HDP_AREA_END=HDP_AREA_START all the sectors are protected.
If HDP_AREA_END&lt;HDP_AREA_START no sectors are protected.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>9</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HDPSRP</name>
          <displayName>HDPSRP</displayName>
          <description>FLASH hide protection status register programming</description>
          <addressOffset>0x234</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xF000FFFF</resetMask>
          <fields>
            <field>
              <name>HDP_AREA_START</name>
              <description>Hide protection user Flash area start programming
Write to change corresponding option byte bits in FLASH_HDPSR.
If HDP_AREA_END=HDP_AREA_START all the sectors are protected.
If HDP_AREA_END&lt;HDP_AREA_START no sectors are protected.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>9</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HDP_AREA_END</name>
              <description>Hide protection user Flash area end programming
Write to change corresponding option byte bits in FLASH_HDPSR.
If HDP_AREA_END=HDP_AREA_START all the sectors are protected.
If HDP_AREA_END&lt;HDP_AREA_START no sectors are protected.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>9</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>EPOCHSR</name>
          <displayName>EPOCHSR</displayName>
          <description>FLASH epoch status register</description>
          <addressOffset>0x250</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFF0000</resetMask>
          <fields>
            <field>
              <name>EPOCH</name>
              <description>Epoch
This value is distributed by hardware to the SAES peripheral.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>24</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>EPOCHSRP</name>
          <displayName>EPOCHSRP</displayName>
          <description>FLASH RoT status register programming</description>
          <addressOffset>0x254</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFF0000</resetMask>
          <fields>
            <field>
              <name>EPOCH</name>
              <description>Epoch programming
Write to change corresponding bits in FLASH_EPOCHSR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>24</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OBW1SR</name>
          <displayName>OBW1SR</displayName>
          <description>FLASH option byte word 1 status register</description>
          <addressOffset>0x260</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>BOR_LEV</name>
              <description>Brownout level
These bits reflects the power level that generates a system reset.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>IWDG_HW</name>
              <description>Independent watchdog HW Control</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NRST_STOP</name>
              <description>Reset on stop mode</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NRST_STBY</name>
              <description>Reset on standby mode</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OCTO1_HSLV</name>
              <description>XSPIM_P1 High-Speed at Low-Voltage</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OCTO2_HSLV</name>
              <description>XSPIM_P2 High-Speed at Low-Voltage</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>IWDG_FZ_STOP</name>
              <description>IWDG stop mode freeze
When set the independent watchdog IWDG is frozen in system Stop mode.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>IWDG_FZ_SDBY</name>
              <description>IWDG standby mode freeze
When set the independent watchdog IWDG is frozen in system Standby mode.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PERSO_OK</name>
              <description>Personalization OK
This bit is set on STMicroelectronics production line.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>VDDIO_HSLV</name>
              <description>I/O High-Speed at Low-Voltage
This bit indicates that the product operates below 2.5 V.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OBW1SRP</name>
          <displayName>OBW1SRP</displayName>
          <description>FLASH option byte word 1 status register programming</description>
          <addressOffset>0x264</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>BOR_LEV</name>
              <description>Brownout level
Write to change corresponding bits in FLASH_OBW1SR register.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IWDG_HW</name>
              <description>Independent watchdog HW Control
Write to change corresponding bit in FLASH_OBW1SR register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NRST_STOP</name>
              <description>Reset on stop mode programming
Write to change corresponding bit in FLASH_OBW1SR register.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NRST_STBY</name>
              <description>Reset on standby mode programming
Write to change corresponding bit in FLASH_OBW1SR register.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OCTO1_HSLV</name>
              <description>XSPIM_P1 High-Speed at Low-Voltage
Write to change corresponding bit in FLASH_OBW1SR register.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OCTO2_HSLV</name>
              <description>XSPIM_P2 High-Speed at Low-Voltage programming
Write to change corresponding bit in FLASH_OBW1SR register.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IWDG_FZ_STOP</name>
              <description>IWDG stop mode freeze
Write to change corresponding bit in FLASH_OBW1SR register.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IWDG_FZ_SDBY</name>
              <description>IWDG standby mode freeze programming
Write to change corresponding bit in FLASH_OBW1SR register.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VDDIO_HSLV</name>
              <description>I/O High-Speed at Low-Voltage programming
Write to change corresponding bit in FLASH_OBW1SR register.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OBW2SR</name>
          <displayName>OBW2SR</displayName>
          <description>FLASH option byte word 2 status register</description>
          <addressOffset>0x268</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>ITCM_AXI_SHARE</name>
              <description>ITCM SRAM configuration</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DTCM_AXI_SHARE</name>
              <description>DTCM SRAM configuration</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ECC_ON_SRAM</name>
              <description>ECC on SRAM</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>I2C_NI3C</name>
              <description>I2C Not I3C</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OBW2SRP</name>
          <displayName>OBW2SRP</displayName>
          <description>FLASH option byte word 2 status register programming</description>
          <addressOffset>0x26C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>ITCM_AXI_SHARE</name>
              <description>ITCM AXI share programming
Write to change corresponding bits in FLASH_OBW2SR register.
Bit 2 should be kept to 0:
ITCM_AXI_SHARE: = 000 or 011: ITCM 64 Kbytes
ITCM_AXI_SHARE = 001: ITCM 128 Kbytes
ITCM_AXI_SHARE = 010: ITCM 192 Kbytes</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTCM_AXI_SHARE</name>
              <description>DTCM AXI share programming
Write to change corresponding bits in the FLASH_OBW2SR register.
Bit 2 should be kept to 0:
DTCM_AXI_SHARE = 000 or 011: DTCM 64 Kbytes
DTCM_AXI_SHARE = 001: DTCM 128 Kbytes
DTCM_AXI_SHARE = 010: DTCM 192 Kbytes</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECC_ON_SRAM</name>
              <description>ECC on SRAM programming
Write to change corresponding bit in FLASH_OBW2SR register.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>I2C_NI3C</name>
              <description>I2C Not I3C
Write to change corresponding bit in FLASH_OBW2SR register.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>FMC</name>
      <description>Flexible memory controller</description>
      <baseAddress>0x52004000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x15C</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>FMC</name>
        <description>FMC global interrupt</description>
        <value>107</value>
      </interrupt>
      <registers>
        <register>
          <name>BCR1</name>
          <displayName>BCR1</displayName>
          <description>SRAM/NOR-flash chip-select control registers for bank 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x000030DB</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MBKEN</name>
              <description>Memory bank enable bit
This bit enables the memory bank. After reset Bank1 is enabled, all others are disabled. Accessing a disabled bank causes an ERROR on AXI bus.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>MBKEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Corresponding memory bank is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Corresponding memory bank is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MUXEN</name>
              <description>Address/data multiplexing enable bit
When this bit is set, the address and data values are multiplexed on the data bus, valid only with NOR and PSRAM memories:</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>MUXEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Address/Data non-multiplexed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Address/Data multiplexed on databus</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MTYP</name>
              <description>Memory type
These bits define the type of external memory attached to the corresponding memory bank:</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>MTYP</name>
                <enumeratedValue>
                  <name>SRAM</name>
                  <description>SRAM memory type</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PSRAM</name>
                  <description>PSRAM (CRAM) memory type</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Flash</name>
                  <description>NOR Flash/OneNAND Flash</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MWID</name>
              <description>Memory data bus width
Defines the external memory device width, valid for all type of memories.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>MWID</name>
                <enumeratedValue>
                  <name>Bits8</name>
                  <description>Memory data bus width 8 bits</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bits16</name>
                  <description>Memory data bus width 16 bits</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bits32</name>
                  <description>Memory data bus width 32 bits</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FACCEN</name>
              <description>Flash access enable
This bit enables NOR flash memory access operations.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>FACCEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Corresponding NOR Flash memory access is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Corresponding NOR Flash memory access is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BURSTEN</name>
              <description>Burst enable bit
This bit enables/disables synchronous accesses during read operations. It is valid only for synchronous memories operating in Burst mode:</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>BURSTEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Burst mode disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Burst mode enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WAITPOL</name>
              <description>Wait signal polarity bit
This bit defines the polarity of the wait signal from memory used for either in Synchronous or Asynchronous mode:</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>WAITPOL</name>
                <enumeratedValue>
                  <name>ActiveLow</name>
                  <description>NWAIT active low</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveHigh</name>
                  <description>NWAIT active high</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WAITCFG</name>
              <description>Wait timing configuration
The NWAIT signal indicates whether the data from the memory are valid or if a wait state must be inserted when accessing the memory in Synchronous mode. This configuration bit determines if NWAIT is asserted by the memory one clock cycle before the wait state or during the wait state:</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>WAITCFG</name>
                <enumeratedValue>
                  <name>BeforeWaitState</name>
                  <description>NWAIT signal is active one data cycle before wait state</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DuringWaitState</name>
                  <description>NWAIT signal is active during wait state</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WREN</name>
              <description>Write enable bit
This bit indicates whether write operations are enabled/disabled in the bank by the FMC:</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>WREN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Write operations disabled for the bank by the FMC</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Write operations enabled for the bank by the FMC</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WAITEN</name>
              <description>Wait enable bit
This bit enables/disables wait-state insertion via the NWAIT signal when accessing the memory in Synchronous mode.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>WAITEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Values inside the FMC_BWTR are taken into account</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>NWAIT signal enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EXTMOD</name>
              <description>Extended mode enable.
This bit enables the FMC to program the write timings for asynchronous accesses inside the FMC_BWTR register, thus resulting in different timings for read and write operations.
Note: When the Extended mode is disabled, the FMC can operate in Mode1 or Mode2 as follows:
Mode 1 is the default mode when the SRAM/PSRAM memory type is selected (MTYP =0x0 or 0x01)
Mode 2 is the default mode when the NOR memory type is selected (MTYP = 0x10).</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>EXTMOD</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Values inside the FMC_BWTR are not taken into account</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Values inside the FMC_BWTR are taken into account</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ASYNCWAIT</name>
              <description>Wait signal during asynchronous transfers
This bit enables/disables the FMC to use the wait signal even during an asynchronous protocol.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>ASYNCWAIT</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Wait signal not used in asynchronous mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Wait signal used even in asynchronous mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CPSIZE</name>
              <description>CRAM Page Size
These are used for Cellular RAM 1.5 which does not allow burst access to cross the address boundaries between pages. When these bits are configured, the FMC splits automatically the burst access when the memory page size is reached (refer to memory datasheet for page size).
Other configuration: reserved.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>CPSIZE</name>
                <enumeratedValue>
                  <name>NoBurstSplit</name>
                  <description>No burst split when crossing page boundary</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bytes128</name>
                  <description>128 bytes CRAM page size</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bytes256</name>
                  <description>256 bytes CRAM page size</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bytes512</name>
                  <description>512 bytes CRAM page size</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bytes1024</name>
                  <description>1024 bytes CRAM page size</description>
                  <value>4</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CBURSTRW</name>
              <description>Write burst enable
For PSRAM (CRAM) operating in Burst mode, the bit enables synchronous accesses during write operations. The enable bit for synchronous read accesses is the BURSTEN bit in the FMC_BCRx register.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>CBURSTRW</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Write operations are always performed in asynchronous mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Write operations are performed in synchronous mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CCLKEN</name>
              <description>Continuous Clock Enable
This bit enables the FMC_CLK clock output to external memory devices.
Note: The CCLKEN bit of the FMC_BCR2..4 registers is dont care. It is only enabled through the FMC_BCR1 register. Bank 1 must be configured in Synchronous mode to generate the FMC_CLK continuous clock.
Note: If CCLKEN bit is set, the FMC_CLK clock ratio is specified by CLKDIV value in the FMC_BTR1 register. CLKDIV in FMC_BWTR1 is dont care.
Note: If the Synchronous mode is used and CCLKEN bit is set, the synchronous memories connected to other banks than Bank 1 are clocked by the same clock (the CLKDIV value in the FMC_BTR2..4 and FMC_BWTR2..4 registers for other banks has no effect.)</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>CCLKEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The FMC_CLK is generated continuously during asynchronous and synchronous access. The FMC_CLK clock is activated when the CCLKEN is set</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The FMC_CLK is only generated during the synchronous memory access (read/write transaction)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WFDIS</name>
              <description>Write FIFO Disable
This bit disables the Write FIFO used by the FMC.
Note: The WFDIS bit of the FMC_BCR2..4 registers is dont care. It is only enabled through the FMC_BCR1 register.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>WFDIS</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Write FIFO enabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Write FIFO disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BMAP</name>
              <description>FMC bank mapping
These bits allow different remap or swap of the FMC NOR/PSRAM and SDRAM banks (refer to Table 144).
Note: The BMAP bits of the FMC_BCR2..4 registers are dont care. It is only enabled through the FMC_BCR1 register.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>BMAP</name>
                <enumeratedValue>
                  <name>Default</name>
                  <description>Default mapping</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Swapped</name>
                  <description>NOR/PSRAM bank and SDRAM bank 1/bank2 are swapped</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Remapped</name>
                  <description>SDRAM Bank2 remapped on FMC bank2 and still accessible at default mapping</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FMCEN</name>
              <description>FMC Enable
This bit enables/disables the FMC.
Note: The FMCEN bit of the FMC_BCR2..4 registers is dont care. It is only enabled through the FMC_BCR1 register.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>FMCEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Disable the FMC controller</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Enable the FMC controller</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <dim>4</dim>
          <dimIncrement>0x8</dimIncrement>
          <dimIndex>1-4</dimIndex>
          <name>BTR%s</name>
          <displayName>BTR%s</displayName>
          <description>SRAM/NOR-flash chip-select timing registers for bank %s</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x0FFFFFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ADDSET</name>
              <description>Address setup phase duration
These bits are written by software to define the duration of the address setup phase (refer to Figure 109 to Figure 121), used in SRAMs, ROMs and asynchronous NOR flash:
...
For each access mode address setup phase duration, please refer to the respective figure (refer to Figure 109 to Figure 121).
Note: In synchronous accesses, this value is dont care.
Note: In Muxed mode or mode D, the minimum value for ADDSET is 1.
Note: In mode 1 and PSRAM memory, the minimum value for ADDSET is 1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>ADDHLD</name>
              <description>Address-hold phase duration
These bits are written by software to define the duration of the address hold phase (refer to Figure 109 to Figure 121), used in mode D or multiplexed accesses:
...
For each access mode address-hold phase duration, please refer to the respective figure (Figure 109 to Figure 121).
Note: In synchronous accesses, this value is not used, the address hold phase is always 1 memory clock period duration.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>1</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DATAST</name>
              <description>Data-phase duration
These bits are written by software to define the duration of the data phase (refer to Figure 109 to Figure 121), used in asynchronous accesses:
...
For each memory type and access mode data-phase duration, please refer to the respective figure (Figure 109 to Figure 121).
Example: Mode1, write access, DATAST = 1: Data-phase duration = DATAST+1 = 1 x fmc_ker_ck clock cycles.
Note: In synchronous accesses, this value is dont care.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>1</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>BUSTURN</name>
              <description>Bus turnaround phase duration
These bits are written by software to add a delay at the end of a write-to-read (and read-to-write) transaction. This delay allows to match the minimum time between consecutive transactions (t&lt;sub&gt;EHEL&lt;/sub&gt; from NEx high to NEx low) and the maximum time needed by the memory to free the data bus after a read access (t&lt;sub&gt;EHQZ&lt;/sub&gt;). The programmed bus turnaround delay is inserted between an asynchronous read (muxed or mode D) or write transaction and any other asynchronous /synchronous read or write to or from a static bank. The bank can be the same or different in case of read, in case of write the bank can be different except for muxed or mode D.
In some cases, whatever the programmed BUSTURN values, the bus turnaround delay is fixed
as follows:
The bus turnaround delay is not inserted between two consecutive asynchronous write transfers to the same static memory bank except for muxed and D modes.
There is a bus turnaround delay of 1 FMC clock cycle between:
Two consecutive asynchronous read transfers to the same static memory bank except for muxed and D modes. 
An asynchronous read to an asynchronous or synchronous write to any static bank or dynamic bank except for muxed and D modes.
An asynchronous (modes 1, 2, A, B or C) read and a read from another static bank.
There is a bus turnaround delay of 2 FMC clock cycle between:
Two consecutive synchronous writes (burst or single) to the same bank.
A synchronous write (burst or single) access and an asynchronous write or read transfer to or from static memory bank (the bank can be the same or different for the case of read.
Two consecutive synchronous reads (burst or single) followed by any synchronous/asynchronous read or write from/to another static memory bank.
There is a bus turnaround delay of 3 FMC clock cycle between:
Two consecutive synchronous writes (burst or single) to different static bank.
A synchronous write (burst or single) access and a synchronous read from the same or a different bank.
...</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>CLKDIV</name>
              <description>Clock divide ratio (for FMC_CLK signal)
These bits define the period of FMC_CLK clock output signal, expressed in number of fmc_ker_ck cycles:
In asynchronous NOR flash, SRAM or PSRAM accesses, this value is dont care.
Note: Refer to Section 23.7.5: Synchronous transactions for FMC_CLK divider ratio formula)</description>
              <bitOffset>20</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>1</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DATLAT</name>
              <description>(see note below bit descriptions): Data latency for synchronous memory
For synchronous access with read/write Burst mode enabled (BURSTEN / CBURSTRW bits set), these bits define the number of memory clock cycles (+2) to issue to the memory before reading/writing the first data:
This timing parameter is not expressed in fmc_ker_ck periods, but in FMC_CLK periods.
For asynchronous access, this value is don't care.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>ACCMOD</name>
              <description>Access mode
These bits specify the Asynchronous access modes as shown in the timing diagrams. They are taken into account only when the EXTMOD bit in the FMC_BCRx register is 1.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>ACCMOD</name>
                <enumeratedValue>
                  <name>A</name>
                  <description>Access mode A</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>B</name>
                  <description>Access mode B</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>C</name>
                  <description>Access mode C</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>D</name>
                  <description>Access mode D</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <dim>3</dim>
          <dimIncrement>0x8</dimIncrement>
          <dimIndex>2-4</dimIndex>
          <name>BCR%s</name>
          <displayName>BCR%s</displayName>
          <description>SRAM/NOR-flash chip-select control registers for bank %s</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x000030D2</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field derivedFrom="FMC.BCR1.MBKEN">
              <name>MBKEN</name>
              <description>Memory bank enable bit
This bit enables the memory bank. After reset Bank1 is enabled, all others are disabled. Accessing a disabled bank causes an ERROR on AXI bus.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field derivedFrom="FMC.BCR1.MUXEN">
              <name>MUXEN</name>
              <description>Address/data multiplexing enable bit
When this bit is set, the address and data values are multiplexed on the data bus, valid only with NOR and PSRAM memories:</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field derivedFrom="FMC.BCR1.MTYP">
              <name>MTYP</name>
              <description>Memory type
These bits define the type of external memory attached to the corresponding memory bank:</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field derivedFrom="FMC.BCR1.MWID">
              <name>MWID</name>
              <description>Memory data bus width
Defines the external memory device width, valid for all type of memories.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field derivedFrom="FMC.BCR1.FACCEN">
              <name>FACCEN</name>
              <description>Flash access enable
This bit enables NOR flash memory access operations.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field derivedFrom="FMC.BCR1.BURSTEN">
              <name>BURSTEN</name>
              <description>Burst enable bit
This bit enables/disables synchronous accesses during read operations. It is valid only for synchronous memories operating in Burst mode:</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field derivedFrom="FMC.BCR1.WAITPOL">
              <name>WAITPOL</name>
              <description>Wait signal polarity bit
This bit defines the polarity of the wait signal from memory used for either in Synchronous or Asynchronous mode:</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field derivedFrom="FMC.BCR1.WAITCFG">
              <name>WAITCFG</name>
              <description>Wait timing configuration
The NWAIT signal indicates whether the data from the memory are valid or if a wait state must be inserted when accessing the memory in Synchronous mode. This configuration bit determines if NWAIT is asserted by the memory one clock cycle before the wait state or during the wait state:</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field derivedFrom="FMC.BCR1.WREN">
              <name>WREN</name>
              <description>Write enable bit
This bit indicates whether write operations are enabled/disabled in the bank by the FMC:</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field derivedFrom="FMC.BCR1.WAITEN">
              <name>WAITEN</name>
              <description>Wait enable bit
This bit enables/disables wait-state insertion via the NWAIT signal when accessing the memory in Synchronous mode.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field derivedFrom="FMC.BCR1.EXTMOD">
              <name>EXTMOD</name>
              <description>Extended mode enable.
This bit enables the FMC to program the write timings for asynchronous accesses inside the FMC_BWTR register, thus resulting in different timings for read and write operations.
Note: When the Extended mode is disabled, the FMC can operate in Mode1 or Mode2 as follows:
Mode 1 is the default mode when the SRAM/PSRAM memory type is selected (MTYP =0x0 or 0x01)
Mode 2 is the default mode when the NOR memory type is selected (MTYP = 0x10).</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field derivedFrom="FMC.BCR1.ASYNCWAIT">
              <name>ASYNCWAIT</name>
              <description>Wait signal during asynchronous transfers
This bit enables/disables the FMC to use the wait signal even during an asynchronous protocol.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field derivedFrom="FMC.BCR1.CPSIZE">
              <name>CPSIZE</name>
              <description>CRAM Page Size
These are used for Cellular RAM 1.5 which does not allow burst access to cross the address boundaries between pages. When these bits are configured, the FMC splits automatically the burst access when the memory page size is reached (refer to memory datasheet for page size).
Other configuration: reserved.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field derivedFrom="FMC.BCR1.CBURSTRW">
              <name>CBURSTRW</name>
              <description>Write burst enable
For PSRAM (CRAM) operating in Burst mode, the bit enables synchronous accesses during write operations. The enable bit for synchronous read accesses is the BURSTEN bit in the FMC_BCRx register.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PCR</name>
          <displayName>PCR</displayName>
          <description>NAND flash control registers</description>
          <addressOffset>0x80</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000018</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PWAITEN</name>
              <description>Wait feature enable bit.
This bit enables the Wait feature for the NAND flash memory bank:</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PWAITEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Wait feature disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Wait feature enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PBKEN</name>
              <description>NAND flash memory bank enable bit.
This bit enables the memory bank. Accessing a disabled memory bank causes an ERROR on AXI bus</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PBKEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Corresponding memory bank is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Corresponding memory bank is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PWID</name>
              <description>Data bus width.
These bits define the external memory device width.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PWID</name>
                <enumeratedValue>
                  <name>Bits8</name>
                  <description>External memory device width 8 bits</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bits16</name>
                  <description>External memory device width 16 bits</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ECCEN</name>
              <description>ECC computation logic enable bit</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>ECCEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>ECC logic is disabled and reset</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>ECC logic is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TCLR</name>
              <description>CLE to RE delay.
These bits set time from CLE low to RE low in number of fmc_ker_ck clock cycles. The time is give by the following formula:
t_clr = (TCLR + SET + 2)   t&lt;sub&gt;fmc_ker_ck&lt;/sub&gt; where t&lt;sub&gt;fmc_ker_ck&lt;/sub&gt; is the fmc_ker_ck clock period
Note: Set is MEMSET or ATTSET according to the addressed space.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>TAR</name>
              <description>ALE to RE delay.
These bits set time from ALE low to RE low in number of fmc_ker_ck clock cycles.
Time is: t_ar = (TAR + SET + 2)   t&lt;sub&gt;fmc_ker_ck&lt;/sub&gt; where t&lt;sub&gt;fmc_ker_ck&lt;/sub&gt; is the FMC clock period
Note: Set is MEMSET or ATTSET according to the addressed space.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>ECCPS</name>
              <description>ECC page size.
These bits define the page size for the extended ECC:</description>
              <bitOffset>17</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>ECCPS</name>
                <enumeratedValue>
                  <name>Bytes256</name>
                  <description>ECC page size 256 bytes</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bytes512</name>
                  <description>ECC page size 512 bytes</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bytes1024</name>
                  <description>ECC page size 1024 bytes</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bytes2048</name>
                  <description>ECC page size 2048 bytes</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bytes4096</name>
                  <description>ECC page size 4096 bytes</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bytes8192</name>
                  <description>ECC page size 8192 bytes</description>
                  <value>5</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>FIFO status and interrupt register</description>
          <addressOffset>0x84</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000040</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IRS</name>
              <description>Interrupt rising edge status
The flag is set by hardware and reset by software.
Note: If this bit is written by software to 1 it will be set.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>IRS</name>
                <enumeratedValue>
                  <name>DidNotOccur</name>
                  <description>Interrupt rising edge did not occur</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Occurred</name>
                  <description>Interrupt rising edge occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ILS</name>
              <description>Interrupt high-level status
The flag is set by hardware and reset by software.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>ILS</name>
                <enumeratedValue>
                  <name>DidNotOccur</name>
                  <description>Interrupt high-level did not occur</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Occurred</name>
                  <description>Interrupt high-level occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IFS</name>
              <description>Interrupt falling edge status
The flag is set by hardware and reset by software.
Note: If this bit is written by software to 1 it will be set.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>IFS</name>
                <enumeratedValue>
                  <name>DidNotOccur</name>
                  <description>Interrupt falling edge did not occur</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Occurred</name>
                  <description>Interrupt falling edge occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IREN</name>
              <description>Interrupt rising edge detection enable bit</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>IREN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt rising edge detection request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt rising edge detection request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ILEN</name>
              <description>Interrupt high-level detection enable bit</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>ILEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt high-level detection request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt high-level detection request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IFEN</name>
              <description>Interrupt falling edge detection enable bit</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>IFEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt falling edge detection request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt falling edge detection request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FEMPT</name>
              <description>FIFO empty.
Read-only bit that provides the status of the FIFO</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>FEMPT</name>
                <enumeratedValue>
                  <name>NotEmpty</name>
                  <description>FIFO not empty</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Empty</name>
                  <description>FIFO empty</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>PMEM</name>
          <displayName>PMEM</displayName>
          <description>Common memory space timing register</description>
          <addressOffset>0x88</addressOffset>
          <size>0x20</size>
          <resetValue>0xFCFCFCFC</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MEMSET</name>
              <description>Common memory x setup time
These bits define the number of fmc_ker_ck (+1) clock cycles to set up the address before the command assertion (NWE, NOE), for NAND flash read or write access to common memory space:</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>254</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MEMWAIT</name>
              <description>Common memory wait time
These bits define the minimum number of fmc_ker_ck (+1) clock cycles to assert the command (NWE, NOE), for NAND flash read or write access to common memory space. The duration of command assertion is extended if the wait signal (NWAIT) is active (low) at the end of the programmed value of fmc_ker_ck:</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>1</minimum>
                  <maximum>254</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MEMHOLD</name>
              <description>Common memory hold time
These bits define the number of fmc_ker_ck clock cycles for write accesses and fmc_ker_ck+1 clock cycles for read accesses during which the address is held (and data for write accesses) after the command is deasserted (NWE, NOE), for NAND flash read or write access to common memory space:</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>1</minimum>
                  <maximum>254</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MEMHIZ</name>
              <description>Common memory x data bus Hi-Z time
These bits define the number of fmc_ker_ck clock cycles during which the data bus is kept Hi-Z after the start of a NAND flash write access to common memory space. This is only valid for write transactions:</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>254</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>PATT</name>
          <displayName>PATT</displayName>
          <description>Attribute memory space timing registers</description>
          <addressOffset>0x8C</addressOffset>
          <size>0x20</size>
          <resetValue>0xFCFCFCFC</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ATTSET</name>
              <description>Attribute memory setup time
These bits define the number of fmc_ker_ck (+1) clock cycles to set up address before the command assertion (NWE, NOE), for NAND flash read or write access to attribute memory space:</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>254</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>ATTWAIT</name>
              <description>Attribute memory wait time
These bits define the minimum number of x fmc_ker_ck (+1) clock cycles to assert the command (NWE, NOE), for NAND flash read or write access to attribute memory space. The duration for command assertion is extended if the wait signal (NWAIT) is active (low) at the end of the programmed value of fmc_ker_ck:</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>1</minimum>
                  <maximum>254</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>ATTHOLD</name>
              <description>Attribute memory hold time
These bits define the number of fmc_ker_ck clock cycles during which the address is held (and data for write access) after the command deassertion (NWE, NOE), for NAND flash read or write access to attribute memory space:</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>1</minimum>
                  <maximum>254</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>ATTHIZ</name>
              <description>Attribute memory data bus Hi-Z time
These bits define the number of fmc_ker_ck clock cycles during which the data bus is kept in Hi-Z after the start of a NAND flash write access to attribute memory space on socket. Only valid for writ transaction:</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>254</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>ECCR</name>
          <displayName>ECCR</displayName>
          <description>ECC result registers</description>
          <addressOffset>0x94</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ECC</name>
              <description>ECC result
This field contains the value computed by the ECC computation logic. Table 184 describes the contents of these bitfields.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>4</dim>
          <dimIncrement>0x8</dimIncrement>
          <dimIndex>1-4</dimIndex>
          <name>BWTR%s</name>
          <displayName>BWTR%s</displayName>
          <description>SRAM/NOR-flash write timing registers for bank %s</description>
          <addressOffset>0x104</addressOffset>
          <size>0x20</size>
          <resetValue>0x0FFFFFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ADDSET</name>
              <description>Address setup phase duration.
These bits are written by software to define the duration of the address setup phase in fmc_ker_ck cycles (refer to Figure 109 to Figure 121), used in asynchronous accesses:
...
Note: In synchronous accesses, this value is not used, the address setup phase is always 1 flash clock period duration. In muxed mode, the minimum ADDSET value is 1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>ADDHLD</name>
              <description>Address-hold phase duration.
These bits are written by software to define the duration of the address hold phase (refer to Figure 109 to Figure 121), used in asynchronous multiplexed accesses:
...
Note: In synchronous NOR flash accesses, this value is not used, the address hold phase is always 1 flash clock period duration.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>1</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DATAST</name>
              <description>Data-phase duration.
These bits are written by software to define the duration of the data phase (refer to Figure 109 to Figure 121), used in asynchronous SRAM, PSRAM and NOR flash memory accesses:
...</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>1</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>BUSTURN</name>
              <description>Bus turnaround phase duration
These bits are written by software to add a delay at the end of a write transaction to match the minimum time between consecutive transactions (t&lt;sub&gt;EHEL&lt;/sub&gt; from ENx high to ENx low):
(BUSTRUN + 1) fmc_ker_ck period more or equal to t&lt;sub&gt;EHELmin&lt;/sub&gt;.
The programmed bus turnaround delay is inserted between an asynchronous write transfer and any other asynchronous /synchronous read or write transfer to or from a static bank. The bank can be the same or different in case of read, in case of write the bank can be different expect for muxed or mode D.
In some cases, whatever the programmed BUSTURN values, the bus turnaround delay is fixed as
follows:
The bus turnaround delay is not inserted between two consecutive asynchronous write transfers to the same static memory bank except for muxed and D modes.
There is a bus turnaround delay of 2 FMC clock cycle between:
Two consecutive synchronous writes (burst or single) to the same bank.
A synchronous write (burst or single) transfer and an asynchronous write or read transfer to or from static memory bank.
There is a bus turnaround delay of 3 FMC clock cycle between:
Two consecutive synchronous writes (burst or single) to different static bank.
A synchronous write (burst or single) transfer and a synchronous read from the same or a different bank.
...</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>ACCMOD</name>
              <description>Access mode.
These bits specify the asynchronous access modes as shown in the next timing diagrams.These bits are taken into account only when the EXTMOD bit in the FMC_BCRx register is 1.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>ACCMOD</name>
                <enumeratedValue>
                  <name>A</name>
                  <description>Access mode A</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>B</name>
                  <description>Access mode B</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>C</name>
                  <description>Access mode C</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>D</name>
                  <description>Access mode D</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SDCR1</name>
          <displayName>SDCR1</displayName>
          <description>SDRAM Control registers for SDRAM memory bank 1</description>
          <addressOffset>0x140</addressOffset>
          <size>0x20</size>
          <resetValue>0x000002D0</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>NC</name>
              <description>Number of column address bits
These bits define the number of bits of a column address.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>NC</name>
                <enumeratedValue>
                  <name>Bits8</name>
                  <description>8 bits</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bits9</name>
                  <description>9 bits</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bits10</name>
                  <description>10 bits</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bits11</name>
                  <description>11 bits</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NR</name>
              <description>Number of row address bits
These bits define the number of bits of a row address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>NR</name>
                <enumeratedValue>
                  <name>Bits11</name>
                  <description>11 bits</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bits12</name>
                  <description>12 bits</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bits13</name>
                  <description>13 bits</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MWID</name>
              <description>Memory data bus width.
These bits define the memory device width.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>MWID</name>
                <enumeratedValue>
                  <name>Bits8</name>
                  <description>Memory data bus width 8 bits</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bits16</name>
                  <description>Memory data bus width 16 bits</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bits32</name>
                  <description>Memory data bus width 32 bits</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NB</name>
              <description>Number of internal banks
This bit sets the number of internal banks.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>NB</name>
                <enumeratedValue>
                  <name>NB2</name>
                  <description>Two internal Banks</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NB4</name>
                  <description>Four internal Banks</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CAS</name>
              <description>CAS Latency
This bits sets the SDRAM CAS latency in number of memory clock cycles</description>
              <bitOffset>7</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>CAS</name>
                <enumeratedValue>
                  <name>Clocks1</name>
                  <description>1 cycle</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Clocks2</name>
                  <description>2 cycles</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Clocks3</name>
                  <description>3 cycles</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WP</name>
              <description>Write protection
This bit enables Write mode access to the SDRAM bank.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>WP</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Write accesses allowed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Write accesses ignored</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SDCLK</name>
              <description>SDRAM clock configuration
These bits define the SDRAM clock period for both SDRAM banks and allow disabling the clock before changing the frequency. In this case the SDRAM must be re-initialized.
Note: The corresponding bits in the FMC_SDCR2 register is read only.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SDCLK</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>SDCLK clock disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>SDCLK period = 2 x HCLK period</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div3</name>
                  <description>SDCLK period = 3 x HCLK period</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RBURST</name>
              <description>Burst read 
This bit enables Burst read mode. The SDRAM controller anticipates the next read commands during the CAS latency and stores data in the Read FIFO.
Note: The corresponding bit in the FMC_SDCR2 register is read only.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RBURST</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Single read requests are not managed as bursts</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Single read requests are always managed as bursts</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RPIPE</name>
              <description>Read pipe
These bits define the delay, in fmc_ker_ck clock cycles, for reading data after CAS latency.
Note: The corresponding bits in the FMC_SDCR2 register is read only.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RPIPE</name>
                <enumeratedValue>
                  <name>NoDelay</name>
                  <description>No clock cycle delay</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Clocks1</name>
                  <description>One clock cycle delay</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Clocks2</name>
                  <description>Two clock cycles delay</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SDCR2</name>
          <displayName>SDCR2</displayName>
          <description>SDRAM Control registers for SDRAM memory bank 2</description>
          <addressOffset>0x144</addressOffset>
          <size>0x20</size>
          <resetValue>0x000002D0</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field derivedFrom="FMC.SDCR1.NC">
              <name>NC</name>
              <description>Number of column address bits
These bits define the number of bits of a column address.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field derivedFrom="FMC.SDCR1.NR">
              <name>NR</name>
              <description>Number of row address bits
These bits define the number of bits of a row address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field derivedFrom="FMC.SDCR1.MWID">
              <name>MWID</name>
              <description>Memory data bus width.
These bits define the memory device width.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field derivedFrom="FMC.SDCR1.NB">
              <name>NB</name>
              <description>Number of internal banks
This bit sets the number of internal banks.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field derivedFrom="FMC.SDCR1.CAS">
              <name>CAS</name>
              <description>CAS Latency
This bits sets the SDRAM CAS latency in number of memory clock cycles</description>
              <bitOffset>7</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field derivedFrom="FMC.SDCR1.WP">
              <name>WP</name>
              <description>Write protection
This bit enables Write mode access to the SDRAM bank.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field derivedFrom="FMC.SDCR1.SDCLK">
              <name>SDCLK</name>
              <description>SDRAM clock configuration
These bits define the SDRAM clock period for both SDRAM banks and allow disabling the clock before changing the frequency. In this case the SDRAM must be re-initialized.
Note: The corresponding bits in the FMC_SDCR2 register is read only.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RBURST</name>
              <description>Burst read 
This bit enables Burst read mode. The SDRAM controller anticipates the next read commands during the CAS latency and stores data in the Read FIFO.
Note: The corresponding bit in the FMC_SDCR2 register is read only.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RBURST</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Single read requests are not managed as bursts</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Single read requests are always managed as bursts</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RPIPE</name>
              <description>Read pipe
These bits define the delay, in fmc_ker_ck clock cycles, for reading data after CAS latency.
Note: The corresponding bits in the FMC_SDCR2 register is read only.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RPIPE</name>
                <enumeratedValue>
                  <name>NoDelay</name>
                  <description>No clock cycle delay</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Clocks1</name>
                  <description>One clock cycle delay</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Clocks2</name>
                  <description>Two clock cycles delay</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <dim>2</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>1-2</dimIndex>
          <name>SDTR%s</name>
          <displayName>SDTR%s</displayName>
          <description>SDRAM Timing registers for SDRAM memory bank %s</description>
          <addressOffset>0x148</addressOffset>
          <size>0x20</size>
          <resetValue>0x0FFFFFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TMRD</name>
              <description>Load Mode Register to Active 
These bits define the delay between a Load Mode Register command and an Active or Refresh command in number of memory clock cycles.
....</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>TXSR</name>
              <description>Exit Self-refresh delay
These bits define the delay from releasing the Self-refresh command to issuing the Activate command in number of memory clock cycles.
....
Note: If two SDRAM devices are used, the FMC_SDTR1 and FMC_SDTR2 must be programmed with the same TXSR timing corresponding to the slowest SDRAM device.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>TRAS</name>
              <description>Self refresh time
These bits define the minimum Self-refresh period in number of memory clock cycles.
....</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>TRC</name>
              <description>Row cycle delay
These bits define the delay between the Refresh command and the Activate command, as well as the delay between two consecutive Refresh commands. It is expressed in number of memory clock cycles. The TRC timing is only configured in the FMC_SDTR1 register. If two SDRAM devices are used, the TRC must be programmed with the timings of the slowest device.
....
Note: TRC must match the TRC and TRFC (Auto Refresh period) timings defined in the SDRAM device datasheet.
Note: The corresponding bits in the FMC_SDTR2 register are dont care.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>TWR</name>
              <description>Recovery delay
These bits define the delay between a Write and a Precharge command in number of memory clock cycles.
....
Note: TWR must be programmed to match the write recovery time (t&lt;sub&gt;WR&lt;/sub&gt;) defined in the SDRAM datasheet, and to guarantee that:
Note: TWR   TRAS - TRCD and TWR  TRC - TRCD - TRP
Note: Example: TRAS= 4 cycles, TRCD= 2 cycles. So, TWR &gt;= 2 cycles. TWR must be programmed to 0x1.
Note: If two SDRAM devices are used, the FMC_SDTR1 and FMC_SDTR2 must be programmed with the same TWR timing corresponding to the slowest SDRAM device.
Note: If only one SDRAM device is used, the TWR timing must be kept at reset value (0xF) for the not used bank.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>TRP</name>
              <description>Row precharge delay
These bits define the delay between a Precharge command and another command in number of memory clock cycles. The TRP timing is only configured in the FMC_SDTR1 register. If two SDRAM devices are used, the TRP must be programmed with the timing of the slowest device.
....
Note: The corresponding bits in the FMC_SDTR2 register are dont care.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>TRCD</name>
              <description>Row to column delay
These bits define the delay between the Activate command and a Read/Write command in number of memory clock cycles.
....</description>
              <bitOffset>24</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>SDCMR</name>
          <displayName>SDCMR</displayName>
          <description>SDRAM Command mode register</description>
          <addressOffset>0x150</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MODE</name>
              <description>Command mode
These bits define the command issued to the SDRAM device.
Note: When a command is issued, at least one Command Target Bank bit ( CTB1 or CTB2) must be set otherwise the command will be ignored.
Note: If two SDRAM banks are used, the Auto-refresh and PALL command must be issued simultaneously to the two devices with CTB1 and CTB2 bits set otherwise the command will be ignored. 
Note: If only one SDRAM bank is used and a command is issued with its associated CTB bit set, the other CTB bit of the unused bank must be kept to 0.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>MODE</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>Normal Mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ClockConfigurationEnable</name>
                  <description>Clock Configuration Enable</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PALL</name>
                  <description>PALL (All Bank Precharge) command</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AutoRefreshCommand</name>
                  <description>Auto-refresh command</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LoadModeRegister</name>
                  <description>Load Mode Resgier</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SelfRefreshCommand</name>
                  <description>Self-refresh command</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PowerDownCommand</name>
                  <description>Power-down command</description>
                  <value>6</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CTB2</name>
              <description>Command Target Bank 2
This bit indicates whether the command will be issued to SDRAM Bank 2 or not.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>CTB2</name>
                <enumeratedValue>
                  <name>NotIssued</name>
                  <description>Command not issued to SDRAM Bank 1</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Issued</name>
                  <description>Command issued to SDRAM Bank 1</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CTB1</name>
              <description>Command Target Bank 1
This bit indicates whether the command will be issued to SDRAM Bank 1 or not.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="CTB2"/>
            </field>
            <field>
              <name>NRFS</name>
              <description>Number of Auto-refresh
These bits define the number of consecutive Auto-refresh commands issued when MODE = 011.
....</description>
              <bitOffset>5</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MRD</name>
              <description>Mode Register definition
This 14-bit field defines the SDRAM Mode Register content. The Mode Register is programmed using the Load Mode Register command. The MRD[13:0] bits are also used to program the extended mode register for mobile SDRAM.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>14</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>8191</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>SDRTR</name>
          <displayName>SDRTR</displayName>
          <description>SDRAM refresh timer register</description>
          <addressOffset>0x154</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CRE</name>
              <description>Clear Refresh error flag
This bit is used to clear the Refresh Error Flag (RE) in the Status Register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues>
                <name>CRE</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Refresh Error Flag is cleared</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COUNT</name>
              <description>Refresh Timer Count
This 13-bit field defines the refresh rate of the SDRAM device. It is expressed in number of memory clock cycles. It must be set at least to 41 SDRAM clock cycles (0x29).
Refresh rate = (COUNT + 1) x SDRAM frequency clock
COUNT = (SDRAM refresh period / Number of rows) - 20</description>
              <bitOffset>1</bitOffset>
              <bitWidth>13</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>8191</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>REIE</name>
              <description>RES Interrupt Enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>REIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt is generated if RE = 1</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SDSR</name>
          <displayName>SDSR</displayName>
          <description>SDRAM Status register</description>
          <addressOffset>0x158</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RE</name>
              <description>Refresh error flag
An interrupt is generated if REIE = 1 and RE = 1</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RE</name>
                <enumeratedValue>
                  <name>NoError</name>
                  <description>No refresh error has been detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>A refresh error has been detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MODES1</name>
              <description>Status Mode for Bank 1
These bits define the Status Mode of SDRAM Bank 1.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>MODES1</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>Normal Mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SelfRefresh</name>
                  <description>Self-refresh mode</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PowerDown</name>
                  <description>Power-down mode</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MODES2</name>
              <description>Status Mode for Bank 2
These bits define the Status Mode of SDRAM Bank 2.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="MODES1"/>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>GFXMMU</name>
      <description>Chrom-GRC</description>
      <groupName>GFXMMU</groupName>
      <baseAddress>0x52010000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x3000</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>GFXMMU</name>
        <description>GFXMMU global interrupt</description>
        <value>100</value>
      </interrupt>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>GFXMMU configuration register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>B0OIE</name>
              <description>Buffer 0 overflow interrupt enable
This bit enables the buffer 0 overflow interrupt.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>B1OIE</name>
              <description>Buffer 1 overflow interrupt enable
This bit enables the buffer 1 overflow interrupt.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>B2OIE</name>
              <description>Buffer 2 overflow interrupt enable
This bit enables the buffer 2 overflow interrupt.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>B3OIE</name>
              <description>Buffer 3 overflow interrupt enable
This bit enables the buffer 3 overflow interrupt.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AMEIE</name>
              <description>AXI master error interrupt enable
This bit enables the AXI master error interrupt.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BS</name>
              <description>Block size
This bit defines the size of the blocks</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ATE</name>
              <description>Address translation enable
This bit enables the address translation based on the values programmed in the LUT.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>B0PE</name>
              <description>Buffer 0 packing enable
This bit enables the packing on buffer 0.
The packing is functional only if the block size is configured in 12-byte mode. In 16-byte mode, this bit is ignored.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>B0PM</name>
              <description>Buffer 0 packing mode
This bit selects the byte to be removed during packing operations on buffer 0</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>B1PE</name>
              <description>Buffer 1 packing enable
This bit enables the packing on buffer 1.
The packing is functional only if the block size is configured in 12-byte mode. In 16-byte mode, this bit is ignored.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>B1PM</name>
              <description>Buffer 1 packing mode
This bit selects the byte to be removed during packing operations on buffer 1</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>B2PE</name>
              <description>Buffer 2 packing enable
This bit enables the packing on buffer 2.
The packing is functional only if the block size is configured in 12-byte mode. In 16-byte mode, this bit is ignored.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>B2PM</name>
              <description>Buffer 2 packing mode
This bit selects the byte to be removed during packing operations on buffer 2</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>B3PE</name>
              <description>Buffer 3 packing enable
This bit enables the packing on buffer 3.
The packing is functional only if the block size is configured in 12-byte mode. In 16-byte mode, this bit is ignored.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>B3PM</name>
              <description>Buffer 3 packing mode
This bit selects the byte to be removed during packing operations on buffer 3</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>GFXMMU status register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>B0OF</name>
              <description>Buffer 0 overflow flag
This bit is set when an overflow occurs during the offset calculation of the buffer 0. It is cleared by writing 1 to CB0OF.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>B1OF</name>
              <description>Buffer 1 overflow flag
This bit is set when an overflow occurs during the offset calculation of the buffer 1. It is cleared by writing 1 to CB1OF.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>B2OF</name>
              <description>Buffer 2 overflow flag
This bit is set when an overflow occurs during the offset calculation of the buffer 2. It is cleared by writing 1 to CB2OF.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>B3OF</name>
              <description>Buffer 3 overflow flag
This bit is set when an overflow occurs during the offset calculation of the buffer 3. It is cleared by writing 1 to CB3OF.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>AMEF</name>
              <description>AXI master error flag
This bit is set when an AXI error happens during a transaction. It is cleared by writing 1 to CAMEF.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>FCR</name>
          <displayName>FCR</displayName>
          <description>GFXMMU flag clear register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CB0OF</name>
              <description>Clear buffer 0 overflow flag
Writing 1 clears the buffer 0 overflow flag in the GFXMMU_SR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CB1OF</name>
              <description>Clear buffer 1 overflow flag
Writing 1 clears the buffer 1 overflow flag in the GFXMMU_SR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CB2OF</name>
              <description>Clear buffer 2 overflow flag
Writing 1 clears the buffer 2 overflow flag in the GFXMMU_SR register.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CB3OF</name>
              <description>Clear buffer 3 overflow flag
Writing 1 clears the buffer 3 overflow flag in the GFXMMU_SR register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CAMEF</name>
              <description>Clear AXI master error flag
Writing 1 clears the AXI master error flag in the GFXMMU_SR register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DVR</name>
          <displayName>DVR</displayName>
          <description>GFXMMU default value register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DV</name>
              <description>Default value
This field indicates the default 32-bit value which is returned when a master accesses a virtual memory location not physically mapped.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DAR</name>
          <displayName>DAR</displayName>
          <description>GFXMMU default alpha register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DA</name>
              <description>Default alpha
This field indicates the default 8-bit value which is merged with the 24-bit value when a master accesses a virtual memory location in packed mode.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>B0CR</name>
          <displayName>B0CR</displayName>
          <description>GFXMMU buffer 0 configuration register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PBO</name>
              <description>Physical buffer offset
Offset of the physical buffer.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PBBA</name>
              <description>Physical buffer base address
Base address MSB of the physical buffer.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>9</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>B1CR</name>
          <displayName>B1CR</displayName>
          <description>GFXMMU buffer 1 configuration register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PBO</name>
              <description>Physical buffer offset
Offset of the physical buffer.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PBBA</name>
              <description>Physical buffer base address
Base address MSB of the physical buffer.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>9</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>B2CR</name>
          <displayName>B2CR</displayName>
          <description>GFXMMU buffer 2 configuration register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PBO</name>
              <description>Physical buffer offset
Offset of the physical buffer.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PBBA</name>
              <description>Physical buffer base address
Base address MSB of the physical buffer.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>9</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>B3CR</name>
          <displayName>B3CR</displayName>
          <description>GFXMMU buffer 3 configuration register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PBO</name>
              <description>Physical buffer offset
Offset of the physical buffer.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PBBA</name>
              <description>Physical buffer base address
Base address MSB of the physical buffer.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>9</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <cluster>
          <dim>1024</dim>
          <dimIncrement>0x8</dimIncrement>
          <dimIndex>0-1023</dimIndex>
          <name>LUT%s</name>
          <description>Cluster LUT%s, containing LUT*L, LUT*H</description>
          <addressOffset>0x1000</addressOffset>
          <register>
            <name>LUTL</name>
            <displayName>LUT0L</displayName>
            <description>Graphic MMU LUT entry x low</description>
            <addressOffset>0x0</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>EN</name>
                <description>Enable
Line enable.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>FVB</name>
                <description>First valid block
Number of the first valid block of line number x.</description>
                <bitOffset>8</bitOffset>
                <bitWidth>8</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>LVB</name>
                <description>Last valid block
Number of the last valid block of line number X.</description>
                <bitOffset>16</bitOffset>
                <bitWidth>8</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>LUTH</name>
            <displayName>LUT0H</displayName>
            <description>Graphic MMU LUT entry x high</description>
            <addressOffset>0x4</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>LO</name>
                <description>Line offset
Line offset of line number x expressed in number of blocks</description>
                <bitOffset>0</bitOffset>
                <bitWidth>18</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
        </cluster>
      </registers>
    </peripheral>
    <peripheral>
      <name>GFXTIM</name>
      <description>Graphic timer</description>
      <baseAddress>0x50004000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>GFXTIM</name>
        <description>GFXTIM global interrupt</description>
        <value>94</value>
      </interrupt>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>GFXTIM configuration register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TES</name>
              <description>tearing source
This field selects the tearing-effect source.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TEPOL</name>
              <description>tearing--effect polarity
This bit selects the tearing-effect polarity.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SYNCS</name>
              <description>synchronization source
This field selects the synchronization signals (HSYNC and VSYNC) sources.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FCCOE</name>
              <description>frame-clock calibration output enable
This bit enables the frame-clock output.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LCCOE</name>
              <description>line-clock calibration output enable
This bit enables the line-clock output.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CGCR</name>
          <displayName>CGCR</displayName>
          <description>GFXTIM clock generator configuration register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LCS</name>
              <description>line clock source
This field configures the line clock source.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LCCCS</name>
              <description>line clock counter clock source
This bit configures the clock source for the line clock counter.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LCCFR</name>
              <description>line clock counter force reload
This bit forces line clock counter reload.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>LCCHRS</name>
              <description>line clock counter hardware reload source
This field configures the hardware reload source for the line clock counter.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FCS</name>
              <description>frame clock source
This field configures the frame clock source</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FCCCS</name>
              <description>frame clock counter clock source
This field configures the clock source for the frame clock counter.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FCCFR</name>
              <description>frame clock counter force reload
This bit forces frame clock counter reload</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FCCHRS</name>
              <description>frame- -clock counter hardware reload source
This field configures the hardware reload source for the frame- -clock counter.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TCR</name>
          <displayName>TCR</displayName>
          <description>GFXTIM timers configuration register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>AFCEN</name>
              <description>absolute frame counter enable
This bit enables the absolute frame counter.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FAFCR</name>
              <description>force absolute frame counter reset
This bit forces the reset of the absolute frame counter.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>ALCEN</name>
              <description>absolute line counter enable
This bit enables the absolute line counter.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FALCR</name>
              <description>force absolute line counter reset
This bit forces the reset of the absolute line counter.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>RFC1EN</name>
              <description>relative frame counter 1 enable
This bit enables the relative frame counter 1.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>RFC1CM</name>
              <description>relative frame counter 1 continuous mode
This bit enables the continuous mode of the relative frame counter 1.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRFC1R</name>
              <description>force relative frame counter 1 reload
This bit forces the reload of the relative frame counter 1.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>RFC2EN</name>
              <description>relative frame counter 2 enable
This bit enables the relative frame counter 2.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>RFC2CM</name>
              <description>relative frame counter 2 continuous mode
This bit enables the continuous mode of the relative frame counter 2.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRFC2R</name>
              <description>force relative frame counter 2 reload
This bit forces the reload of the relative frame counter 2.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TDR</name>
          <displayName>TDR</displayName>
          <description>GFXTIM timers disable register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>AFCDIS</name>
              <description>absolute frame counter disable
This bit disables the absolute frame counter.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>ALCDIS</name>
              <description>absolute line counter disable
This bit disables the absolute line counter.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>RFC1DIS</name>
              <description>relative frame counter 1 disable
This bit disables the relative frame counter 1.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>RFC2DIS</name>
              <description>relative frame counter 2 disable
This bit disables the relative frame counter 2.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>EVCR</name>
          <displayName>EVCR</displayName>
          <description>GFXTIM events control register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>EV1EN</name>
              <description>event 1 enable
This bit enables the complex event 1 generation.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EV2EN</name>
              <description>event 2 enable
This bit enables the complex event 2 generation.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EV3EN</name>
              <description>event 3 enable
This bit enables the complex event 3 generation.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EV4EN</name>
              <description>event 4 enable
This bit enables the complex event 4 generation.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>EVSR</name>
          <displayName>EVSR</displayName>
          <description>GFXTIM events selection register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LES1</name>
              <description>line-event selection 1
This field defines the line-event selection for complex event 1 generation.
others: reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FES1</name>
              <description>frame-event selection 1
This field defines the frame-event selection for complex event 1 generation.
others: reserved</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LES2</name>
              <description>line-event selection 2
This field defines the line-event selection for complex event 2 generation.
others: reserved</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FES2</name>
              <description>frame-event selection 2
This field defines the frame-event selection for complex event 2 generation.
others: reserved</description>
              <bitOffset>12</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LES3</name>
              <description>line-event selection 3
This field defines the line-event selection for complex event 3 generation.
others: reserved</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FES3</name>
              <description>frame-event selection 3
This field defines the frame-event selection for complex event 3 generation.
others: reserved</description>
              <bitOffset>20</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LES4</name>
              <description>line-event selection 4
This field defines the line-event selection for complex event 4 generation.
others: Reserved</description>
              <bitOffset>24</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FES4</name>
              <description>frame-event selection 4
This field defines the frame-event selection for complex event 4 generation.
others: reserved</description>
              <bitOffset>28</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>WDGTCR</name>
          <displayName>WDGTCR</displayName>
          <description>GFXTIM watchdog timer configuration register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>WDGEN</name>
              <description>watchdog enable
This bit enables the graphic watchdog.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>WDGDIS</name>
              <description>watchdog disable
This bit disables the graphic watchdog.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>WDGS</name>
              <description>watchdog status
This bit returns the status of the graphic watchdog.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>WDGHRC</name>
              <description>watchdog hardware reload configuration
This field configures the watchdog hardware reload.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WDGCS</name>
              <description>watchdog clock source
This field selects the watchdog clock source.
others: reserved</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FWDGR</name>
              <description>force watchdog reload
This bit forces the reload of the graphic watchdog.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ISR</name>
          <displayName>ISR</displayName>
          <description>GFXTIM interrupt status register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>AFCOF</name>
              <description>absolute frame counter overflow flag
This bit indicates an overflow occurred on the absolute frame counter.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ALCOF</name>
              <description>absolute line counter overflow flag
This bit indicates an overflow occurred on the absolute line counter.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TEF</name>
              <description>tearing-effect flag
This bit indicates a tearing effect event occurred.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>AFCC1F</name>
              <description>absolute frame counter compare 1 flag
This bit indicates match on compare 1 of the absolute frame counter.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ALCC1F</name>
              <description>absolute line counter compare 1 flag
This bit indicates match on compare 1 of the absolute line counter.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ALCC2F</name>
              <description>absolute line counter compare 2 flag
This bit indicates match on compare 2 of the absolute line counter.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RFC1RF</name>
              <description>relative frame counter 1 reload flag
This bit indicates relative frame counter 1 has been reloaded.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RFC2RF</name>
              <description>relative frame counter 2 reload flag
This bit indicates relative frame counter 2 has been reloaded.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EV1F</name>
              <description>event 1 flag
This bit indicates a complex event 1 occurred.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EV2F</name>
              <description>event 2 flag
This bit indicates a complex event 2 occurred.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EV3F</name>
              <description>event 3 flag
This bit indicates a complex event 3 occurred.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EV4F</name>
              <description>event 4 flag
This bit indicates a complex event 4 occurred.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>WDGAF</name>
              <description>watchdog alarm flag
This bit indicates that a graphic watchdog alarm occurred.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>WDGPF</name>
              <description>watchdog pre-alarm flag
This bit indicates that a graphic watchdog pre-alarm occurred.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ICR</name>
          <displayName>ICR</displayName>
          <description>GFXTIM interrupt clear register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CAFCOF</name>
              <description>clear absolute frame counter overflow flag
This bit clears AFCOF in GXTIM_ISR.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CALCOF</name>
              <description>clear absolute line counter overflow flag
This bit clears ALCOF in GXTIM_ISR.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CTEF</name>
              <description>clear tearing-effect flag
This bit clears TEF in GXTIM_ISR.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CAFCC1F</name>
              <description>clear absolute frame counter compare 1 flag
This bit clears AFCC1F in GXTIM_ISR.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CALCC1F</name>
              <description>clear absolute line counter compare 1 flag
This bit clears ALCC1F in GXTIM_ISR.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CALCC2F</name>
              <description>clear absolute line counter compare 2 flag
This bit clears ALCC2F in GXTIM_ISR.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CRFC1RF</name>
              <description>clear relative frame counter 1 reload flag
This bit clears RFC1RF in GXTIM_ISR.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CRFC2RF</name>
              <description>clear relative frame counter 2 reload flag
This bit clears RFC2RF in GXFXTIM_ISR.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CEV1F</name>
              <description>clear event 1 flag
This bit EV1F in GXFXTIM_ISR.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CEV2F</name>
              <description>clear event 2 flag
This bit clears EV2F in GXFXTIM_ISR.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CEV3F</name>
              <description>clear event 3 flag
This bit clears EV3F in GXFXTIM_ISR.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CEV4F</name>
              <description>clear event 4 flag
This bit clears EV4F in GXFXTIM_ISR.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CWDGAF</name>
              <description>clear watchdog alarm flag
This bit clears WDGAF in GXFXTIM_ISR.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CWDGPF</name>
              <description>clear watchdog pre-alarm flag
This bit clears WDGPF in GXFXTIM_ISR.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IER</name>
          <displayName>IER</displayName>
          <description>GFXTIM interrupt enable register</description>
          <addressOffset>0x38</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>AFCOIE</name>
              <description>absolute frame counter overflow interrupt enable
This bit enables the absolute frame counter overflow interrupt generation.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ALCOIE</name>
              <description>absolute line counter overflow interrupt enable
This bit enables the absolute line counter overflow interrupt generation.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TEIE</name>
              <description>tearing-effect interrupt enable
This bit enables the Tearing Effect interrupt generation.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AFCC1IE</name>
              <description>absolute frame counter compare 1 interrupt enable
This bit enables the absolute frame counter compare interrupt generation.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ALCC1IE</name>
              <description>absolute line counter compare 1 interrupt enable
This bit enables the absolute line counter compare 1 interrupt generation.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ALCC2IE</name>
              <description>absolute line counter compare 2 interrupt enable
This bit enables the absolute line counter compare 2 interrupt generation.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RFC1RIE</name>
              <description>relative frame counter 1 reload interrupt enable
This bit enables the relative frame counter 1 reload interrupt generation.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RFC2RIE</name>
              <description>relative frame counter 2 reload interrupt enable
This bit enables the relative frame counter 2 reload interrupt generation.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EV1IE</name>
              <description>event 1 interrupt enable
This bit enables the complex event 1 interrupt generation.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EV2IE</name>
              <description>event 2 interrupt enable
This bit enables the complex event 2 interrupt generation.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EV3IE</name>
              <description>event 3 interrupt enable
This bit enables the complex event 3 interrupt generation.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EV4IE</name>
              <description>event 4 interrupt enable
This bit enables the complex event 4 interrupt generation.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WDGAIE</name>
              <description>watchdog alarm interrupt enable
This bit enables the watchdog alarm interrupt generation.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WDGPIE</name>
              <description>watchdog pre-alarm interrupt enable
This bit enables the watchdog pre-alarm interrupt generation.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TSR</name>
          <displayName>TSR</displayName>
          <description>GFXTIM timers status register</description>
          <addressOffset>0x3C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>AFCS</name>
              <description>absolute frame counter status
This bit returns the status of the absolute frame counter.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ALCS</name>
              <description>absolute line counter status
This bit returns the status of the absolute line counter.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RFC1S</name>
              <description>relative frame counter 1 status
This bit returns the status of the relative frame counter 1.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RFC2S</name>
              <description>relative frame counter 2 status
This bit returns the status of the relative frame counter 2.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>LCCRR</name>
          <displayName>LCCRR</displayName>
          <description>GFXTIM line clock counter reload register</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RELOAD</name>
              <description>reload value
Reload value of the line clock counter.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>22</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>FCCRR</name>
          <displayName>FCCRR</displayName>
          <description>GFXTIM frame clock counter reload register</description>
          <addressOffset>0x44</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RELOAD</name>
              <description>reload value
Reload value of the frame clock counter.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ATR</name>
          <displayName>ATR</displayName>
          <description>GFXTIM absolute time register</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LINE</name>
              <description>line number
Current value of the absolute line counter.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>FRAME</name>
              <description>fame number
Current value of the absolute frame counter.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>20</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>AFCR</name>
          <displayName>AFCR</displayName>
          <description>GFXTIM absolute frame counter register</description>
          <addressOffset>0x54</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FRAME</name>
              <description>frame number
Current value of the absolute frame counter.
Note: This field can only be written when the absolute frame counter is disabled.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>20</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ALCR</name>
          <displayName>ALCR</displayName>
          <description>GFXTIM absolute line counter register</description>
          <addressOffset>0x58</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LINE</name>
              <description>line number
Current value of the absolute line counter.
Note: This field can only be written when the absolute frame counter is disabled.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>AFCC1R</name>
          <displayName>AFCC1R</displayName>
          <description>GFXTIM absolute frame counter compare 1 register</description>
          <addressOffset>0x60</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FRAME</name>
              <description>frame number
Compare 1 value for the absolute frame counter.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>20</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ALCC1R</name>
          <displayName>ALCC1R</displayName>
          <description>GFXTIM absolute line counter compare 1 register</description>
          <addressOffset>0x70</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LINE</name>
              <description>line number
Compare value 1 for the absolute line counter.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ALCC2R</name>
          <displayName>ALCC2R</displayName>
          <description>GFXTIM absolute line counter compare 2 register</description>
          <addressOffset>0x74</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LINE</name>
              <description>line number
Compare value 2 for the absolute line counter.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RFC1R</name>
          <displayName>RFC1R</displayName>
          <description>GFXTIM relative frame counter 1 register</description>
          <addressOffset>0x80</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FRAME</name>
              <description>frame number
Current value of the relative frame counter 1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RFC1RR</name>
          <displayName>RFC1RR</displayName>
          <description>GFXTIM relative frame counter 1 reload register</description>
          <addressOffset>0x84</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FRAME</name>
              <description>frame reload value
Reload value for the relative frame counter 1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RFC2R</name>
          <displayName>RFC2R</displayName>
          <description>GFXTIM relative frame counter 2 register</description>
          <addressOffset>0x88</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FRAME</name>
              <description>frame number
Current value of the relative frame counter 2.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RFC2RR</name>
          <displayName>RFC2RR</displayName>
          <description>GFXTIM relative frame counter 2 reload register</description>
          <addressOffset>0x8C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FRAME</name>
              <description>frame reload value
Reload value for the relative frame counter 2.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>WDGCR</name>
          <displayName>WDGCR</displayName>
          <description>GFXTIM watchdog counter register</description>
          <addressOffset>0xA0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>VALUE</name>
              <description>value
Current value of the watchdog counter.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>WDGRR</name>
          <displayName>WDGRR</displayName>
          <description>GFXTIM watchdog reload register</description>
          <addressOffset>0xA4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RELOAD</name>
              <description>reload value
Reload value of the watchdog counter.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>WDGPAR</name>
          <displayName>WDGPAR</displayName>
          <description>GFXTIM watchdog pre-alarm register</description>
          <addressOffset>0xA8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PREALARM</name>
              <description>pre-alarm value
Pre-alarm value of the watchdog counter.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>GPDMA</name>
      <description>General purpose direct memory access controller</description>
      <groupName>GPDMA</groupName>
      <baseAddress>0x40021000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x1000</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>GPDMA1_CH0</name>
        <description>GPDMA1 channel 0 interrupt</description>
        <value>39</value>
      </interrupt>
      <interrupt>
        <name>GPDMA1_CH1</name>
        <description>GPDMA1 channel 1 interrupt</description>
        <value>40</value>
      </interrupt>
      <interrupt>
        <name>GPDMA1_CH2</name>
        <description>GPDMA1 channel 2 interrupt</description>
        <value>41</value>
      </interrupt>
      <interrupt>
        <name>GPDMA1_CH3</name>
        <description>GPDMA1 channel 3 interrupt</description>
        <value>42</value>
      </interrupt>
      <interrupt>
        <name>GPDMA1_CH4</name>
        <description>GPDMA1 channel 4 interrupt</description>
        <value>43</value>
      </interrupt>
      <interrupt>
        <name>GPDMA1_CH5</name>
        <description>GPDMA1 channel 5 interrupt</description>
        <value>44</value>
      </interrupt>
      <interrupt>
        <name>GPDMA1_CH6</name>
        <description>GPDMA1 channel 6 interrupt</description>
        <value>45</value>
      </interrupt>
      <interrupt>
        <name>GPDMA1_CH7</name>
        <description>GPDMA1 channel 7 interrupt</description>
        <value>46</value>
      </interrupt>
      <interrupt>
        <name>GPDMA1_CH8</name>
        <description>GPDMA1 channel 8 interrupt</description>
        <value>133</value>
      </interrupt>
      <interrupt>
        <name>GPDMA1_CH9</name>
        <description>GPDMA1 channel 9 interrupt</description>
        <value>134</value>
      </interrupt>
      <interrupt>
        <name>GPDMA1_CH10</name>
        <description>GPDMA1 channel 10 interrupt</description>
        <value>135</value>
      </interrupt>
      <interrupt>
        <name>GPDMA1_CH11</name>
        <description>GPDMA1 channel 11 interrupt</description>
        <value>136</value>
      </interrupt>
      <interrupt>
        <name>GPDMA1_CH12</name>
        <description>GPDMA1 channel 12 interrupt</description>
        <value>137</value>
      </interrupt>
      <interrupt>
        <name>GPDMA1_CH13</name>
        <description>GPDMA1 channel 13 interrupt</description>
        <value>138</value>
      </interrupt>
      <interrupt>
        <name>GPDMA1_CH14</name>
        <description>GPDMA1 channel 14 interrupt</description>
        <value>139</value>
      </interrupt>
      <interrupt>
        <name>GPDMA1_CH15</name>
        <description>GPDMA1 channel 15 interrupt</description>
        <value>140</value>
      </interrupt>
      <interrupt>
        <name>GPU2D</name>
        <description>GPU2D global interrupt</description>
        <value>149</value>
      </interrupt>
      <interrupt>
        <name>GPU2D_ER</name>
        <description>GPU2D error interrupt</description>
        <value>150</value>
      </interrupt>
      <interrupt>
        <name>TCACHE</name>
        <description>GPU cache interrupt</description>
        <value>151</value>
      </interrupt>
      <registers>
        <register>
          <name>PRIVCFGR</name>
          <displayName>PRIVCFGR</displayName>
          <description>GPDMA privileged configuration register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>PRIV%s</name>
              <description>privileged state of channel x</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RCFGLOCKR</name>
          <displayName>RCFGLOCKR</displayName>
          <description>GPDMA configuration lock register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>LOCK%s</name>
              <description>lock the configuration of GPDMA_PRIVCFGR.PRIVx, until a global GPDMA reset
This bit is cleared after reset and, once set, it cannot be reset until a global GPDMA reset.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MISR</name>
          <displayName>MISR</displayName>
          <description>GPDMA masked interrupt status register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>MIS%s</name>
              <description>masked interrupt status of channel x</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <cluster>
          <dim>12</dim>
          <dimIncrement>0x80</dimIncrement>
          <dimIndex>0-11</dimIndex>
          <name>CH%s</name>
          <description>Channel cluster</description>
          <addressOffset>0x50</addressOffset>
          <register>
            <name>LBAR</name>
            <displayName>C0LBAR</displayName>
            <description>GPDMA channel 0 linked-list base address register</description>
            <addressOffset>0x0</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>LBA</name>
                <description>linked-list base address of GPDMA channel x</description>
                <bitOffset>16</bitOffset>
                <bitWidth>16</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>FCR</name>
            <displayName>C0FCR</displayName>
            <description>GPDMA channel 0 flag clear register</description>
            <addressOffset>0xC</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>TCF</name>
                <description>transfer complete flag clear</description>
                <bitOffset>8</bitOffset>
                <bitWidth>1</bitWidth>
                <access>write-only</access>
              </field>
              <field>
                <name>HTF</name>
                <description>half transfer flag clear</description>
                <bitOffset>9</bitOffset>
                <bitWidth>1</bitWidth>
                <access>write-only</access>
              </field>
              <field>
                <name>DTEF</name>
                <description>data transfer error flag clear</description>
                <bitOffset>10</bitOffset>
                <bitWidth>1</bitWidth>
                <access>write-only</access>
              </field>
              <field>
                <name>ULEF</name>
                <description>update link transfer error flag clear</description>
                <bitOffset>11</bitOffset>
                <bitWidth>1</bitWidth>
                <access>write-only</access>
              </field>
              <field>
                <name>USEF</name>
                <description>user setting error flag clear</description>
                <bitOffset>12</bitOffset>
                <bitWidth>1</bitWidth>
                <access>write-only</access>
              </field>
              <field>
                <name>SUSPF</name>
                <description>completed suspension flag clear</description>
                <bitOffset>13</bitOffset>
                <bitWidth>1</bitWidth>
                <access>write-only</access>
              </field>
              <field>
                <name>TOF</name>
                <description>trigger overrun flag clear</description>
                <bitOffset>14</bitOffset>
                <bitWidth>1</bitWidth>
                <access>write-only</access>
              </field>
            </fields>
          </register>
          <register>
            <name>SR</name>
            <displayName>C0SR</displayName>
            <description>GPDMA channel 0 status register</description>
            <addressOffset>0x10</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000001</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>IDLEF</name>
                <description>idle flag
This idle flag is deasserted by hardware when the channel is enabled (GPDMA_CxCR.EN = 1) with a valid channel configuration (no USEF to be immediately reported).
This idle flag is asserted after hard reset or by hardware when the channel is back in idle state (in suspended or disabled state).</description>
                <bitOffset>0</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-only</access>
              </field>
              <field>
                <name>TCF</name>
                <description>transfer complete flag
A transfer complete event is either a block transfer complete, a 2D/repeated block transfer complete, or a LLI transfer complete including the upload of the next LLI if any, or the full linked-list completion, depending on the transfer complete event mode (GPDMA_CxTR2.TCEM[1:0]).</description>
                <bitOffset>8</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-only</access>
              </field>
              <field>
                <name>HTF</name>
                <description>half transfer flag
A half transfer event is either a half block transfer or a half 2D/repeated block transfer, depending on the transfer complete event mode (GPDMA_CxTR2.TCEM[1:0]). 
A half block transfer occurs when half of the bytes of the source block size (rounded up integer of GPDMA_CxBR1.BNDT[15:0]/2) has been transferred to the destination. 
A half 2D/repeated block transfer occurs when half of the repeated blocks (rounded up integer of (GPDMA_CxBR1.BRC[10:0]+1)/2)) has been transferred to the destination.</description>
                <bitOffset>9</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-only</access>
              </field>
              <field>
                <name>DTEF</name>
                <description>data transfer error flag</description>
                <bitOffset>10</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-only</access>
              </field>
              <field>
                <name>ULEF</name>
                <description>update link transfer error flag</description>
                <bitOffset>11</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-only</access>
              </field>
              <field>
                <name>USEF</name>
                <description>user setting error flag</description>
                <bitOffset>12</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-only</access>
              </field>
              <field>
                <name>SUSPF</name>
                <description>completed suspension flag</description>
                <bitOffset>13</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-only</access>
              </field>
              <field>
                <name>TOF</name>
                <description>trigger overrun flag</description>
                <bitOffset>14</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-only</access>
              </field>
              <field>
                <name>FIFOL</name>
                <description>monitored FIFO level
Number of available write beats in the FIFO, in units of the programmed destination data width (see GPDMA_CxTR1.DDW_LOG2[1:0], in units of bytes, half-words, or words).
Note: After having suspended an active transfer, the user may need to read FIFOL[7:0], additionally to GPDMA_CxBR1.BDNT[15:0] and GPDMA_CxBR1.BRC[10:0], to know how many data have been transferred to the destination. Before reading, the user may wait for the transfer to be suspended (GPDMA_CxSR.SUSPF = 1).</description>
                <bitOffset>16</bitOffset>
                <bitWidth>8</bitWidth>
                <access>read-only</access>
              </field>
            </fields>
          </register>
          <register>
            <name>CR</name>
            <displayName>C0CR</displayName>
            <description>GPDMA channel 0 control register</description>
            <addressOffset>0x14</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>EN</name>
                <description>enable
Writing 1 into the field RESET (bit 1) causes the hardware to de-assert this bit, whatever is written into this bit 0. Else: 
this bit is deasserted by hardware when there is a transfer error (master bus error or user setting error) or when there is a channel transfer complete (channel ready to be configured, for example if LSM = 1 at the end of a single execution of the LLI).
Else, this bit can be asserted by software. 
Writing 0 into this EN bit is ignored.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>RESET</name>
                <description>reset
This bit is write only. Writing 0 has no impact. Writing 1 implies the reset of the following: the FIFO, the channel internal state, SUSP and EN bits (whatever is written receptively in bit 2 and bit 0).
The reset is effective when the channel is in steady state, meaning one of the following:
- active channel in suspended state (GPDMA_CxSR.SUSPF = 1 and GPDMA_CxSR.IDLEF = GPDMA_CxCR.EN = 1)
- channel in disabled state (GPDMA_CxSR.IDLEF = 1 and GPDMA_CxCR.EN = 0).
After writing a RESET, to continue using this channel, the user must explicitly reconfigure the channel including the hardware-modified configuration registers (GPDMA_CxBR1, GPDMA_CxSAR and GPDMA_CxDAR) before enabling again the channel (see the programming sequence in Figure 47).</description>
                <bitOffset>1</bitOffset>
                <bitWidth>1</bitWidth>
                <access>write-only</access>
              </field>
              <field>
                <name>SUSP</name>
                <description>suspend
Writing 1 into the field RESET (bit 1) causes the hardware to de-assert this bit, whatever is written into this bit 2. Else:
Software must write 1 in order to suspend an active channel (channel with an ongoing GPDMA transfer over its master ports). 
The software must write 0 in order to resume a suspended channel, following the programming sequence detailed in Figure 46.</description>
                <bitOffset>2</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>TCIE</name>
                <description>transfer complete interrupt enable</description>
                <bitOffset>8</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>HTIE</name>
                <description>half transfer complete interrupt enable</description>
                <bitOffset>9</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>DTEIE</name>
                <description>data transfer error interrupt enable</description>
                <bitOffset>10</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>ULEIE</name>
                <description>update link transfer error interrupt enable</description>
                <bitOffset>11</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>USEIE</name>
                <description>user setting error interrupt enable</description>
                <bitOffset>12</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>SUSPIE</name>
                <description>completed suspension interrupt enable</description>
                <bitOffset>13</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>TOIE</name>
                <description>trigger overrun interrupt enable</description>
                <bitOffset>14</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>LSM</name>
                <description>Link step mode
First the (possible 1D/repeated) block transfer is executed as defined by the current internal register file until GPDMA_CxBR1.BNDT[15:0] = 0 and GPDMA_CxBR1.BRC[10:0] = 0. Secondly the next linked-list data structure is conditionally uploaded from memory as defined by GPDMA_CxLLR. Then channel execution is completed.
Note: This bit must be written when EN = 0. This bit is read-only when EN = 1.</description>
                <bitOffset>16</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>LAP</name>
                <description>linked-list allocated port
This bit is used to allocate the master port for the update of the GPDMA linked-list registers from the memory.
Note: This bit must be written when EN=0. This bit is read-only when EN=1.</description>
                <bitOffset>17</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>PRIO</name>
                <description>priority level of the channel x GPDMA transfer versus others
Note: This bit must be written when EN = 0. This bit is read-only when EN = 1.</description>
                <bitOffset>22</bitOffset>
                <bitWidth>2</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>TR1</name>
            <displayName>C0TR1</displayName>
            <description>GPDMA channel 0 transfer register 1</description>
            <addressOffset>0x40</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>SDW_LOG2</name>
                <description>binary logarithm of the source data width of a burst in bytes
Setting a 8-byte data width causes a user setting error to be reported and no transfer is issued.
A source block size must be a multiple of the source data width (GPDMA_CxBR1.BNDT[2:0] versus SDW_LOG2[1:0]). Otherwise, a user setting error is reported and no transfer is issued.
Note: A source burst transfer must have an aligned address with its data width (start address GPDMA_CxSAR[2:0] versus SDW_LOG2[1:0]). Otherwise, a user setting error is reported and none transfer is issued.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>2</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>SINC</name>
                <description>source incrementing burst
The source address, pointed by GPDMA_CxSAR, is kept constant after a burst beat/single transfer or is incremented by the offset value corresponding to a contiguous data after a burst beat/single transfer.</description>
                <bitOffset>3</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>SBL_1</name>
                <description>source burst length minus 1, between 0 and 63
The burst length unit is one data named beat within a burst. If SBL_1[5:0] =0 , the burst can be named as single. Each data/beat has a width defined by the destination data width SDW_LOG2[1:0].
Note: If a burst transfer crossed a 1-Kbyte address boundary on a AHB transfer, the GPDMA modifies and shortens the programmed burst into singles or bursts of lower length, to be compliant with the AHB protocol.
Note: If a burst transfer is of length greater than the FIFO size of the channel x, the GPDMA modifies and shortens the programmed burst into singles or bursts of lower length, to be compliant with the FIFO size. Transfer performance is lower, with GPDMA re-arbitration between effective and lower singles/bursts, but the data integrity is guaranteed.</description>
                <bitOffset>4</bitOffset>
                <bitWidth>6</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>PAM</name>
                <description>padding/alignment mode
If DDW_LOG2[1:0] = SDW_LOG2[1:0]: if the data width of a burst destination transfer is equal to the data width of a burst source transfer, these bits are ignored.
Else, in the following enumerated values, the condition PAM_1 is when destination data width is higher that source data width, and the condition PAM_2 is when destination data width is higher than source data width.
Note: If the transfer from the source peripheral is configured with peripheral flow-control mode (SWREQ = 0 and PFREQ = 1 and DREQ = 0), and if the destination data width &gt; the source data width, packing is not supported.</description>
                <bitOffset>11</bitOffset>
                <bitWidth>2</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>SBX</name>
                <description>source byte exchange within the unaligned half-word of each source word 
If the source data width is shorter than a word, this bit is ignored.
If the source data width is a word:</description>
                <bitOffset>13</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>SAP</name>
                <description>source allocated port
This bit is used to allocate the master port for the source transfer
Note: This bit must be written when EN = 0. This bit is read-only when EN = 1.</description>
                <bitOffset>14</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>DDW_LOG2</name>
                <description>binary logarithm of the destination data width of a burst, in bytes
Setting a 8-byte data width causes a user setting error to be reported and none transfer is issued.
Note: A destination burst transfer must have an aligned address with its data width (start address GPDMA_CxDAR[2:0] and address offset GPDMA_CxTR3.DAO[2:0], versus DDW_LOG2[1:0]). Otherwise a user setting error is reported and no transfer is issued.</description>
                <bitOffset>16</bitOffset>
                <bitWidth>2</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>DINC</name>
                <description>destination incrementing burst
The destination address, pointed by GPDMA_CxDAR, is kept constant after a burst beat/single transfer, or is incremented by the offset value corresponding to a contiguous data after a burst beat/single transfer.</description>
                <bitOffset>19</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>DBL_1</name>
                <description>destination burst length minus 1, between 0 and 63
The burst length unit is one data named beat within a burst. If DBL_1[5:0] =0 , the burst can be named as single. Each data/beat has a width defined by the destination data width DDW_LOG2[1:0].
Note: If a burst transfer crossed a 1-Kbyte address boundary on a AHB transfer, the GPDMA modifies and shortens the programmed burst into singles or bursts of lower length, to be compliant with the AHB protocol.
Note: If a burst transfer is of length greater than the FIFO size of the channel x, the GPDMA modifies and shortens the programmed burst into singles or bursts of lower length, to be compliant with the FIFO size. Transfer performance is lower, with GPDMA re-arbitration between effective and lower singles/bursts, but the data integrity is guaranteed.</description>
                <bitOffset>20</bitOffset>
                <bitWidth>6</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>DBX</name>
                <description>destination byte exchange
If the destination data size is a byte, this bit is ignored.
If the destination data size is not a byte:</description>
                <bitOffset>26</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>DHX</name>
                <description>destination half-word exchange
If the destination data size is shorter than a word, this bit is ignored.
If the destination data size is a word:</description>
                <bitOffset>27</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>DAP</name>
                <description>destination allocated port
This bit is used to allocate the master port for the destination transfer
Note: This bit must be written when EN = 0. This bit is read-only when EN = 1.</description>
                <bitOffset>30</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>TR2</name>
            <displayName>C0TR2</displayName>
            <description>GPDMA channel 0 transfer register 2</description>
            <addressOffset>0x44</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>REQSEL</name>
                <description>GPDMA hardware request selection
These bits are ignored if channel x is activated (GPDMA_CxCR.EN asserted) with SWREQ = 1 (software request for a memory-to-memory transfer). Else, the selected hardware request is internally taken into account as per Section 14.3.3.
The user must not assign a same input hardware request (same REQSEL[6:0] value) to different active GPDMA channels (GPDMA_CxCR.EN = 1 and GPDMA_CxTR2.SWREQ = 0 for these channels). GPDMA is not intended to hardware support the case of simultaneous enabled channels incorrectly configured with a same hardware peripheral request signal, and there is no user setting error reporting.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>7</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>SWREQ</name>
                <description>software request
This bit is internally taken into account when GPDMA_CxCR.EN is asserted.</description>
                <bitOffset>9</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>DREQ</name>
                <description>destination hardware request
This bit is ignored if channel x is activated (GPDMA_CxCR.EN asserted) with SWREQ = 1 (software request for a memory-to-memory transfer). Else:
Note: If the channel x is activated (GPDMA_CxCR.EN is asserted) with SWREQ = 0 and PFREQ = 1 (peripheral hardware request with peripheral flow-control mode), any software assertion to this DREQ bit is ignored: in peripheral flow-control mode, only a peripheral-to-memory transfer is supported.</description>
                <bitOffset>10</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>BREQ</name>
                <description>Block hardware request
If the channel x is activated (GPDMA_CxCR.EN asserted) with SWREQ = 1 (software request for a memory-to-memory transfer), this bit is ignored. Else:</description>
                <bitOffset>11</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>PFREQ</name>
                <description>Hardware request in peripheral flow control mode
Important: If a given channel x is not implemented with this feature, this bit is reserved and PFREQ is not present (see Section 14.3.1 for the list of the implemented channels with this feature.
If the channel x is activated (GPDMA_CxCR.EN asserted) with SWREQ = 1 (software request for a memory-to-memory transfer), this bit is ignored. Else:
Note: In peripheral flow control mode, there are the following restrictions: 
Note: - no 2D/repeated block support (GPDMA_CxBR1.BRC[10:0] must be set to 0)
Note: - the peripheral must be set as the source of the transfer (DREQ = 0).
Note: - data packing to a wider destination width is not supported (if destination width &gt; source data width, GPDMA_CxTR1.PAM[1] must be set to 0).
Note: - GPDMA_CxBR1.BNDT[15:0] must be programmed as a multiple of the source (peripheral) burst size.</description>
                <bitOffset>12</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>TRIGM</name>
                <description>trigger mode
These bits define the transfer granularity for its conditioning by the trigger.
If the channel x is enabled (GPDMA_CxCR.EN asserted) with TRIGPOL[1:0] = 00 or 11, these TRIGM[1:0] bits are ignored.
Else, a GPDMA transfer is conditioned by at least one trigger hit: 
  If the peripheral is programmed as a source (DREQ = 0) of the LLI data transfer, each programmed burst read is conditioned.
  If the peripheral is programmed as a destination (DREQ = 1) of the LLI data transfer, each programmed burst write is conditioned. The first memory burst read of a (possibly 2D/repeated) block, also named as the first ready FIFO-based source burst, is gated by the occurrence of both the hardware request and the first trigger hit.
The GPDMA monitoring of a trigger for channel x is started when the channel is enabled/loaded with a new active trigger configuration: rising or falling edge on a selected trigger (TRIGPOL[1:0] = 01 or respectively TRIGPOL[1:0] = 10).
The monitoring of this trigger is kept active during the triggered and uncompleted (data or link) transfer; and if a new trigger is detected then, this hit is internally memorized to grant the next transfer, as long as the defined rising or falling edge is not modified, and the TRIGSEL[5:0] is not modified, and the channel is enabled.
Transferring a next LLI&lt;sub&gt;n+1&lt;/sub&gt; that updates the GPDMA_CxTR2 with a new value for any of TRIGSEL[5:0] or TRIGPOL[1:0], resets the monitoring, trashing the memorized hit of the formerly defined LLI&lt;sub&gt;n &lt;/sub&gt;trigger.
After a first new trigger hit&lt;sub&gt;n+1&lt;/sub&gt; is memorized, if another second trigger hit&lt;sub&gt;n+2&lt;/sub&gt; is detected and if the hit&lt;sub&gt;n&lt;/sub&gt; triggered transfer is still not completed, hit&lt;sub&gt;n+2 &lt;/sub&gt;is lost and not memorized.memorized. A trigger overrun flag is reported (GPDMA_CxSR.TOF =1 ), and an interrupt is generated if enabled (GPDMA_CxCR.TOIE = 1). The channel is not automatically disabled by hardware due to a trigger overrun. 
Note: When the source block size is not a multiple of the source burst size and is a multiple of the source data width, then the last programmed source burst is not completed and is internally shorten to match the block size. In this case, if TRIGM[1:0] = 11 and (SWREQ =1  or (SWREQ = 0 and DREQ =0 )), the shortened burst transfer (by singles or/and by bursts of lower length) is conditioned once by the trigger.
Note: When the programmed destination burst is internally shortened by singles or/and by bursts of lower length (versus FIFO size, versus block size, 1-Kbyte boundary address crossing): if the trigger is conditioning the programmed destination burst (if TRIGM[1:0] = 11 and SWREQ = 0 and DREQ = 1), this shortened destination burst transfer is conditioned once by the trigger.</description>
                <bitOffset>14</bitOffset>
                <bitWidth>2</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>TRIGSEL</name>
                <description>trigger event input selection
These bits select the trigger event input of the GPDMA transfer (as per Section 14.3.6), with an active trigger event if TRIGPOL[1:0] different from 00.</description>
                <bitOffset>16</bitOffset>
                <bitWidth>6</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>TRIGPOL</name>
                <description>trigger event polarity
These bits define the polarity of the selected trigger event input defined by TRIGSEL[5:0].</description>
                <bitOffset>24</bitOffset>
                <bitWidth>2</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>TCEM</name>
                <description>transfer complete event mode
These bits define the transfer granularity for the transfer complete and half transfer complete events generation.
Note: If the initial LLI&lt;sub&gt;0 &lt;/sub&gt;data transfer is null/void (directly programmed by the internal register file with GPDMA_CxBR1.BNDT[15:0] = 0), then neither the complete transfer event nor the half transfer event is generated.
Note: If the initial LLI&lt;sub&gt;0 &lt;/sub&gt;data transfer is null/void (directly programmed by the internal register file with GPDMA_CxBR1.BNDT[15:0] = 0), then neither the complete transfer event nor the half transfer event is generated.
Note: If the initial LLI&lt;sub&gt;0 &lt;/sub&gt;data transfer is null/void (directly programmed by the internal register file with GPDMA_CxBR1.BNDT[15:0] = 0), then the half transfer event is not generated, and the transfer complete event is generated when is completed the loading of the LLI&lt;sub&gt;1&lt;/sub&gt;.</description>
                <bitOffset>30</bitOffset>
                <bitWidth>2</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>BR1</name>
            <displayName>C0BR1</displayName>
            <description>GPDMA channel 0 block register 1</description>
            <addressOffset>0x48</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>BNDT</name>
                <description>block number of data bytes to transfer from the source
Block size transferred from the source. When the channel is enabled, this field becomes read-only and is decremented, indicating the remaining number of data items in the current source block to be transferred. BNDT[15:0] is programmed in number of bytes, maximum source block size is 64 Kbytes -1.
Once the last data transfer is completed (BNDT[15:0] = 0):
- if GPDMA_CxLLR.UB1 = 1, this field is updated by the LLI in the memory.
- if GPDMA_CxLLR.UB1 = 0 and if there is at least one non null Uxx update bit, this field is internally restored to the programmed value.
- if all GPDMA_CxLLR.Uxx = 0 and if GPDMA_CxLLR.LA[15:0] = 0, this field is internally restored to the programmed value (infinite/continuous last LLI).
- if GPDMA_CxLLR = 0, this field is kept as zero following the last LLI data transfer.
Note: A non-null source block size must be a multiple of the source data width (BNDT[2:0] versus GPDMA_CxTR1.SDW_LOG2[1:0]). Else a user setting error is reported and no transfer is issued.
Note: When configured in packing mode (GPDMA_CxTR1.PAM[1] = 1 and destination data width different from source data width), a non-null source block size must be a multiple of the destination data width (BNDT[2:0] versus GPDMA_CxTR1.DDW_LOG2[1:0]). Else a user setting error is reported and no transfer is issued.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>16</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>SAR</name>
            <displayName>C0SAR</displayName>
            <description>GPDMA channel 0 source address register</description>
            <addressOffset>0x4C</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>SA</name>
                <description>source address
This field is the pointer to the address from which the next data is read.
During the channel activity, depending on the source addressing mode (GPDMA_CxTR1.SINC), this field is kept fixed or incremented by the data width (GPDMA_CxTR1.SDW_LOG2[1:0]) after each burst source data, reflecting the next address from which data is read.
During the channel activity, this address is updated after each completed source burst, consequently to:
the programmed source burst; either in fixed addressing mode or in contiguous-data incremented mode. If contiguously incremented (GPDMA_CxTR1.SINC = 1), then the additional address offset value is the programmed burst size, as defined by GPDMA_CxTR1.SBL_1[5:0] and GPDMA_CxTR1.SDW_LOG2[21:0]
the additional source incremented/decremented offset value as programmed by GPDMA_CxBR1.SDEC and GPDMA_CxTR3.SAO[12:0].
once/if completed source block transfer, for a channel x with 2D addressing capability (x = 12 to 15). additional block repeat source incremented/decremented offset value as programmed by GPDMA_CxBR1.BRSDEC and GPDMA_CxBR2.BRSAO[15:0]
In linked-list mode, after a LLI data transfer is completed, this register is automatically updated by GPDMA from the memory, provided the LLI is set with GPDMA_CxLLR.USA = 1.
Note: A source address must be aligned with the programmed data width of a source burst (SA[2:0] versus GPDMA_CxTR1.SDW_LOG2[1:0]). Else, a user setting error is reported and no transfer is issued.
Note: When the source block size is not a multiple of the source burst size and is a multiple of the source data width, the last programmed source burst is not completed and is internally shorten to match the block size. In this case, the additional GPDMA_CxTR3.SAO[12:0] is not applied.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>32</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>DAR</name>
            <displayName>C0DAR</displayName>
            <description>GPDMA channel 0 destination address register</description>
            <addressOffset>0x50</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>DA</name>
                <description>destination address
This field is the pointer to the address from which the next data is written.
During the channel activity, depending on the destination addressing mode (GPDMA_CxTR1.DINC), this field is kept fixed or incremented by the data width (GPDMA_CxTR1.DDW_LOG2[21:0]) after each burst destination data, reflecting the next address from which data is written.
During the channel activity, this address is updated after each completed destination burst, consequently to:
the programmed destination burst; either in fixed addressing mode or in contiguous-data incremented mode. If contiguously incremented (GPDMA_CxTR1.DINC = 1), then the additional address offset value is the programmed burst size, as defined by GPDMA_CxTR1.DBL_1[5:0] and GPDMA_CxTR1.DDW_LOG2[1:0]
the additional destination incremented/decremented offset value as programmed by GPDMA_CxBR1.DDEC and GPDMA_CxTR3.DAO[12:0].
once/if completed destination block transfer, for a channel x with 2D addressing capability (x = 12 to 15), the additional block repeat destination incremented/decremented offset value as programmed by GPDMA_CxBR1.BRDDEC and GPDMA_CxBR2.BRDAO[15:0]
In linked-list mode, after a LLI data transfer is completed, this register is automatically updated by the GPDMA from the memory, provided the LLI is set with GPDMA_CxLLR.UDA = 1.
Note: A destination address must be aligned with the programmed data width of a destination burst (DA[2:0] versus GPDMA_CxTR1.DDW_LOG2[1:0]). Else, a user setting error is reported and no transfer is issued.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>32</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>LLR</name>
            <displayName>C0LLR</displayName>
            <description>GPDMA channel 0 linked-list address register</description>
            <addressOffset>0x7C</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>LA</name>
                <description>pointer (16-bit low-significant address) to the next linked-list data structure
If UT1 = UT2 = UB1 = USA = UDA = ULL = 0 and if LA[15:20] = 0, the current LLI is the last one. The channel transfer is completed without any update of the linked-list GPDMA register file.
Else, this field is the pointer to the memory address offset from which the next linked-list data structure is automatically fetched from, once the data transfer is completed, in order to conditionally update the linked-list GPDMA internal register file (GPDMA_CxTR1, GPDMA_CxTR2, GPDMA_CxBR1, GPDMA_CxSAR, GPDMA_CxDAR and GPDMA_CxLLR).
Note: The user must program the pointer to be 32-bit aligned. The two low-significant bits are write ignored.</description>
                <bitOffset>2</bitOffset>
                <bitWidth>14</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>ULL</name>
                <description>Update GPDMA_CxLLR register from memory
This bit is used to control the update of GPDMA_CxLLR from the memory during the link transfer.</description>
                <bitOffset>16</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>UDA</name>
                <description>Update GPDMA_CxDAR register from memory
This bit is used to control the update of GPDMA_CxDAR from the memory during the link transfer.</description>
                <bitOffset>27</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>USA</name>
                <description>update GPDMA_CxSAR from memory
This bit controls the update of GPDMA_CxSAR from the memory during the link transfer.</description>
                <bitOffset>28</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>UB1</name>
                <description>Update GPDMA_CxBR1 from memory
This bit controls the update of GPDMA_CxBR1 from the memory during the link transfer. If UB1 = 0 and if GPDMA_CxLLR different from 0, the linked-list is not completed. GPDMA_CxBR1.BNDT[15:0] is then restored to the programmed value after data transfer is completed and before the link transfer.</description>
                <bitOffset>29</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>UT2</name>
                <description>Update GPDMA_CxTR2 from memory
This bit controls the update of GPDMA_CxTR2 from the memory during the link transfer.</description>
                <bitOffset>30</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>UT1</name>
                <description>Update GPDMA_CxTR1 from memory
This bit controls the update of GPDMA_CxTR1 from the memory during the link transfer.</description>
                <bitOffset>31</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
        </cluster>
        <cluster>
          <dim>4</dim>
          <dimIncrement>0x80</dimIncrement>
          <dimIndex>12-15</dimIndex>
          <name>CH2D%s</name>
          <description>Extended channel cluster</description>
          <addressOffset>0x650</addressOffset>
          <register derivedFrom="GPDMA.CH%s.LBAR">
            <name>LBAR</name>
            <displayName>C12LBAR</displayName>
            <description>GPDMA channel 12 linked-list base address register</description>
            <addressOffset>0x0</addressOffset>
          </register>
          <register derivedFrom="GPDMA.CH%s.FCR">
            <name>FCR</name>
            <displayName>C12FCR</displayName>
            <description>GPDMA channel 12 flag clear register</description>
            <addressOffset>0xC</addressOffset>
          </register>
          <register derivedFrom="GPDMA.CH%s.SR">
            <name>SR</name>
            <displayName>C12SR</displayName>
            <description>GPDMA channel 12 status register</description>
            <addressOffset>0x10</addressOffset>
          </register>
          <register derivedFrom="GPDMA.CH%s.CR">
            <name>CR</name>
            <displayName>C12CR</displayName>
            <description>GPDMA channel 12 control register</description>
            <addressOffset>0x14</addressOffset>
          </register>
          <register derivedFrom="GPDMA.CH%s.TR1">
            <name>TR1</name>
            <displayName>C12TR1</displayName>
            <description>GPDMA channel 12 transfer register 1</description>
            <addressOffset>0x40</addressOffset>
          </register>
          <register derivedFrom="GPDMA.CH%s.TR2">
            <name>TR2</name>
            <displayName>C12TR2</displayName>
            <description>GPDMA channel 12 transfer register 2</description>
            <addressOffset>0x44</addressOffset>
          </register>
          <register>
            <name>BR1</name>
            <displayName>C12BR1</displayName>
            <description>GPDMA channel 12 alternate block register 1</description>
            <addressOffset>0x48</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field derivedFrom="GPDMA.CH%s.BR1.BNDT">
                <name>BNDT</name>
                <description>block number of data bytes to transfer from the source
Block size transferred from the source. When the channel is enabled, this field becomes read-only and is decremented, indicating the remaining number of data items in the current source block to be transferred. BNDT[15:0] is programmed in number of bytes, maximum source block size is 64 Kbytes -1.
Once the last data transfer is completed (BNDT[15:0] = 0):
- if GPDMA_CxLLR.UB1 = 1, this field is updated by the LLI in the memory.
- if GPDMA_CxLLR.UB1 = 0 and if there is at least one not null Uxx update bit, this field is internally restored to the programmed value.
- if all GPDMA_CxLLR.Uxx = 0 and if GPDMA_CxLLR.LA[15:0] different from 0, this field is internally restored to the programmed value (infinite/continuous last LLI).
- if GPDMA_CxLLR = 0, this field is kept as zero following the last LLI data transfer.
Note: A non-null source block size must be a multiple of the source data width (BNDT[2:0] versus GPDMA_CxTR1.SDW_LOG2[1:0]). Else a user setting error is reported and no transfer is issued.
Note: When configured in packing mode (GPDMA_CxTR1.PAM[1]=1 and destination data width different from source data width), a non-null source block size must be a multiple of the destination data width (BNDT[2:0] versus GPDMA_CxTR1.DDW_LOG2[1:0]). Else a user setting error is reported and no transfer is issued.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>16</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>BRC</name>
                <description>Block repeat counter
This field contains the number of repetitions of the current block (0 to 2047). 
When the channel is enabled, this field becomes read-only. After decrements, this field indicates the remaining number of blocks, excluding the current one. This counter is hardware decremented for each completed block transfer.
Once the last block transfer is completed (BRC[10:0] = BNDT[15:0] = 0):
If GPDMA_CxLLR.UB1 = 1, all GPDMA_CxBR1 fields are updated by the next LLI in the memory.
If GPDMA_CxLLR.UB1 = 0 and if there is at least one not null Uxx update bit, this field is internally restored to the programmed value.
if all GPDMA_CxLLR.Uxx = 0 and if GPDMA_CxLLR.LA[15:0] different from 0, this field is internally restored to the programmed value (infinite/continuous last LLI). 
if GPDMA_CxLLR = 0, this field is kept as zero following the last LLI and data transfer.</description>
                <bitOffset>16</bitOffset>
                <bitWidth>11</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>SDEC</name>
                <description>source address decrement</description>
                <bitOffset>28</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>DDEC</name>
                <description>destination address decrement</description>
                <bitOffset>29</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>BRSDEC</name>
                <description>Block repeat source address decrement
Note: On top of this increment/decrement (depending on BRSDEC), GPDMA_CxSAR is in the same time also updated by the increment/decrement (depending on SDEC) of the GPDMA_CxTR3.SAO value, as it is done after any programmed burst transfer.</description>
                <bitOffset>30</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>BRDDEC</name>
                <description>Block repeat destination address decrement
Note: On top of this increment/decrement (depending on BRDDEC), GPDMA_CxDAR is in the same time also updated by the increment/decrement (depending on DDEC) of the GPDMA_CxTR3.DAO value, as it is usually done at the end of each programmed burst transfer.</description>
                <bitOffset>31</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register derivedFrom="GPDMA.CH%s.SAR">
            <name>SAR</name>
            <displayName>C12SAR</displayName>
            <description>GPDMA channel 12 source address register</description>
            <addressOffset>0x4C</addressOffset>
          </register>
          <register derivedFrom="GPDMA.CH%s.DAR">
            <name>DAR</name>
            <displayName>C12DAR</displayName>
            <description>GPDMA channel 12 destination address register</description>
            <addressOffset>0x50</addressOffset>
          </register>
          <register>
            <name>TR3</name>
            <displayName>C12TR3</displayName>
            <description>GPDMA channel 12 transfer register 3</description>
            <addressOffset>0x54</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>SAO</name>
                <description>source address offset increment
The source address, pointed by GPDMA_CxSAR, is incremented or decremented (depending on GPDMA_CxBR1.SDEC) by this offset SAO[12:0] for each programmed source burst. This offset is not including and is added to the programmed burst size when the completed burst is addressed in incremented mode (GPDMA_CxTR1.SINC = 1). 
Note: A source address offset must be aligned with the programmed data width of a source burst (SAO[2:0] versus GPDMA_CxTR1.SDW_LOG2[1:0]). Else a user setting error is reported and none transfer is issued.
Note: When the source block size is not a multiple of the destination burst size and is a multiple of the source data width, then the last programmed source burst is not completed and is internally shorten to match the block size. In this case, the additional GPDMA_CxTR3.SAO[12:0] is not applied.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>13</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>DAO</name>
                <description>destination address offset increment
The destination address, pointed by GPDMA_CxDAR, is incremented or decremented (depending on GPDMA_CxBR1.DDEC) by this offset DAO[12:0] for each programmed destination burst. This offset is not including and is added to the programmed burst size when the completed burst is addressed in incremented mode (GPDMA_CxTR1.DINC = 1). 
Note: A destination address offset must be aligned with the programmed data width of a destination burst (DAO[2:0] versus GPDMA_CxTR1.DDW_LOG2[1:0]). Else, a user setting error is reported and no transfer is issued.</description>
                <bitOffset>16</bitOffset>
                <bitWidth>13</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>BR2</name>
            <displayName>C12BR2</displayName>
            <description>GPDMA channel 12 block register 2</description>
            <addressOffset>0x58</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>BRSAO</name>
                <description>Block repeated source address offset
For a channel with 2D addressing capability, this field is used to update (by addition or subtraction depending on GPDMA_CxBR1.BRSDEC) the current source address (GPDMA_CxSAR) at the end of a block transfer.
A block repeated source address offset must be aligned with the programmed data width of a source burst (BRSAO[2:0] versus GPDMA_CxTR1.SDW_LOG2[1:0]). Else a user setting error is reported and no transfer is issued.
Note: BRSAO[15:0] must be set to 0 in peripheral flow-control mode (if GPDMA_CxTR2.PFREQ = 1).</description>
                <bitOffset>0</bitOffset>
                <bitWidth>16</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>BRDAO</name>
                <description>Block repeated destination address offset
For a channel with 2D addressing capability, this field is used to update (by addition or subtraction depending on GPDMA_CxBR1.BRDDEC) the current destination address (GPDMA_CxDAR) at the end of a block transfer.
A block repeated destination address offset must be aligned with the programmed data width of a destination burst (BRDAO[2:0] versus GPDMA_CxTR1.DDW_LOG2[1:0]). Else a user setting error is reported and no transfer is issued.
Note: BRDAO[15:0] must be set to 0 in peripheral flow-control mode (if GPDMA_CxTR2.PFREQ = 1).</description>
                <bitOffset>16</bitOffset>
                <bitWidth>16</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>LLR</name>
            <displayName>C12LLR</displayName>
            <description>GPDMA channel 12 alternate linked-list address register</description>
            <addressOffset>0x7C</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field derivedFrom="GPDMA.CH%s.LLR.LA">
                <name>LA</name>
                <description>pointer (16-bit low-significant address) to the next linked-list data structure
If UT1 = UT2 = UB1 = USA = UDA = ULL = 0 and if LA[15:20] = 0, the current LLI is the last one. The channel transfer is completed without any update of the linked-list GPDMA register file.
Else, this field is the pointer to the memory address offset from which the next linked-list data structure is automatically fetched from, once the data transfer is completed, in order to conditionally update the linked-list GPDMA internal register file (GPDMA_CxTR1, GPDMA_CxTR2, GPDMA_CxBR1, GPDMA_CxSAR, GPDMA_CxDAR and GPDMA_CxLLR).
Note: The user must program the pointer to be 32-bit aligned. The two low-significant bits are write ignored.</description>
                <bitOffset>2</bitOffset>
                <bitWidth>14</bitWidth>
                <access>read-write</access>
              </field>
              <field derivedFrom="GPDMA.CH%s.LLR.ULL">
                <name>ULL</name>
                <description>Update GPDMA_CxLLR register from memory
This bit is used to control the update of GPDMA_CxLLR from the memory during the link transfer.</description>
                <bitOffset>16</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>UB2</name>
                <description>Update GPDMA_CxBR2 from memory
This bit controls the update of GPDMA_CxBR2 from the memory during the link transfer.</description>
                <bitOffset>25</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>UT3</name>
                <description>Update GPDMA_CxTR3 from memory
This bit controls the update of GPDMA_CxTR3 from the memory during the link transfer.</description>
                <bitOffset>26</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field derivedFrom="GPDMA.CH%s.LLR.UDA">
                <name>UDA</name>
                <description>Update GPDMA_CxDAR register from memory
This bit is used to control the update of GPDMA_CxDAR from the memory during the link transfer.</description>
                <bitOffset>27</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field derivedFrom="GPDMA.CH%s.LLR.USA">
                <name>USA</name>
                <description>update GPDMA_CxSAR from memory
This bit controls the update of GPDMA_CxSAR from the memory during the link transfer.</description>
                <bitOffset>28</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field derivedFrom="GPDMA.CH%s.LLR.UB1">
                <name>UB1</name>
                <description>Update GPDMA_CxBR1 from memory
This bit controls the update of GPDMA_CxBR1 from the memory during the link transfer. If UB1 = 0 and if GPDMA_CxLLR different from 0, the linked-list is not completed. GPDMA_CxBR1.BNDT[15:0] is then restored to the programmed value after data transfer is completed and before the link transfer.</description>
                <bitOffset>29</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field derivedFrom="GPDMA.CH%s.LLR.UT2">
                <name>UT2</name>
                <description>Update GPDMA_CxTR2 from memory
This bit controls the update of GPDMA_CxTR2 from the memory during the link transfer.</description>
                <bitOffset>30</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field derivedFrom="GPDMA.CH%s.LLR.UT1">
                <name>UT1</name>
                <description>Update GPDMA_CxTR1 from memory
This bit controls the update of GPDMA_CxTR1 from the memory during the link transfer.</description>
                <bitOffset>31</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
        </cluster>
      </registers>
    </peripheral>
    <peripheral>
      <name>GPIOA</name>
      <description>General-purpose I/Os</description>
      <groupName>GPIO</groupName>
      <baseAddress>0x58020000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x30</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>
          <resetValue>0xABFFFFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>MODE%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <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>
              <access>read-write</access>
              <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>
          <resetValue>0x0C000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>OSPEED%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
          <resetValue>0x64000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>PUPD%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFF0000</resetMask>
          <fields>
            <field>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>ID%s</name>
              <description>Port input data pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>OD%s</name>
              <description>Port output data pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <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>
              <access>write-only</access>
              <enumeratedValues>
                <name>BitSet</name>
                <enumeratedValue>
                  <name>Set</name>
                  <description>Sets the corresponding ODx bit</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <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>
              <access>write-only</access>
              <enumeratedValues>
                <name>BitReset</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Resets 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>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <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>
              <access>read-write</access>
              <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>
            <field>
              <name>LCKK</name>
              <description>Lock key
This bit can be read any time. It can only be modified using the lock key write sequence.
- LOCK key write sequence:
WR LCKR[16] = 1 + LCKR[15:0]
WR LCKR[16] = 0 + LCKR[15:0]
WR LCKR[16] = 1 + LCKR[15:0]
- LOCK key read
RD LCKR[16] = 1 (this read operation is optional but it confirms that the lock is active)
Note: During the LOCK key write sequence, the value of LCK[15:0] must not change.
Note: Any error in the lock sequence aborts the LOCK.
Note: After the first LOCK sequence on any bit of the port, any read access on the LCKK bit returns 1 until the next MCU reset or peripheral reset.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>AFRL</name>
          <displayName>AFRL</displayName>
          <description>GPIO alternate function low register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>0-7</dimIndex>
              <name>AFSEL%s</name>
              <description>Alternate function selection for port x I/O pin y
These bits are written by software to configure alternate function I/Os.
Note: The bitfield is reserved and must be kept to reset value when the corresponding I/O is not available on the selected package.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <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>
                <enumeratedValue>
                  <name>AF8</name>
                  <description>AF8</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF9</name>
                  <description>AF9</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF10</name>
                  <description>AF10</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF11</name>
                  <description>AF11</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF12</name>
                  <description>AF12</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF13</name>
                  <description>AF13</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF14</name>
                  <description>AF14</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF15</name>
                  <description>AF15</description>
                  <value>15</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>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field derivedFrom="GPIOA.AFRL.AFSEL%s">
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>8-15</dimIndex>
              <name>AFSEL%s</name>
              <description>Alternate function selection for port x I/O pin y
These bits are written by software to configure alternate function I/Os.
Note: The bitfield is reserved and must be kept to reset value when the corresponding I/O is not available on the selected package.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>BRR</name>
          <displayName>BRR</displayName>
          <description>GPIO port bit reset register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <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>
              <access>write-only</access>
              <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>GPIOC</name>
      <description>General-purpose I/Os</description>
      <groupName>GPIO</groupName>
      <baseAddress>0x58020800</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x30</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>
          <resetValue>0xFFFFFFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field derivedFrom="GPIOA.MODER.MODE%s">
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>MODE%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </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>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field derivedFrom="GPIOA.OSPEEDR.OSPEED%s">
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>OSPEED%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </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>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field derivedFrom="GPIOA.PUPDR.PUPD%s">
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>PUPD%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </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>GPIO port bit reset register</description>
          <addressOffset>0x28</addressOffset>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="GPIOC">
      <name>GPIOD</name>
      <description>General-purpose I/Os</description>
      <groupName>GPIO</groupName>
      <baseAddress>0x58020C00</baseAddress>
    </peripheral>
    <peripheral derivedFrom="GPIOC">
      <name>GPIOE</name>
      <description>General-purpose I/Os</description>
      <groupName>GPIO</groupName>
      <baseAddress>0x58021000</baseAddress>
    </peripheral>
    <peripheral derivedFrom="GPIOC">
      <name>GPIOF</name>
      <description>General-purpose I/Os</description>
      <groupName>GPIO</groupName>
      <baseAddress>0x58021400</baseAddress>
    </peripheral>
    <peripheral derivedFrom="GPIOC">
      <name>GPIOG</name>
      <description>General-purpose I/Os</description>
      <groupName>GPIO</groupName>
      <baseAddress>0x58021800</baseAddress>
    </peripheral>
    <peripheral derivedFrom="GPIOC">
      <name>GPIOH</name>
      <description>General-purpose I/Os</description>
      <groupName>GPIO</groupName>
      <baseAddress>0x58021C00</baseAddress>
    </peripheral>
    <peripheral derivedFrom="GPIOC">
      <name>GPIOM</name>
      <description>General-purpose I/Os</description>
      <groupName>GPIO</groupName>
      <baseAddress>0x58023000</baseAddress>
    </peripheral>
    <peripheral derivedFrom="GPIOC">
      <name>GPION</name>
      <description>General-purpose I/Os</description>
      <groupName>GPIO</groupName>
      <baseAddress>0x58023400</baseAddress>
    </peripheral>
    <peripheral derivedFrom="GPIOC">
      <name>GPIOO</name>
      <description>General-purpose I/Os</description>
      <groupName>GPIO</groupName>
      <baseAddress>0x58023800</baseAddress>
    </peripheral>
    <peripheral derivedFrom="GPIOC">
      <name>GPIOP</name>
      <description>GPIOP address block description</description>
      <baseAddress>0x58023C00</baseAddress>
    </peripheral>
    <peripheral>
      <name>HASH</name>
      <description>Hash processor</description>
      <groupName>HASH</groupName>
      <baseAddress>0x48020400</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>HASH</name>
        <description>HASH global interrupt</description>
        <value>36</value>
      </interrupt>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>HASH control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INIT</name>
              <description>Initialize message digest calculation
Writing this bit to 1 resets the hash processor core, so that the HASH is ready to compute the message digest of a new message.
Writing this bit to 0 has no effect. Reading this bit always returns 0.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DMAE</name>
              <description>DMA enable
After this bit is set, it is cleared by hardware while the last data of the message is written into the hash processor.
Setting this bit to 0 while a DMA transfer is ongoing does not abort the current transfer. Instead, the DMA interface of the HASH remains internally enabled until the transfer is completed or INIT is written to 1.
Setting INIT bit to 1 does not clear DMAE bit.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DATATYPE</name>
              <description>Data type selection
This bitfield defines the format of the data entered into the HASH_DIN register:</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MODE</name>
              <description>Mode selection
This bit selects the normal or the keyed HMAC mode for the selected algorithm:
This selection is only taken into account when the INIT bit is set. Changing this bit during a computation has no effect.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NBW</name>
              <description>Number of words already pushed
Refer to NBWP[3:0] bitfield of HASH_SR for a description of NBW[3:0] bitfield.
This bit is read-only.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DINNE</name>
              <description>DIN not empty
Refer to DINNE bit of HASH_SR for a description of DINNE bit.
This bit is read-only.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>MDMAT</name>
              <description>Multiple DMA transfers 
This bit is set when hashing large files when multiple DMA transfers are needed.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LKEY</name>
              <description>Long key selection
The application must set this bit if the HMAC key is greater than the block size corresponding to the hash algorithm (see Table 280: Information on supported hash algorithms for details). For example the block size is 64 bytes for SHA2-256.
This selection is only taken into account when the INIT and MODE bits are set (HMAC mode selected). Changing this bit during a computation has no effect.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ALGO</name>
              <description>Algorithm selection
These bits select the hash algorithm:
This selection is only taken into account when the INIT bit is set. Changing this bitfield during a computation has no effect.
When the ALGO bitfield is updated and INIT bit is set, NBWE in HASH_SR is automatically updated to 0x11.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIN</name>
          <displayName>DIN</displayName>
          <description>HASH data input register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DATAIN</name>
              <description>Data input
Writing this register pushes the current register content into the FIFO, and the register takes the new value presented on the AHB bus.
Reading this register returns zeros.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>STR</name>
          <displayName>STR</displayName>
          <description>HASH start register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>NBLW</name>
              <description>Number of valid bits in the last word
When the last word of the message bit string is written to HASH_DIN register, the hash processor takes only the valid bits, specified as below, after internal data swapping:
...
The above mechanism is valid only if DCAL = 0. If NBLW bits are written while DCAL is set to 1, the NBLW bitfield remains unchanged. In other words it is not possible to configure NBLW and set DCAL at the same time.
Reading NBLW bits returns the last value written to NBLW.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DCAL</name>
              <description>Digest calculation
Writing this bit to 1 starts the message padding using the previously written value of NBLW, and starts the calculation of the final message digest with all the data words written to the input FIFO since the INIT bit was last written to 1.
Reading this bit returns 0.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <dim>5</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-4</dimIndex>
          <name>HRA%s</name>
          <displayName>HRA%s</displayName>
          <description>HASH digest register alias %s</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>H</name>
              <description>Hash data x
Refer to Section 34.7.4: HASH digest registers introduction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IMR</name>
          <displayName>IMR</displayName>
          <description>HASH interrupt enable register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DINIE</name>
              <description>Data input interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DCIE</name>
              <description>Digest calculation completion interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>HASH status register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00110001</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DINIS</name>
              <description>Data input interrupt status
This bit is set by hardware when the FIFO is ready to get a new block (16 locations are free). It is cleared by writing it to 0 or by writing the HASH_DIN register.
When DINIS = 0, HASH_CSRx registers reads as zero.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DCIS</name>
              <description>Digest calculation completion interrupt status
This bit is set by hardware when a digest becomes ready (the whole message has been processed). It is cleared by writing it to 0 or by writing the INIT bit to 1 in the HASH_CR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DMAS</name>
              <description>DMA Status
This bit provides information on the DMA interface activity. It is set with DMAE and cleared when DMAE = 0 and no DMA transfer is ongoing. No interrupt is associated with this bit.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>BUSY</name>
              <description>Busy bit</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NBWP</name>
              <description>Number of words already pushed
This bitfield is the exact number of words in the message that have already been pushed into the FIFO. NBWP is incremented by 1 when a write access is performed to the HASH_DIN register. 
When a digest calculation starts, NBWP is updated to NBWP- block size (in words), and NBWP goes to zero when the INIT bit is written to 1.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DINNE</name>
              <description>DIN not empty
This bit is set when the HASH_DIN register holds valid data (that is after being written at least once). It is cleared when either the INIT bit (initialization) or the DCAL bit (completion of the previous message processing) is written to 1.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NBWE</name>
              <description>Number of words expected
This bitfield reflects the number of words in the message that must be pushed into the FIFO to trigger a partial computation. NBWE is decremented by 1 when a write access is performed to the HASH_DIN register.
NBWE is set to the expected block size +1 in words (0x11) when INIT bit is set in HASH_CR. It is set to the expected block size (0x10) when the partial digest calculation ends.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <dim>103</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-102</dimIndex>
          <name>CSR%s</name>
          <displayName>CSR%s</displayName>
          <description>HASH context swap register %s</description>
          <addressOffset>0xF8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CS</name>
              <description>Context swap x
Refer to Section 34.7.7: HASH context swap registers introduction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <dim>16</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-15</dimIndex>
          <name>HR%s</name>
          <displayName>HR%s</displayName>
          <description>HASH digest register %s</description>
          <addressOffset>0x310</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>H</name>
              <description>Hash data x
Refer to Section 34.7.4: HASH digest registers introduction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>HPDMA</name>
      <description>High-performance direct memory access controller</description>
      <groupName>HPDMA</groupName>
      <baseAddress>0x52000000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x1000</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>HPDMA1_CH0</name>
        <description>HPDMA1 channel 0 interrupt</description>
        <value>64</value>
      </interrupt>
      <interrupt>
        <name>HPDMA1_CH1</name>
        <description>HPDMA1 channel 1 interrupt</description>
        <value>65</value>
      </interrupt>
      <interrupt>
        <name>HPDMA1_CH2</name>
        <description>HPDMA1 channel 2 interrupt</description>
        <value>66</value>
      </interrupt>
      <interrupt>
        <name>HPDMA1_CH3</name>
        <description>HPDMA1 channel 3 interrupt</description>
        <value>67</value>
      </interrupt>
      <interrupt>
        <name>HPDMA1_CH4</name>
        <description>HPDMA1 channel 4 interrupt</description>
        <value>68</value>
      </interrupt>
      <interrupt>
        <name>HPDMA1_CH5</name>
        <description>HPDMA1 channel 5 interrupt</description>
        <value>69</value>
      </interrupt>
      <interrupt>
        <name>HPDMA1_CH6</name>
        <description>HPDMA1 channel 6 interrupt</description>
        <value>70</value>
      </interrupt>
      <interrupt>
        <name>HPDMA1_CH7</name>
        <description>HPDMA1 channel 7 interrupt</description>
        <value>71</value>
      </interrupt>
      <interrupt>
        <name>HPDMA1_CH8</name>
        <description>HPDMA1 channel 8 interrupt</description>
        <value>141</value>
      </interrupt>
      <interrupt>
        <name>HPDMA1_CH9</name>
        <description>HPDMA1 channel 9 interrupt</description>
        <value>142</value>
      </interrupt>
      <interrupt>
        <name>HPDMA1_CH10</name>
        <description>HPDMA1 channel 10 interrupt</description>
        <value>143</value>
      </interrupt>
      <interrupt>
        <name>HPDMA1_CH11</name>
        <description>HPDMA1 channel 11 interrupt</description>
        <value>144</value>
      </interrupt>
      <interrupt>
        <name>HPDMA1_CH12</name>
        <description>HPDMA1 channel 12 interrupt</description>
        <value>145</value>
      </interrupt>
      <interrupt>
        <name>HPDMA1_CH13</name>
        <description>HPDMA1 channel 13 interrupt</description>
        <value>146</value>
      </interrupt>
      <interrupt>
        <name>HPDMA1_CH14</name>
        <description>HPDMA1 channel 14 interrupt</description>
        <value>147</value>
      </interrupt>
      <interrupt>
        <name>HPDMA1_CH15</name>
        <description>HPDMA1 channel 15 interrupt</description>
        <value>148</value>
      </interrupt>
      <registers>
        <register>
          <name>PRIVCFGR</name>
          <displayName>PRIVCFGR</displayName>
          <description>HPDMA privileged configuration register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>PRIV%s</name>
              <description>privileged state of channel x</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RCFGLOCKR</name>
          <displayName>RCFGLOCKR</displayName>
          <description>HPDMA configuration lock register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>LOCK%s</name>
              <description>lock the configuration of HPDMA_PRIVCFGR.PRIVx until a global HPDMA reset
This bit is cleared after reset and, once set, it cannot be reset until a global HPDMA reset.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MISR</name>
          <displayName>MISR</displayName>
          <description>HPDMA masked interrupt status register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>MIS%s</name>
              <description>masked interrupt status of channel x</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <cluster>
          <dim>12</dim>
          <dimIncrement>0x80</dimIncrement>
          <dimIndex>0-11</dimIndex>
          <name>CH%s</name>
          <description>Channel cluster</description>
          <addressOffset>0x50</addressOffset>
          <register>
            <name>LBAR</name>
            <displayName>C0LBAR</displayName>
            <description>HPDMA channel 0 linked-list base address register</description>
            <addressOffset>0x0</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>LBA</name>
                <description>linked-list base address of HPDMA channel x</description>
                <bitOffset>16</bitOffset>
                <bitWidth>16</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>FCR</name>
            <displayName>C0FCR</displayName>
            <description>HPDMA channel 0 flag clear register</description>
            <addressOffset>0xC</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>TCF</name>
                <description>transfer complete flag clear</description>
                <bitOffset>8</bitOffset>
                <bitWidth>1</bitWidth>
                <access>write-only</access>
              </field>
              <field>
                <name>HTF</name>
                <description>half transfer flag clear</description>
                <bitOffset>9</bitOffset>
                <bitWidth>1</bitWidth>
                <access>write-only</access>
              </field>
              <field>
                <name>DTEF</name>
                <description>data transfer error flag clear</description>
                <bitOffset>10</bitOffset>
                <bitWidth>1</bitWidth>
                <access>write-only</access>
              </field>
              <field>
                <name>ULEF</name>
                <description>update link transfer error flag clear</description>
                <bitOffset>11</bitOffset>
                <bitWidth>1</bitWidth>
                <access>write-only</access>
              </field>
              <field>
                <name>USEF</name>
                <description>user setting error flag clear</description>
                <bitOffset>12</bitOffset>
                <bitWidth>1</bitWidth>
                <access>write-only</access>
              </field>
              <field>
                <name>SUSPF</name>
                <description>completed suspension flag clear</description>
                <bitOffset>13</bitOffset>
                <bitWidth>1</bitWidth>
                <access>write-only</access>
              </field>
              <field>
                <name>TOF</name>
                <description>trigger overrun flag clear</description>
                <bitOffset>14</bitOffset>
                <bitWidth>1</bitWidth>
                <access>write-only</access>
              </field>
            </fields>
          </register>
          <register>
            <name>SR</name>
            <displayName>C0SR</displayName>
            <description>HPDMA channel 0 status register</description>
            <addressOffset>0x10</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000001</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>IDLEF</name>
                <description>idle flag
This idle flag is de-asserted by hardware when the channel is enabled (HPDMA_CxCR.EN = 1) with a valid channel configuration (no USEF to be immediately reported).
This idle flag is asserted after hard reset or by hardware when the channel is back in idle state (in suspended or disabled state).</description>
                <bitOffset>0</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-only</access>
              </field>
              <field>
                <name>TCF</name>
                <description>transfer complete flag
A transfer complete event is either a block transfer complete, a 2D/repeated block transfer complete, a LLI transfer complete including the upload of the next LLI if any, or the full linked-list completion, depending on the transfer complete event mode (HPDMA_CxTR2.TCEM[1:0]).</description>
                <bitOffset>8</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-only</access>
              </field>
              <field>
                <name>HTF</name>
                <description>half transfer flag
An half transfer event is either an half block transfer or an half 2D/repeated block transfer, depending on the transfer complete event mode (HPDMA_CxTR2.TCEM[1:0]). 
An half block transfer occurs when half of the bytes of the source block size (rounded up integer of HPDMA_CxBR1.BNDT[15:0]/2) has been transferred to the destination. 
An half 2D/repeated block transfer occurs when half of the repeated blocks (rounded up integer of (HPDMA_CxBR1.BRC[10:0]+1)/2)) has been transferred to the destination.</description>
                <bitOffset>9</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-only</access>
              </field>
              <field>
                <name>DTEF</name>
                <description>data transfer error flag</description>
                <bitOffset>10</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-only</access>
              </field>
              <field>
                <name>ULEF</name>
                <description>update link transfer error flag</description>
                <bitOffset>11</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-only</access>
              </field>
              <field>
                <name>USEF</name>
                <description>user setting error flag</description>
                <bitOffset>12</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-only</access>
              </field>
              <field>
                <name>SUSPF</name>
                <description>completed suspension flag</description>
                <bitOffset>13</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-only</access>
              </field>
              <field>
                <name>TOF</name>
                <description>trigger overrun flag</description>
                <bitOffset>14</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-only</access>
              </field>
              <field>
                <name>FIFOL</name>
                <description>monitored FIFO level</description>
                <bitOffset>16</bitOffset>
                <bitWidth>9</bitWidth>
                <access>read-only</access>
              </field>
            </fields>
          </register>
          <register>
            <name>CR</name>
            <displayName>C0CR</displayName>
            <description>HPDMA channel 0 control register</description>
            <addressOffset>0x14</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>EN</name>
                <description>enable
Writing 1 into the field RESET (bit 1) causes the hardware to de-assert this bit, whatever is written into this bit 0. Else: 
this bit is de-asserted by hardware when there is a transfer error (master bus error or user setting error) or when there is a channel transfer complete (channel ready to be configured, for example if LSM = 1 at the end of a single execution of the LLI).
Else, this bit can be asserted by software. 
Writing 0 into this EN bit is ignored.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>RESET</name>
                <description>reset
This bit is write only. Writing 0 has no impact. Writing 1 implies the reset of the following: the FIFO, the channel internal state, SUSP and EN bits (whatever is written receptively in bit 2 and bit 0).
The reset is effective when the channel is in steady state, meaning one of the following:
- active channel in suspended state (HPDMA_CxSR.SUSPF = 1 and HPDMA_CxSR.IDLEF = HPDMA_CxCR.EN = 1)
- channel in disabled state (HPDMA_CxSR.IDLEF = 1 and HPDMA_CxCR.EN = 0).
After writing a RESET, to continue using this channel, the user must explicitly reconfigure the channel including the hardware-modified configuration registers (HPDMA_CxBR1, HPDMA_CxSAR and HPDMA_CxDAR) before enabling again the channel (see the programming sequence in Figure 159).</description>
                <bitOffset>1</bitOffset>
                <bitWidth>1</bitWidth>
                <access>write-only</access>
              </field>
              <field>
                <name>SUSP</name>
                <description>suspend
Writing 1 into the field RESET (bit 1) causes the hardware to de-assert this bit, whatever is written into this bit 2. Else:
Software must write 1 in order to suspend an active channel (a channel with an ongoing HPDMA transfer over its master ports). 
The software must write 0 in order to resume a suspended channel, following the programming sequence detailed in Figure 158.</description>
                <bitOffset>2</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>TCIE</name>
                <description>transfer complete interrupt enable</description>
                <bitOffset>8</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>HTIE</name>
                <description>half transfer complete interrupt enable</description>
                <bitOffset>9</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>DTEIE</name>
                <description>data transfer error interrupt enable</description>
                <bitOffset>10</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>ULEIE</name>
                <description>update link transfer error interrupt enable</description>
                <bitOffset>11</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>USEIE</name>
                <description>user setting error interrupt enable</description>
                <bitOffset>12</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>SUSPIE</name>
                <description>completed suspension interrupt enable</description>
                <bitOffset>13</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>TOIE</name>
                <description>trigger overrun interrupt enable</description>
                <bitOffset>14</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>LSM</name>
                <description>Link step mode
First the (possible 1D/repeated) block transfer is executed as defined by the current internal register file until HPDMA_CxBR1.BNDT[15:0] = 0 and HPDMA_CxBR1.BRC[10:0] = 0 if present. Secondly the next linked-list data structure is conditionally uploaded from memory as defined by HPDMA_CxLLR. Then channel execution is completed.
Note: This bit must be written when EN = 0. This bit is read-only when EN = 1.</description>
                <bitOffset>16</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>LAP</name>
                <description>linked-list allocated port
This bit is used to allocate the master port for the update of the HPDMA linked-list registers from the memory.
Note: This bit must be written when EN=0. This bit is read-only when EN=1.</description>
                <bitOffset>17</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>PRIO</name>
                <description>priority level of the channel x HPDMA transfer versus others
Note: This bit must be written when EN = 0. This bit is read-only when EN = 1.</description>
                <bitOffset>22</bitOffset>
                <bitWidth>2</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>TR1</name>
            <displayName>C0TR1</displayName>
            <description>HPDMA channel 0 transfer register 1</description>
            <addressOffset>0x40</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>SDW_LOG2</name>
                <description>binary logarithm of the source data width of a burst in bytes
      if SAP = 1, user setting error reported and no transfer issued
Note: A burst with a double-word data width must be allocated to the AXI master port, else a user setting error is reported and none transfer is issued.
A source block size must be a multiple of the source data width (HPDMA_CxBR1.BNDT[2:0] versus SDW_LOG2[1:0]). Otherwise, a user setting error is reported and no transfer is issued.
Note: A source burst transfer must have an aligned address with its data width (start address HPDMA_CxSAR[2:0] versus SDW_LOG2[1:0]). Otherwise, a user setting error is reported and none transfer is issued.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>2</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>SINC</name>
                <description>source incrementing burst
The source address, pointed by HPDMA_CxSAR, is kept constant after a burst beat/single transfer or is incremented by the offset value corresponding to a contiguous data after a burst beat/single transfer.</description>
                <bitOffset>3</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>SBL_1</name>
                <description>source burst length minus 1, between 0 and 63
The burst length unit is one data named beat within a burst. If SBL_1[5:0] =0 , the burst can be named as single. Each data/beat has a width defined by the destination data width SDW_LOG2[1:0].
Note: If a burst transfer crossed a 1- or 4-Kbyte address boundary on respectively an AHB or an AXI transfer, the HPDMA modifies and shortens the programmed burst into singles or bursts of lower length, to be compliant with the AHB protocol.
Note: If the burst length exceeds 16 on a AHB transfer, or if the burst on a AXI transfer is both with fixed addressing (SINC=0) and with a burst length which exceeds 16, the HPDMA modifies and shortens the programmed burst into singles or bursts of lower length, to be compliant with the FIFO size. Transfer performance is lower, with HPDMA re-arbitration between effective and lower singles/bursts, but the data integrity is guaranteed.</description>
                <bitOffset>4</bitOffset>
                <bitWidth>6</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>PAM</name>
                <description>padding/alignment mode
If DDW_LOG2[1:0] = SDW_LOG2[1:0]: if the data width of a burst destination transfer is equal to the data width of a burst source transfer, these bits are ignored.
Else, in the following enumerated values, the condition PAM_1 is when destination data width is higher that source data width, and the condition PAM_2 is when destination data width is higher than source data width.
Note: If the transfer from the source peripheral is configured with peripheral flow-control mode (SWREQ = 0 and PFREQ = 1 and DREQ = 0), and if the destination data width &gt; the source data width, packing is not supported.</description>
                <bitOffset>11</bitOffset>
                <bitWidth>2</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>SBX</name>
                <description>source byte exchange within the unaligned half-word of each source word 
If the source data width is shorter than a word, this bit is ignored.
If the source data width is a word or a double-word, and if source bus is AXI (SAP = 0):</description>
                <bitOffset>13</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>SAP</name>
                <description>source allocated port
This bit is used to allocate the master port for the source transfer
Note: This bit must be written when EN = 0. This bit is read-only when EN = 1.</description>
                <bitOffset>14</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>DDW_LOG2</name>
                <description>binary logarithm of the destination data width of a burst, in bytes
      if DAP = 1, user setting error reported and no transfer issued
Note: A burst with a double-word data width must be allocated to the AXI master port, else a user setting error is reported and none transfer is issued.
Note: A destination burst transfer must have an aligned address with its data width (start address HPDMA_CxDAR[2:0] and address offset HPDMA_CxTR3.DAO[2:0], versus DDW_LOG2[1:0]). Otherwise a user setting error is reported and no transfer is issued.
Note: When configured in packing mode (PAM[1] = 1 and destination data width different from source data width), a source block size must be a multiple of the destination data width (see HPDMA_CxBR1.BNDT[2:0] vs DDW_LOG2[1:0]). Else a user setting error is reported and none transfer is issued.</description>
                <bitOffset>16</bitOffset>
                <bitWidth>2</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>DINC</name>
                <description>destination incrementing burst
The destination address, pointed by HPDMA_CxDAR, is kept constant after a burst beat/single transfer, or is incremented by the offset value corresponding to a contiguous data after a burst beat/single transfer.</description>
                <bitOffset>19</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>DBL_1</name>
                <description>destination burst length minus 1, between 0 and 63
The burst length unit is one data named beat within a burst. If DBL_1[5:0] =0 , the burst can be named as single. Each data/beat has a width defined by the destination data width DDW_LOG2[1:0].
Note: If a burst transfer crossed a 1- or 4-Kbyte address boundary on respectively an AHB or AXI transfer, the HPDMA modifies and shortens the programmed burst into singles or bursts of lower length, to be compliant with the AHB/AXI protocol.
Note: If the burst length exceeds 16 on an AHB transfer, or if the burst on an AXI transfer is both with fixed addressing (DINC = 0) and with a burst length which exceeds 16, the HPDMA modifies and shortens the programmed burst into bursts of lower length, to be compliant with the AHB or AXI protocol.
Note: If a burst transfer is of length greater than the FIFO size of the channel x, the HPDMA modifies and shortens the programmed burst into singles or bursts of lower length, to be compliant with the FIFO size. Transfer performance is lower, with HPDMA re-arbitration between effective and lower singles/bursts, but the data integrity is guaranteed.</description>
                <bitOffset>20</bitOffset>
                <bitWidth>6</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>DBX</name>
                <description>destination byte exchange
If the destination data size is a byte, this bit is ignored.
If the destination data size is not a byte:</description>
                <bitOffset>26</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>DHX</name>
                <description>destination half-word exchange
If the destination data size is shorter than a word, this bit is ignored.
If the destination data size is a word or double-word and if destination bus is AXI (DAP = 0):</description>
                <bitOffset>27</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>DWX</name>
                <description>destination word exchange
If the destination data size is not a double-word, this bit is ignored.
If the destination data size is a double-word and if destination bus is AXI (DAP = 0):</description>
                <bitOffset>28</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>DAP</name>
                <description>destination allocated port
This bit is used to allocate the master port for the destination transfer
Note: This bit must be written when EN = 0. This bit is read-only when EN = 1.</description>
                <bitOffset>30</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>TR2</name>
            <displayName>C0TR2</displayName>
            <description>HPDMA channel 0 transfer register 2</description>
            <addressOffset>0x44</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>REQSEL</name>
                <description>hardware request selection
These bits are ignored if channel x is activated (HPDMA_CxCR.EN asserted) with SWREQ = 1 (software request for a memory-to-memory transfer). Else, the selected hardware request is internally taken into account as per Section 27.3.3.
The user must not assign a same input hardware request (same REQSEL[4:0] value) to different active HPDMA channels (HPDMA_CxCR.EN = 1 and HPDMA_CxTR2.SWREQ = 0 for these channels). The HPDMA is not intended to hardware support the case of simultaneous enabled channels incorrectly configured with a same hardware peripheral request signal, and there is no user setting error reporting.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>5</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>SWREQ</name>
                <description>software request
This bit is internally taken into account when HPDMA_CxCR.EN is asserted.</description>
                <bitOffset>9</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>DREQ</name>
                <description>destination hardware request
This bit is ignored if channel x is activated (HPDMA_CxCR.EN asserted) with SWREQ = 1 (software request for a memory-to-memory transfer). Else:
Note: If the channel x is activated (HPDMA_CxCR.EN is asserted) with SWREQ = 0 and PFREQ = 1 (peripheral hardware request with peripheral flow-control mode), any software assertion to this DREQ bit is ignored: in peripheral flow-control mode, only a peripheral-to-memory transfer is supported.</description>
                <bitOffset>10</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>BREQ</name>
                <description>Block hardware request
If the channel x is activated (HPDMA_CxCR.EN asserted) with SWREQ = 1 (software request for a memory-to-memory transfer), this bit is ignored. Else:</description>
                <bitOffset>11</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>PFREQ</name>
                <description>Hardware request in peripheral flow control mode
Important: If a given channel x is not implemented with this feature, this bit is reserved and PFREQ is not present (see Section 27.3.5 for the list of the implemented channels with this feature.
If the channel x is activated (HPDMA_CxCR.EN asserted) with SWREQ = 1 (software request for a memory-to-memory transfer), this bit is ignored. Else:
Note: In peripheral flow control mode, there are the following restrictions: 
Note: - no 2D/repeated block support (HPDMA_CxBR1.BRC[10:0] must be set to 0 if present)
Note: - the peripheral must be set as the source of the transfer (DREQ = 0).
Note: - data packing to a wider destination width is not supported (if destination width &gt; source data width, HPDMA_CxTR1.PAM[1] must be set to 0).
Note: - HPDMA_CxBR1.BNDT[15:0] must be set as a multiple of the source (peripheral) burst size.</description>
                <bitOffset>12</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>TRIGM</name>
                <description>trigger mode
These bits define the transfer granularity for its conditioning by the trigger.
If the channel x is enabled (HPDMA_CxCR.EN asserted) with TRIGPOL[1:0] = 00 or 11, these TRIGM[1:0] bits are ignored.
Else, an HPDMA transfer is conditioned by at least one trigger hit: 
first burst read of a 2D/repeated block transfer is conditioned by one hit trigger.
  If the peripheral is programmed as a source (DREQ = 0) of the LLI data transfer, each programmed burst read is conditioned.
  If the peripheral is programmed as a destination (DREQ = 1) of the LLI data transfer, each programmed burst write is conditioned. The first memory burst read of a (possibly 2D/repeated) block, also named as the first ready FIFO-based source burst, is gated by the occurrence of both the hardware request and the first trigger hit.
The HPDMA monitoring of a trigger for channel x is started when the channel is enabled/loaded with a new active trigger configuration: rising or falling edge on a selected trigger (TRIGPOL[1:0] = 01 or respectively TRIGPOL[1:0] = 10).
The monitoring of this trigger is kept active during the triggered and uncompleted (data or link) transfer; and if a new trigger is detected then, this hit is internally memorized to grant the next transfer, as long as the defined rising or falling edge is not modified, and the TRIGSEL[5:0] is not modified, and the channel is enabled.
Transferring a next LLI&lt;sub&gt;n+1&lt;/sub&gt; that updates the HPDMA_CxTR2 with a new value for any of TRIGSEL[5:0] or TRIGPOL[1:0], resets the monitoring, trashing the memorized hit of the formerly defined LLI&lt;sub&gt;n &lt;/sub&gt;trigger.
After a first new trigger hit&lt;sub&gt;n+1&lt;/sub&gt; is memorized, if another second trigger hit&lt;sub&gt;n+2&lt;/sub&gt; is detected and if the hit&lt;sub&gt;n&lt;/sub&gt; triggered transfer is still not completed, hit&lt;sub&gt;n+2 &lt;/sub&gt;is lost and not memorized.memorized. A trigger overrun flag is reported (HPDMA_CxSR.TOF =1 ), and an interrupt is generated if enabled (HPDMA_CxCR.TOIE = 1). The channel is not automatically disabled by hardware due to a trigger overrun. 
Note: When the source block size is not a multiple of the source burst size and is a multiple of the source data width, then the last programmed source burst is not completed and is internally shorten to match the block size. In this case, if TRIGM[1:0] = 11 and (SWREQ =1  or (SWREQ = 0 and DREQ =0 )), the shortened burst transfer (by singles or/and by bursts of lower length) is conditioned once by the trigger.
Note: When the programmed destination burst is internally shortened by singles or/and by bursts of lower length (versus FIFO size, versus block size, 1/4-Kbyte boundary address crossing maximum burst length vs AHB/AXI protocol): if the trigger is conditioning the programmed destination burst (if TRIGM[1:0] = 11 and SWREQ = 0 and DREQ = 1), this shortened destination burst transfer is conditioned once by the trigger.</description>
                <bitOffset>14</bitOffset>
                <bitWidth>2</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>TRIGSEL</name>
                <description>trigger event input selection
These bits select the trigger event input of the HPDMA transfer (as per Section 27.3.6), with an active trigger event if TRIGPOL[1:0] different from 00.</description>
                <bitOffset>16</bitOffset>
                <bitWidth>6</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>TRIGPOL</name>
                <description>trigger event polarity
These bits define the polarity of the selected trigger event input defined by TRIGSEL[5:0].</description>
                <bitOffset>24</bitOffset>
                <bitWidth>2</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>TCEM</name>
                <description>transfer complete event mode
These bits define the transfer granularity for the transfer complete and half transfer complete events generation.
Note: If the initial LLI&lt;sub&gt;0 &lt;/sub&gt;data transfer is null/void (directly programmed by the internal register file with HPDMA_CxBR1.BNDT[15:0] = 0), then neither the complete transfer event nor the half transfer event is generated.
Note: If the initial LLI&lt;sub&gt;0 &lt;/sub&gt;data transfer is null/void (directly programmed by the internal register file with HPDMA_CxBR1.BNDT[15:0] = 0), then neither the complete transfer event nor the half transfer event is generated.
Note: If the initial LLI&lt;sub&gt;0 &lt;/sub&gt;data transfer is null/void (directly programmed by the internal register file with HPDMA_CxBR1.BNDT[15:0] = 0), then the half transfer event is not generated, and the transfer complete event is generated when is completed the loading of the LLI&lt;sub&gt;1&lt;/sub&gt;.</description>
                <bitOffset>30</bitOffset>
                <bitWidth>2</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>BR1</name>
            <displayName>C0BR1</displayName>
            <description>HPDMA channel 0 block register 1</description>
            <addressOffset>0x48</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>BNDT</name>
                <description>block number of data bytes to transfer from the source
Block size transferred from the source. When the channel is enabled, this field becomes read-only and is decremented, indicating the remaining number of data items in the current source block to be transferred. BNDT[15:0] is programmed in number of bytes, maximum source block size is 64 Kbytes -1.
Once the last data transfer is completed (BNDT[15:0] = 0):
- if HPDMA_CxLLR.UB1 = 1, this field is updated by the LLI in the memory.
- if HPDMA_CxLLR.UB1 = 0 and if there is at least one non null Uxx update bit, this field is internally restored to the programmed value.
- if all HPDMA_CxLLR.Uxx = 0 and if HPDMA_CxLLR.LA[15:0] = 0, this field is internally restored to the programmed value (infinite/continuous last LLI).
- if HPDMA_CxLLR = 0, this field is kept as zero following the last LLI data transfer.
Note: A non-null source block size must be a multiple of the source data width (BNDT[2:0] versus HPDMA_CxTR1.SDW_LOG2[1:0]). Else a user setting error is reported and no transfer is issued.
Note: When configured in packing mode (HPDMA_CxTR1.PAM[1] = 1 and destination data width different from source data width), a non-null source block size must be a multiple of the destination data width (BNDT[2:0] versus HPDMA_CxTR1.DDW_LOG2[1:0]). Else a user setting error is reported and no transfer is issued.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>16</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>SAR</name>
            <displayName>C0SAR</displayName>
            <description>HPDMA channel 0 source address register</description>
            <addressOffset>0x4C</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>SA</name>
                <description>source address
This field is the pointer to the address from which the next data is read.
During the channel activity, depending on the source addressing mode (HPDMA_CxTR1.SINC), this field is kept fixed or incremented by the data width (HPDMA_CxTR1.SDW_LOG2[1:0]) after each burst source data, reflecting the next address from which data is read.
During the channel activity, this address is updated after each completed source burst, consequently to:
the programmed source burst; either in fixed addressing mode or in contiguous-data incremented mode. If contiguously incremented (HPDMA_CxTR1.SINC = 1), then the additional address offset value is the programmed burst size, as defined by HPDMA_CxTR1.SBL_1[5:0] and HPDMA_CxTR1.SDW_LOG2[21:0]
the additional source incremented/decremented offset value as programmed by HPDMA_CxBR1.SDEC and HPDMA_CxTR3.SAO[12:0]
once/if completed source block transfer, for a channel x with 2D addressing capability (x = 12 to 15). additional block repeat source incremented/decremented offset value as programmed by HPDMA_CxBR1.BRSDEC and HPDMA_CxBR2.BRSAO[15:0]
In linked-list mode, after a LLI data transfer is completed, this register is automatically updated by HPDMA from the memory, provided the LLI is set with HPDMA_CxLLR.USA = 1.
Note: A source address must be aligned with the programmed data width of a source burst (SA[2:0] versus HPDMA_CxTR1.SDW_LOG2[1:0]). Else, a user setting error is reported and no transfer is issued.
Note: When the source block size is not a multiple of the source burst size and is a multiple of the source data width, the last programmed source burst is not completed and is internally shorten to match the block size. In this case, the additional HPDMA_CxTR3.SAO[12:0] is not applied.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>32</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>DAR</name>
            <displayName>C0DAR</displayName>
            <description>HPDMA channel 0 destination address register</description>
            <addressOffset>0x50</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>DA</name>
                <description>destination address
This field is the pointer to the address from which the next data is written.
During the channel activity, depending on the destination addressing mode (HPDMA_CxTR1.DINC), this field is kept fixed or incremented by the data width (HPDMA_CxTR1.DDW_LOG2[21:0]) after each burst destination data, reflecting the next address from which data is written.
During the channel activity, this address is updated after each completed destination burst, consequently to:
the programmed destination burst; either in fixed addressing mode or in contiguous-data incremented mode. If contiguously incremented (HPDMA_CxTR1.DINC = 1), then the additional address offset value is the programmed burst size, as defined by HPDMA_CxTR1.DBL_1[5:0] and HPDMA_CxTR1.DDW_LOG2[1:0]
the additional destination incremented/decremented offset value as programmed by HPDMA_CxBR1.DDEC and HPDMA_CxTR3.DAO[12:0]
once/if completed destination block transfer, for a channel x with 2D addressing capability (x = 12 to 15), the additional block repeat destination incremented/decremented offset value as programmed by HPDMA_CxBR1.BRDDEC and HPDMA_CxBR2.BRDAO[15:0]
In linked-list mode, after a LLI data transfer is completed, this register is automatically updated by the HPDMA from the memory, provided the LLI is set with HPDMA_CxLLR.UDA = 1.
Note: A destination address must be aligned with the programmed data width of a destination burst (DA[2:0] versus HPDMA_CxTR1.DDW_LOG2[1:0]). Else, a user setting error is reported and no transfer is issued.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>32</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>LLR</name>
            <displayName>C0LLR</displayName>
            <description>HPDMA channel 0 linked-list address register</description>
            <addressOffset>0x7C</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>LA</name>
                <description>pointer (16-bit low-significant address) to the next linked-list data structure
If UT1 = UT2 = UB1 = USA = UDA = ULL = 0 and if LA[15:20] = 0, the current LLI is the last one. The channel transfer is completed without any update of the linked-list HPDMA register file.
Else, this field is the pointer to the memory address offset from which the next linked-list data structure is automatically fetched from, once the data transfer is completed, in order to conditionally update the linked-list HPDMA internal register file (HPDMA_CxTR1, HPDMA_CxTR2, HPDMA_CxBR1, HPDMA_CxSAR, HPDMA_CxDAR and HPDMA_CxLLR).
Note: The user must program the pointer to be 32-bit aligned. The two low-significant bits are write ignored.</description>
                <bitOffset>2</bitOffset>
                <bitWidth>14</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>ULL</name>
                <description>Update HPDMA_CxLLR register from memory
This bit is used to control the update of HPDMA_CxLLR from the memory during the link transfer.</description>
                <bitOffset>16</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>UDA</name>
                <description>Update HPDMA_CxDAR register from memory
This bit is used to control the update of HPDMA_CxDAR from the memory during the link transfer.</description>
                <bitOffset>27</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>USA</name>
                <description>update HPDMA_CxSAR from memory
This bit controls the update of HPDMA_CxSAR from the memory during the link transfer.</description>
                <bitOffset>28</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>UB1</name>
                <description>Update HPDMA_CxBR1 from memory
This bit controls the update of HPDMA_CxBR1 from the memory during the link transfer. If UB1 = 0 and if HPDMA_CxLLR different from 0, the linked-list is not completed. HPDMA_CxBR1.BNDT[15:0] is then restored to the programmed value after data transfer is completed and before the link transfer.</description>
                <bitOffset>29</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>UT2</name>
                <description>Update HPDMA_CxTR2 from memory
This bit controls the update of HPDMA_CxTR2 from the memory during the link transfer.</description>
                <bitOffset>30</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>UT1</name>
                <description>Update HPDMA_CxTR1 from memory
This bit controls the update of HPDMA_CxTR1 from the memory during the link transfer.</description>
                <bitOffset>31</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
        </cluster>
        <cluster>
          <dim>4</dim>
          <dimIncrement>0x80</dimIncrement>
          <dimIndex>12-15</dimIndex>
          <name>CH2D%s</name>
          <description>Extended channel cluster</description>
          <addressOffset>0x650</addressOffset>
          <register derivedFrom="HPDMA.CH%s.LBAR">
            <name>LBAR</name>
            <displayName>C12LBAR</displayName>
            <description>HPDMA channel 12 linked-list base address register</description>
            <addressOffset>0x0</addressOffset>
          </register>
          <register derivedFrom="HPDMA.CH%s.FCR">
            <name>FCR</name>
            <displayName>C12FCR</displayName>
            <description>HPDMA channel 12 flag clear register</description>
            <addressOffset>0xC</addressOffset>
          </register>
          <register derivedFrom="HPDMA.CH%s.SR">
            <name>SR</name>
            <displayName>C12SR</displayName>
            <description>HPDMA channel 12 status register</description>
            <addressOffset>0x10</addressOffset>
          </register>
          <register derivedFrom="HPDMA.CH%s.CR">
            <name>CR</name>
            <displayName>C12CR</displayName>
            <description>HPDMA channel 12 control register</description>
            <addressOffset>0x14</addressOffset>
          </register>
          <register derivedFrom="HPDMA.CH%s.TR1">
            <name>TR1</name>
            <displayName>C12TR1</displayName>
            <description>HPDMA channel 12 transfer register 1</description>
            <addressOffset>0x40</addressOffset>
          </register>
          <register derivedFrom="HPDMA.CH%s.TR2">
            <name>TR2</name>
            <displayName>C12TR2</displayName>
            <description>HPDMA channel 12 transfer register 2</description>
            <addressOffset>0x44</addressOffset>
          </register>
          <register>
            <name>BR1</name>
            <displayName>C12BR1</displayName>
            <description>HPDMA channel 12 alternate block register 1</description>
            <addressOffset>0x48</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field derivedFrom="HPDMA.CH%s.BR1.BNDT">
                <name>BNDT</name>
                <description>block number of data bytes to transfer from the source
Block size transferred from the source. When the channel is enabled, this field becomes read-only and is decremented, indicating the remaining number of data items in the current source block to be transferred. BNDT[15:0] is programmed in number of bytes, maximum source block size is 64 Kbytes -1.
Once the last data transfer is completed (BNDT[15:0] = 0):
- if HPDMA_CxLLR.UB1 = 1, this field is updated by the LLI in the memory.
- if HPDMA_CxLLR.UB1 = 0 and if there is at least one not null Uxx update bit, this field is internally restored to the programmed value.
- if all HPDMA_CxLLR.Uxx = 0 and if HPDMA_CxLLR.LA[15:0] different from 0, this field is internally restored to the programmed value (infinite/continuous last LLI).
- if HPDMA_CxLLR = 0, this field is kept as zero following the last LLI data transfer.
Note: A non-null source block size must be a multiple of the source data width (BNDT[2:0] versus HPDMA_CxTR1.SDW_LOG2[1:0]). Else a user setting error is reported and no transfer is issued.
Note: When configured in packing mode (HPDMA_CxTR1.PAM[1]=1 and destination data width different from source data width), a non-null source block size must be a multiple of the destination data width (BNDT[2:0] versus HPDMA_CxTR1.DDW_LOG2[1:0]). Else a user setting error is reported and no transfer is issued.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>16</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>BRC</name>
                <description>Block repeat counter
This field contains the number of repetitions of the current block (0 to 2047). 
When the channel is enabled, this field becomes read-only. After decrements, this field indicates the remaining number of blocks, excluding the current one. This counter is hardware decremented for each completed block transfer.
Once the last block transfer is completed (BRC[10:0] = BNDT[15:0] = 0):
If HPDMA_CxLLR.UB1 = 1, all HPDMA_CxBR1 fields are updated by the next LLI in the memory.
If HPDMA_CxLLR.UB1 = 0 and if there is at least one not null Uxx update bit, this field is internally restored to the programmed value.
if all HPDMA_CxLLR.Uxx = 0 and if HPDMA_CxLLR.LA[15:0] different from 0, this field is internally restored to the programmed value (infinite/continuous last LLI). 
if HPDMA_CxLLR = 0, this field is kept as zero following the last LLI and data transfer.</description>
                <bitOffset>16</bitOffset>
                <bitWidth>11</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>SDEC</name>
                <description>source address decrement</description>
                <bitOffset>28</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>DDEC</name>
                <description>destination address decrement</description>
                <bitOffset>29</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>BRSDEC</name>
                <description>Block repeat source address decrement
Note: On top of this increment/decrement (depending on BRSDEC), HPDMA_CxSAR is in the same time also updated by the increment/decrement (depending on SDEC) of the HPDMA_CxTR3.SAO value, as it is done after any programmed burst transfer.</description>
                <bitOffset>30</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>BRDDEC</name>
                <description>Block repeat destination address decrement
Note: On top of this increment/decrement (depending on BRDDEC), HPDMA_CxDAR is in the same time also updated by the increment/decrement (depending on DDEC) of the HPDMA_CxTR3.DAO value, as it is usually done at the end of each programmed burst transfer.</description>
                <bitOffset>31</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register derivedFrom="HPDMA.CH%s.SAR">
            <name>SAR</name>
            <displayName>C12SAR</displayName>
            <description>HPDMA channel 12 source address register</description>
            <addressOffset>0x4C</addressOffset>
          </register>
          <register derivedFrom="HPDMA.CH%s.DAR">
            <name>DAR</name>
            <displayName>C12DAR</displayName>
            <description>HPDMA channel 12 destination address register</description>
            <addressOffset>0x50</addressOffset>
          </register>
          <register>
            <name>TR3</name>
            <displayName>C12TR3</displayName>
            <description>HPDMA channel 12 transfer register 3</description>
            <addressOffset>0x54</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>SAO</name>
                <description>source address offset increment
The source address, pointed by HPDMA_CxSAR, is incremented or decremented (depending on HPDMA_CxBR1.SDEC) by this offset SAO[12:0] for each programmed source burst. This offset is not including and is added to the programmed burst size when the completed burst is addressed in incremented mode (HPDMA_CxTR1.SINC = 1). 
Note: A source address offset must be aligned with the programmed data width of a source burst (SAO[2:0] versus HPDMA_CxTR1.SDW_LOG2[1:0]). Else a user setting error is reported and none transfer is issued.
Note: When the source block size is not a multiple of the destination burst size and is a multiple of the source data width, then the last programmed source burst is not completed and is internally shorten to match the block size. In this case, the additional HPDMA_CxTR3.SAO[12:0] is not applied.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>13</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>DAO</name>
                <description>destination address offset increment
The destination address, pointed by HPDMA_CxDAR, is incremented or decremented (depending on HPDMA_CxBR1.DDEC) by this offset DAO[12:0] for each programmed destination burst. This offset is not including and is added to the programmed burst size when the completed burst is addressed in incremented mode (HPDMA_CxTR1.DINC = 1). 
Note: A destination address offset must be aligned with the programmed data width of a destination burst (DAO[2:0] versus HPDMA_CxTR1.DDW_LOG2[1:0]). Else, a user setting error is reported and no transfer is issued.</description>
                <bitOffset>16</bitOffset>
                <bitWidth>13</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>BR2</name>
            <displayName>C12BR2</displayName>
            <description>HPDMA channel 12 block register 2</description>
            <addressOffset>0x58</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>BRSAO</name>
                <description>Block repeated source address offset
For a channel with 2D addressing capability, this field is used to update (by addition or subtraction depending on HPDMA_CxBR1.BRSDEC) the current source address (HPDMA_CxSAR) at the end of a block transfer.
A block repeated source address offset must be aligned with the programmed data width of a source burst (BRSAO[2:0] versus HPDMA_CxTR1.SDW_LOG2[1:0]). Else a user setting error is reported and no transfer is issued.
Note: BRSAO[15:0] must be set to 0 in peripheral flow-control mode (if HPDMA_CxTR2.PFREQ=1).</description>
                <bitOffset>0</bitOffset>
                <bitWidth>16</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>BRDAO</name>
                <description>Block repeated destination address offset
For a channel with 2D addressing capability, this field is used to update (by addition or subtraction depending on HPDMA_CxBR1.BRDDEC) the current destination address (HPDMA_CxDAR) at the end of a block transfer.
A block repeated destination address offset must be aligned with the programmed data width of a destination burst (BRDAO[2:0] versus HPDMA_CxTR1.DDW_LOG2[1:0]). Else a user setting error is reported and no transfer is issued.
Note: BRDAO[15:0] must be set to 0 in peripheral flow-control mode (if HPDMA_CxTR2.PFREQ=1).</description>
                <bitOffset>16</bitOffset>
                <bitWidth>16</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>LLR</name>
            <displayName>C12LLR</displayName>
            <description>HPDMA channel 12 alternate linked-list address register</description>
            <addressOffset>0x7C</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field derivedFrom="HPDMA.CH%s.LLR.LA">
                <name>LA</name>
                <description>pointer (16-bit low-significant address) to the next linked-list data structure
If UT1 = UT2 = UB1 = USA = UDA = ULL = 0 and if LA[15:20] = 0, the current LLI is the last one. The channel transfer is completed without any update of the linked-list HPDMA register file.
Else, this field is the pointer to the memory address offset from which the next linked-list data structure is automatically fetched from, once the data transfer is completed, in order to conditionally update the linked-list HPDMA internal register file (HPDMA_CxTR1, HPDMA_CxTR2, HPDMA_CxBR1, HPDMA_CxSAR, HPDMA_CxDAR and HPDMA_CxLLR).
Note: The user must program the pointer to be 32-bit aligned. The two low-significant bits are write ignored.</description>
                <bitOffset>2</bitOffset>
                <bitWidth>14</bitWidth>
                <access>read-write</access>
              </field>
              <field derivedFrom="HPDMA.CH%s.LLR.ULL">
                <name>ULL</name>
                <description>Update HPDMA_CxLLR register from memory
This bit is used to control the update of HPDMA_CxLLR from the memory during the link transfer.</description>
                <bitOffset>16</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>UB2</name>
                <description>Update HPDMA_CxBR2 from memory
This bit controls the update of HPDMA_CxBR2 from the memory during the link transfer.</description>
                <bitOffset>25</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>UT3</name>
                <description>Update HPDMA_CxTR3 from memory
This bit controls the update of HPDMA_CxTR3 from the memory during the link transfer.</description>
                <bitOffset>26</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field derivedFrom="HPDMA.CH%s.LLR.UDA">
                <name>UDA</name>
                <description>Update HPDMA_CxDAR register from memory
This bit is used to control the update of HPDMA_CxDAR from the memory during the link transfer.</description>
                <bitOffset>27</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field derivedFrom="HPDMA.CH%s.LLR.USA">
                <name>USA</name>
                <description>update HPDMA_CxSAR from memory
This bit controls the update of HPDMA_CxSAR from the memory during the link transfer.</description>
                <bitOffset>28</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field derivedFrom="HPDMA.CH%s.LLR.UB1">
                <name>UB1</name>
                <description>Update HPDMA_CxBR1 from memory
This bit controls the update of HPDMA_CxBR1 from the memory during the link transfer. If UB1 = 0 and if HPDMA_CxLLR different from 0, the linked-list is not completed. HPDMA_CxBR1.BNDT[15:0] is then restored to the programmed value after data transfer is completed and before the link transfer.</description>
                <bitOffset>29</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field derivedFrom="HPDMA.CH%s.LLR.UT2">
                <name>UT2</name>
                <description>Update HPDMA_CxTR2 from memory
This bit controls the update of HPDMA_CxTR2 from the memory during the link transfer.</description>
                <bitOffset>30</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field derivedFrom="HPDMA.CH%s.LLR.UT1">
                <name>UT1</name>
                <description>Update HPDMA_CxTR1 from memory
This bit controls the update of HPDMA_CxTR1 from the memory during the link transfer.</description>
                <bitOffset>31</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
        </cluster>
      </registers>
    </peripheral>
    <peripheral>
      <name>ICACHE</name>
      <description>Texture cache</description>
      <groupName>ICACHE</groupName>
      <baseAddress>0x52015000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>ICACHE control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000004</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>EN</name>
              <description>enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CACHEINV</name>
              <description>cache invalidation
Set by software and cleared by hardware when the BUSYF flag is set (during cache maintenance operation). Writing 0 has no effect.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>WAYSEL</name>
              <description>cache associativity mode selection
This bit allows user to choose ICACHE set-associativity. It can be written by software only when cache is disabled (EN = 0).</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HITMEN</name>
              <description>hit monitor enable</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MISSMEN</name>
              <description>miss monitor enable</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HITMRST</name>
              <description>hit monitor reset</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MISSMRST</name>
              <description>miss monitor reset</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>ICACHE status register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000001</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BUSYF</name>
              <description>busy flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>BSYENDF</name>
              <description>busy end flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ERRF</name>
              <description>cache error flag</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IER</name>
          <displayName>IER</displayName>
          <description>ICACHE interrupt enable register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BSYENDIE</name>
              <description>interrupt enable on busy end
Set by software to enable an interrupt generation at the end of a cache invalidate operation.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ERRIE</name>
              <description>interrupt enable on cache error
Set by software to enable an interrupt generation in case of cache functional error (cacheable write access)</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>FCR</name>
          <displayName>FCR</displayName>
          <description>ICACHE flag clear register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CBSYENDF</name>
              <description>clear busy end flag
Set by software.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CERRF</name>
              <description>clear cache error flag
Set by software.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HMONR</name>
          <displayName>HMONR</displayName>
          <description>ICACHE hit monitor register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>HITMON</name>
              <description>cache hit monitor counter</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MMONR</name>
          <displayName>MMONR</displayName>
          <description>ICACHE miss monitor register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MISSMON</name>
              <description>cache miss monitor counter</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>IWDG</name>
      <description>IWDG register block</description>
      <groupName>IWDG</groupName>
      <baseAddress>0x58004800</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>IWDG</name>
        <description>Independent watchdog interrupt</description>
        <value>3</value>
      </interrupt>
      <registers>
        <register>
          <name>KR</name>
          <displayName>KR</displayName>
          <description>IWDG key register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>KEY</name>
              <description>Key value (write only, read 0x0000)
These bits can be used for several functions, depending upon the value written by the application:
- 0xAAAA: reloads the RL[11:0] value into the IWDCNT down-counter (watchdog refresh), and write-protects registers. This value must be written by software at regular intervals, otherwise the watchdog generates a reset when the counter reaches 0.
- 0x5555: enables write-accesses to the registers.
- 0xCCCC: enables the watchdog (except if the hardware watchdog option is selected) and write-protects registers.
- values different from 0x5555: write-protects registers.
Note that only IWDG_PR, IWDG_RLR, IWDG_EWCR and IWDG_WINR registers have a write-protection mechanism.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PR</name>
          <displayName>PR</displayName>
          <description>IWDG prescaler register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>PR</name>
              <description>Prescaler divider 
These bits are write access protected, see Section 48.4.6. They are written by software to select the prescaler divider feeding the counter clock. PVU bit of the IWDG status register (IWDG_SR) must be reset to be able to change the prescaler divider.
Others: divider / 1024
Note: Reading this register returns the prescaler value from the V&lt;sub&gt;DD&lt;/sub&gt; voltage domain. This value may not be up to date/valid if a write operation to this register is ongoing. For this reason the value read from this register is valid only when the PVU bit in the IWDG status register (IWDG_SR) is reset.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RLR</name>
          <displayName>RLR</displayName>
          <description>IWDG reload register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000FFF</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>RL</name>
              <description>Watchdog counter reload value 
These bits are write access protected, see Section 48.4.6. They are written by software to define the value to be loaded in the watchdog counter each time the value 0xAAAA is written in the IWDG key register (IWDG_KR). The watchdog counter counts down from this value. The timeout period is a function of this value and the prescaler.clock. It is not recommended to set RL[11:0] to a value lower than 2.
The RVU bit in the IWDG status register (IWDG_SR) must be reset to be able to change the reload value.
Note: Reading this register returns the reload value from the V&lt;sub&gt;DD&lt;/sub&gt; voltage domain. This value may not be up to date/valid if a write operation to this register is ongoing, hence the value read from this register is valid only when the RVU bit in the IWDG status register (IWDG_SR) is reset.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>IWDG status register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>PVU</name>
              <description>Watchdog prescaler value update
This bit is set by hardware to indicate that an update of the prescaler value is ongoing. It is reset by hardware when the prescaler update operation is completed in the V&lt;sub&gt;DD&lt;/sub&gt; voltage domain (takes up to six periods of the IWDG kernel clock iwdg_ker_ck).
The prescaler value can be updated only when PVU bit is reset.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RVU</name>
              <description>Watchdog counter reload value update
This bit is set by hardware to indicate that an update of the reload value is ongoing. It is reset by hardware when the reload value update operation is completed in the V&lt;sub&gt;DD&lt;/sub&gt; voltage domain (takes up to six periods of the IWDG kernel clock iwdg_ker_ck).
The reload value can be updated only when RVU bit is reset.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>WVU</name>
              <description>Watchdog counter window value update
This bit is set by hardware to indicate that an update of the window value is ongoing. It is reset by hardware when the reload value update operation is completed in the V&lt;sub&gt;DD&lt;/sub&gt; voltage domain (takes up to one period of presc_ck and two periods of the IWDG kernel clock iwdg_ker_ck).
The window value can be updated only when WVU bit is reset.
This bit is generated only if generic window = 1.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EWU</name>
              <description>Watchdog interrupt comparator value update 
This bit is set by hardware to indicate that an update of the interrupt comparator value (EWIT[11:0]) or an update of the EWIE is ongoing. It is reset by hardware when the update operation is completed in the V&lt;sub&gt;DD&lt;/sub&gt; voltage domain (takes up to one period of presc_ck and two periods of the IWDG kernel clock iwdg_ker_ck).
The EWIT[11:0] and EWIE fields can be updated only when EWU bit is reset.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ONF</name>
              <description>Watchdog enable status bit
Set to 1 by hardware as soon as the IWDG is started. In software mode, it remains to '1' until the IWDG is reset. In hardware mode, this bit is always set to '1'.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EWIF</name>
              <description>Watchdog early interrupt flag
This bit is set to 1 by hardware in order to indicate that an early interrupt is pending. This bit must be cleared by the software by writing the bit EWIC of IWDG_EWCR register to 1.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>WINR</name>
          <displayName>WINR</displayName>
          <description>IWDG window register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000FFF</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>WIN</name>
              <description>Watchdog counter window value 
These bits are write access protected, see Section 48.4.6.They contain the high limit of the window value to be compared with the downcounter.
To prevent a reset, the IWDCNT downcounter must be reloaded when its value is lower than WIN[11:0] + 1 and greater than 1.
The WVU bit in the IWDG status register (IWDG_SR) must be reset to be able to change the reload value.
Note: Reading this register returns the reload value from the V&lt;sub&gt;DD&lt;/sub&gt; voltage domain. This value may not be valid if a write operation to this register is ongoing. For this reason the value read from this register is valid only when the WVU bit in the IWDG status register (IWDG_SR) is reset.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>EWCR</name>
          <displayName>EWCR</displayName>
          <description>IWDG early wake-up interrupt register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>EWIT</name>
              <description>Watchdog counter window value 
These bits are write access protected (see Section 48.4.6). They are written by software to define at which position of the IWDCNT down-counter the early wake-up interrupt must be generated. The early interrupt is generated when the IWDCNT is lower or equal to EWIT[11:0] - 1.
EWIT[11:0] must be bigger than 1.
An interrupt is generated only if EWIE = 1.
The EWU bit in the IWDG status register (IWDG_SR) must be reset to be able to change the reload value.
Note: Reading this register returns the Early wake-up comparator value and the Interrupt enable bit from the V&lt;sub&gt;DD&lt;/sub&gt; voltage domain. This value may not be up to date/valid if a write operation to this register is ongoing, hence the value read from this register is valid only when the EWU bit in the IWDG status register (IWDG_SR) is reset.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EWIC</name>
              <description>Watchdog early interrupt acknowledge 
The software must write a 1 into this bit in order to acknowledge the early wake-up interrupt and to clear the EWIF flag. Writing 0 has not effect, reading this flag returns a 0.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EWIE</name>
              <description>Watchdog early interrupt enable
Set and reset by software.
The EWU bit in the IWDG status register (IWDG_SR) must be reset to be able to change the value of this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>I2C1_I3C1</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_EV</name>
        <description>I2C1 event interrupt</description>
        <value>76</value>
      </interrupt>
      <interrupt>
        <name>I2C1_ER</name>
        <description>I2C1 error interrupt</description>
        <value>77</value>
      </interrupt>
      <interrupt>
        <name>I3C1_WKUP</name>
        <description>I3C wakeup Interrupt through EXTI line</description>
        <value>101</value>
      </interrupt>
      <interrupt>
        <name>I3C1_EV</name>
        <description>I3C1 event interrupt</description>
        <value>89</value>
      </interrupt>
      <interrupt>
        <name>I3C1_ER</name>
        <description>I3C1 error interrupt</description>
        <value>90</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>I2C control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PE</name>
              <description>Peripheral enable
Note: When PE = 0, the I2C SCL and SDA lines are released. Internal state machines and status bits are put back to their reset value. When cleared, PE must be kept low for at least 3 APB clock cycles.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXIE</name>
              <description>TX Interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXIE</name>
              <description>RX Interrupt enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADDRIE</name>
              <description>Address match Interrupt enable (slave only)</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NACKIE</name>
              <description>Not acknowledge received Interrupt enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STOPIE</name>
              <description>Stop detection Interrupt enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TCIE</name>
              <description>Transfer Complete interrupt enable 
Note: Any of these events generate an interrupt:
Note: Transfer Complete (TC)
Note: Transfer Complete Reload (TCR)</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ERRIE</name>
              <description>Error interrupts enable
Note: Any of these errors generate an interrupt:
Note: Arbitration Loss (ARLO)
Note: Bus Error detection (BERR)
Note: Overrun/Underrun (OVR)
Note: Timeout detection (TIMEOUT)
Note: PEC error detection (PECERR)
Note: Alert pin event detection (ALERT)</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DNF</name>
              <description>Digital noise filter
These bits are used to configure the digital noise filter on SDA and SCL input. The digital filter, filters spikes with a length of up to DNF[3:0] * t&lt;sub&gt;I2CCLK&lt;/sub&gt;
&lt;sub&gt;...&lt;/sub&gt;
Note: If the analog filter is also enabled, the digital filter is added to the analog filter. 
Note: This filter can only be programmed when the I2C is disabled (PE = 0).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ANFOFF</name>
              <description>Analog noise filter OFF
Note: This bit can only be programmed when the I2C is disabled (PE = 0).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXDMAEN</name>
              <description>DMA transmission requests enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXDMAEN</name>
              <description>DMA reception requests enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SBC</name>
              <description>Slave byte control
This bit is used to enable hardware byte control in slave mode.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NOSTRETCH</name>
              <description>Clock stretching disable 
This bit is used to disable clock stretching in slave mode. It must be kept cleared in master mode.
Note: This bit can only be programmed when the I2C is disabled (PE = 0).</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WUPEN</name>
              <description>Wakeup from Stop mode enable
Note: If the Wakeup from Stop mode feature is not supported, this bit is reserved and forced by hardware to 0. Refer to Section 52.3: FMPI2C implementation.
Note: WUPEN can be set only when DNF = 0000</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GCEN</name>
              <description>General call enable</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMBHEN</name>
              <description>SMBus host address enable
Note: If the SMBus feature is not supported, this bit is reserved and forced by hardware to 0. Refer to Section 52.3: FMPI2C implementation.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMBDEN</name>
              <description>SMBus device default address enable
Note: If the SMBus feature is not supported, this bit is reserved and forced by hardware to 0. Refer to Section 52.3: FMPI2C implementation.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ALERTEN</name>
              <description>SMBus alert enable
Note: When ALERTEN=0, the SMBA pin can be used as a standard GPIO.
Note: If the SMBus feature is not supported, this bit is reserved and forced by hardware to 0. Refer to Section 52.3: FMPI2C implementation.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PECEN</name>
              <description>PEC enable
Note: If the SMBus feature is not supported, this bit is reserved and forced by hardware to 0. Refer to Section 52.3: FMPI2C implementation.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FMP</name>
              <description>Fast-mode Plus 20 mA drive enable</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADDRACLR</name>
              <description>Address match flag (ADDR) automatic clear</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STOPFACLR</name>
              <description>STOP detection flag (STOPF) automatic clear</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>I2C control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SADD</name>
              <description>Slave address (master mode)
In 7-bit addressing mode (ADD10 = 0):
SADD[7:1] should be written with the 7-bit slave address to be sent. The bits SADD[9], SADD[8] and SADD[0] are don't care.
In 10-bit addressing mode (ADD10 = 1):
SADD[9:0] should be written with the 10-bit slave address to be sent.
Note: Changing these bits when the START bit is set is not allowed.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RD_WRN</name>
              <description>Transfer direction (master mode)
Note: Changing this bit when the START bit is set is not allowed.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADD10</name>
              <description>10-bit addressing mode (master mode)
Note: Changing this bit when the START bit is set is not allowed.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HEAD10R</name>
              <description>10-bit address header only read direction (master receiver mode)
Note: Changing this bit when the START bit is set is not allowed.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>START</name>
              <description>Start generation
This bit is set by software, and cleared by hardware after the Start followed by the address sequence is sent, by an arbitration loss, by an address matched in slave mode, by a timeout error detection, or when PE = 0.
If the I2C is already in master mode with AUTOEND = 0, setting this bit generates a Repeated start condition when RELOAD=0, after the end of the NBYTES transfer. 
Otherwise setting this bit generates a START condition once the bus is free.
Note: Writing 0 to this bit has no effect.
Note: The START bit can be set even if the bus is BUSY or I2C is in slave mode.
Note: This bit has no effect when RELOAD is set.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STOP</name>
              <description>Stop generation (master mode)
The bit is set by software, cleared by hardware when a STOP condition is detected, or when PE = 0.
In Master mode:
Note: Writing 0 to this bit has no effect.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NACK</name>
              <description>NACK generation (slave mode)
The bit is set by software, cleared by hardware when the NACK is sent, or when a STOP condition or an Address matched is received, or when PE = 0.
Note: Writing 0 to this bit has no effect.
Note: This bit is used in slave mode only: in master receiver mode, NACK is automatically generated after last byte preceding STOP or RESTART condition, whatever the NACK bit value.
Note: When an overrun occurs in slave receiver NOSTRETCH mode, a NACK is automatically generated whatever the NACK bit value.
Note: When hardware PEC checking is enabled (PECBYTE=1), the PEC acknowledge value does not depend on the NACK value.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NBYTES</name>
              <description>Number of bytes
The number of bytes to be transmitted/received is programmed there. This field is dont care in slave mode with SBC=0.
Note: Changing these bits when the START bit is set is not allowed.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RELOAD</name>
              <description>NBYTES reload mode
This bit is set and cleared by software.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AUTOEND</name>
              <description>Automatic end mode (master mode)
This bit is set and cleared by software.
Note: This bit has no effect in slave mode or when the RELOAD bit is set.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PECBYTE</name>
              <description>Packet error checking byte
This bit is set by software, and cleared by hardware when the PEC is transferred, or when a STOP condition or an Address matched is received, also when PE = 0.
Note: Writing 0 to this bit has no effect.
Note: This bit has no effect when RELOAD is set.
Note: This bit has no effect is slave mode when SBC=0.
Note: If the SMBus feature is not supported, this bit is reserved and forced by hardware to 0. Refer to Section 52.3: FMPI2C implementation.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OAR1</name>
          <displayName>OAR1</displayName>
          <description>I2C own address 1 register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OA1</name>
              <description>Interface own slave address
7-bit addressing mode: OA1[7:1] contains the 7-bit own slave address. The bits OA1[9], OA1[8] and OA1[0] are don't care. 
10-bit addressing mode: OA1[9:0] contains the 10-bit own slave address.
Note: These bits can be written only when OA1EN=0.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OA1MODE</name>
              <description>Own address 1 10-bit mode
Note: This bit can be written only when OA1EN=0.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OA1EN</name>
              <description>Own address 1 enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>OAR2</name>
          <displayName>OAR2</displayName>
          <description>I2C own address 2 register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OA2</name>
              <description>Interface address
7-bit addressing mode: 7-bit address
Note: These bits can be written only when OA2EN=0.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OA2MSK</name>
              <description>Own address 2 masks
Note: These bits can be written only when OA2EN=0.
Note: As soon as OA2MSK is not equal to 0, the reserved I2C addresses (0b0000xxx and 0b1111xxx) are not acknowledged even if the comparison matches.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OA2EN</name>
              <description>Own address 2 enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TIMINGR</name>
          <displayName>TIMINGR</displayName>
          <description>I2C timing register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SCLL</name>
              <description>SCL low period (master mode)
This field is used to generate the SCL low period in master mode.
t&lt;sub&gt;SCLL &lt;/sub&gt;= (SCLL+1) x t&lt;sub&gt;PRESC&lt;/sub&gt;
Note: SCLL is also used to generate t&lt;sub&gt;BUF &lt;/sub&gt;and t&lt;sub&gt;SU:STA &lt;/sub&gt;timings.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SCLH</name>
              <description>SCL high period (master mode)
This field is used to generate the SCL high period in master mode.
t&lt;sub&gt;SCLH &lt;/sub&gt;= (SCLH+1) x t&lt;sub&gt;PRESC&lt;/sub&gt;
Note: SCLH is also used to generate t&lt;sub&gt;SU:STO &lt;/sub&gt;and t&lt;sub&gt;HD:STA &lt;/sub&gt;timing.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SDADEL</name>
              <description>Data hold time
This field is used to generate the delay t&lt;sub&gt;SDADEL &lt;/sub&gt;between SCL falling edge and SDA edge. In master mode and in slave mode with NOSTRETCH = 0, the SCL line is stretched low during t&lt;sub&gt;SDADEL&lt;/sub&gt;.
t&lt;sub&gt;SDADEL&lt;/sub&gt;= SDADEL x t&lt;sub&gt;PRESC&lt;/sub&gt;
Note: SDADEL is used to generate t&lt;sub&gt;HD:DAT &lt;/sub&gt;timing.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SCLDEL</name>
              <description>Data setup time
This field is used to generate a delay t&lt;sub&gt;SCLDEL &lt;/sub&gt;between SDA edge and SCL rising edge. In master mode and in slave mode with NOSTRETCH = 0, the SCL line is stretched low during t&lt;sub&gt;SCLDEL&lt;/sub&gt;.
t&lt;sub&gt;SCLDEL &lt;/sub&gt;= (SCLDEL+1) x t&lt;sub&gt;PRESC&lt;/sub&gt;
Note: t&lt;sub&gt;SCLDEL&lt;/sub&gt; is used to generate t&lt;sub&gt;SU:DAT &lt;/sub&gt;timing.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PRESC</name>
              <description>Timing prescaler
This field is used to prescale i2c_ker_ck in order to generate the clock period t&lt;sub&gt;PRESC &lt;/sub&gt;used for data setup and hold counters (refer to FMPI2C timings on page 2561) and for SCL high and low level counters (refer to FMPI2C master initialization on page 2584).
t&lt;sub&gt;PRESC &lt;/sub&gt;= (PRESC+1) x t&lt;sub&gt;I2CCLK&lt;/sub&gt;</description>
              <bitOffset>28</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TIMEOUTR</name>
          <displayName>TIMEOUTR</displayName>
          <description>I2C timeout register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TIMEOUTA</name>
              <description>Bus Timeout A
This field is used to configure:
The SCL low timeout condition t&lt;sub&gt;TIMEOUT&lt;/sub&gt; when TIDLE=0
t&lt;sub&gt;TIMEOUT&lt;/sub&gt;= (TIMEOUTA+1) x 2048 x t&lt;sub&gt;I2CCLK&lt;/sub&gt;
The bus idle condition (both SCL and SDA high) when TIDLE=1 
t&lt;sub&gt;IDLE&lt;/sub&gt;= (TIMEOUTA+1) x 4 x t&lt;sub&gt;I2CCLK&lt;/sub&gt;
Note: These bits can be written only when TIMOUTEN=0.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIDLE</name>
              <description>Idle clock timeout detection 
Note: This bit can be written only when TIMOUTEN=0.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIMOUTEN</name>
              <description>Clock timeout enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIMEOUTB</name>
              <description>Bus timeout B
This field is used to configure the cumulative clock extension timeout:
In master mode, the master cumulative clock low extend time (t&lt;sub&gt;LOW:MEXT&lt;/sub&gt;) is detected
In slave mode, the slave cumulative clock low extend time (t&lt;sub&gt;LOW:SEXT&lt;/sub&gt;) is detected
t&lt;sub&gt;LOW:EXT&lt;/sub&gt;= (TIMEOUTB+1) x 2048 x t&lt;sub&gt;I2CCLK&lt;/sub&gt;
Note: These bits can be written only when TEXTEN=0.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TEXTEN</name>
              <description>Extended clock timeout enable</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ISR</name>
          <displayName>ISR</displayName>
          <description>I2C interrupt and status register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000001</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXE</name>
              <description>Transmit data register empty (transmitters) 
This bit is set by hardware when the I2C_TXDR register is empty. It is cleared when the next data to be sent is written in the I2C_TXDR register. 
This bit can be written to 1 by software in order to flush the transmit data register I2C_TXDR.
Note: This bit is set by hardware when PE = 0.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXIS</name>
              <description>Transmit interrupt status (transmitters) 
This bit is set by hardware when the I2C_TXDR register is empty and the data to be transmitted must be written in the I2C_TXDR register. It is cleared when the next data to be sent is written in the I2C_TXDR register. 
This bit can be written to 1 by software when NOSTRETCH = 1 only, in order to generate a TXIS event (interrupt if TXIE=1 or DMA request if TXDMAEN = 1).
Note: This bit is cleared by hardware when PE = 0.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXNE</name>
              <description>Receive data register not empty (receivers)
This bit is set by hardware when the received data is copied into the I2C_RXDR register, and is ready to be read. It is cleared when I2C_RXDR is read. 
Note: This bit is cleared by hardware when PE = 0.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ADDR</name>
              <description>Address matched (slave mode)
This bit is set by hardware as soon as the received slave address matched with one of the enabled slave addresses. It is cleared by software by setting ADDRCF bit.
Note: This bit is cleared by hardware when PE = 0.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NACKF</name>
              <description>Not Acknowledge received flag 
This flag is set by hardware when a NACK is received after a byte transmission. It is cleared by software by setting the NACKCF bit.
Note: This bit is cleared by hardware when PE = 0.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>STOPF</name>
              <description>Stop detection flag
This flag is set by hardware when a STOP condition is detected on the bus and the peripheral is involved in this transfer:
either as a master, provided that the STOP condition is generated by the peripheral.
or as a slave, provided that the peripheral has been addressed previously during this transfer.
It is cleared by software by setting the STOPCF bit.
Note: This bit is cleared by hardware when PE = 0.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TC</name>
              <description>Transfer Complete (master mode)
This flag is set by hardware when RELOAD=0, AUTOEND=0 and NBYTES data have been transferred. It is cleared by software when START bit or STOP bit is set.
Note: This bit is cleared by hardware when PE = 0.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TCR</name>
              <description>Transfer Complete Reload
This flag is set by hardware when RELOAD=1 and NBYTES data have been transferred. It is cleared by software when NBYTES is written to a non-zero value.
Note: This bit is cleared by hardware when PE = 0.
Note: This flag is only for master mode, or for slave mode when the SBC bit is set.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>BERR</name>
              <description>Bus error 
This flag is set by hardware when a misplaced Start or STOP condition is detected whereas the peripheral is involved in the transfer. The flag is not set during the address phase in slave mode. It is cleared by software by setting BERRCF bit.
Note: This bit is cleared by hardware when PE = 0.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ARLO</name>
              <description>Arbitration lost 
This flag is set by hardware in case of arbitration loss. It is cleared by software by setting the ARLOCF bit.
Note: This bit is cleared by hardware when PE = 0.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OVR</name>
              <description>Overrun/Underrun (slave mode)
This flag is set by hardware in slave mode with NOSTRETCH = 1, when an overrun/underrun error occurs. It is cleared by software by setting the OVRCF bit.
Note: This bit is cleared by hardware when PE = 0.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PECERR</name>
              <description>PEC Error in reception
This flag is set by hardware when the received PEC does not match with the PEC register content. A NACK is automatically sent after the wrong PEC reception. It is cleared by software by setting the PECCF bit.
Note: This bit is cleared by hardware when PE = 0.
Note: If the SMBus feature is not supported, this bit is reserved and forced by hardware to 0. Refer to Section 52.3: FMPI2C implementation.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TIMEOUT</name>
              <description>Timeout or t&lt;sub&gt;LOW&lt;/sub&gt; detection flag
This flag is set by hardware when a timeout or extended clock timeout occurred. It is cleared by software by setting the TIMEOUTCF bit.
Note: This bit is cleared by hardware when PE = 0.
Note: If the SMBus feature is not supported, this bit is reserved and forced by hardware to 0. Refer to Section 52.3: FMPI2C implementation.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ALERT</name>
              <description>SMBus alert 
This flag is set by hardware when SMBHEN=1 (SMBus host configuration), ALERTEN=1 and a SMBALERT event (falling edge) is detected on SMBA pin. It is cleared by software by setting the ALERTCF bit.
Note: This bit is cleared by hardware when PE = 0.
Note: If the SMBus feature is not supported, this bit is reserved and forced by hardware to 0. Refer to Section 52.3: FMPI2C implementation.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>BUSY</name>
              <description>Bus busy
This flag indicates that a communication is in progress on the bus. It is set by hardware when a START condition is detected. It is cleared by hardware when a STOP condition is detected, or when PE = 0.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DIR</name>
              <description>Transfer direction (Slave mode)
This flag is updated when an address match event occurs (ADDR = 1).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ADDCODE</name>
              <description>Address match code (Slave mode) 
These bits are updated with the received address when an address match event occurs (ADDR = 1).
In the case of a 10-bit address, ADDCODE provides the 10-bit header followed by the 2 MSBs of the address.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ICR</name>
          <displayName>ICR</displayName>
          <description>I2C interrupt clear register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ADDRCF</name>
              <description>Address matched flag clear 
Writing 1 to this bit clears the ADDR flag in the I2C_ISR register. Writing 1 to this bit also clears the START bit in the I2C_CR2 register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>NACKCF</name>
              <description>Not Acknowledge flag clear
Writing 1 to this bit clears the NACKF flag in I2C_ISR register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>STOPCF</name>
              <description>STOP detection flag clear 
Writing 1 to this bit clears the STOPF flag in the I2C_ISR register.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>BERRCF</name>
              <description>Bus error flag clear
Writing 1 to this bit clears the BERRF flag in the I2C_ISR register.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>ARLOCF</name>
              <description>Arbitration lost flag clear
Writing 1 to this bit clears the ARLO flag in the I2C_ISR register.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>OVRCF</name>
              <description>Overrun/Underrun flag clear
Writing 1 to this bit clears the OVR flag in the I2C_ISR register.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>PECCF</name>
              <description>PEC Error flag clear
Writing 1 to this bit clears the PECERR flag in the I2C_ISR register.
Note: If the SMBus feature is not supported, this bit is reserved and forced by hardware to 0. Refer to Section 52.3: FMPI2C implementation.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>TIMOUTCF</name>
              <description>Timeout detection flag clear
Writing 1 to this bit clears the TIMEOUT flag in the I2C_ISR register.
Note: If the SMBus feature is not supported, this bit is reserved and forced by hardware to 0. Refer to Section 52.3: FMPI2C implementation.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>ALERTCF</name>
              <description>Alert flag clear
Writing 1 to this bit clears the ALERT flag in the I2C_ISR register.
Note: If the SMBus feature is not supported, this bit is reserved and forced by hardware to 0. Refer to Section 52.3: FMPI2C implementation.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PECR</name>
          <displayName>PECR</displayName>
          <description>I2C PEC register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PEC</name>
              <description>Packet error checking register
This field contains the internal PEC when PECEN=1.
The PEC is cleared by hardware when PE = 0.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RXDR</name>
          <displayName>RXDR</displayName>
          <description>I2C receive data register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXDATA</name>
              <description>8-bit receive data
Data byte received from the I&lt;sup&gt;2&lt;/sup&gt;C bus</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TXDR</name>
          <displayName>TXDR</displayName>
          <description>I2C transmit data register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXDATA</name>
              <description>8-bit transmit data
Data byte to be transmitted to the I&lt;sup&gt;2&lt;/sup&gt;C bus
Note: These bits can be written only when TXE = 1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="I2C1_I3C1">
      <name>I2C2</name>
      <baseAddress>0x40005800</baseAddress>
      <interrupt>
        <name>I2C2_EV</name>
        <description>I2C2 event interrupt</description>
        <value>78</value>
      </interrupt>
      <interrupt>
        <name>I2C2_ER</name>
        <description>I2C2 error interrupt</description>
        <value>79</value>
      </interrupt>
    </peripheral>
    <peripheral derivedFrom="I2C1_I3C1">
      <name>I2C3</name>
      <baseAddress>0x40005C00</baseAddress>
      <interrupt>
        <name>I2C3_EV</name>
        <description>I2C3 event interrupt</description>
        <value>80</value>
      </interrupt>
      <interrupt>
        <name>I2C3_ER</name>
        <description>I2C3 error interrupt</description>
        <value>81</value>
      </interrupt>
    </peripheral>
    <peripheral>
      <name>JPEG</name>
      <description>JPEG codec</description>
      <groupName>JPEG</groupName>
      <baseAddress>0x52003000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x8BC</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>JPEG</name>
        <description>JPEG global interrupt</description>
        <value>99</value>
      </interrupt>
      <registers>
        <register>
          <name>CONFR0</name>
          <displayName>CONFR0</displayName>
          <description>JPEG codec control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>START</name>
              <description>Start
This bit start or stop the encoding or decoding process.
Note: Reads always return 0.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CONFR1</name>
          <displayName>CONFR1</displayName>
          <description>JPEG codec configuration register 1</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>NF</name>
              <description>Number of color components
This field defines the number of color components minus 1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DE</name>
              <description>Codec operation as coder or decoder
This bit selects the code or decode process</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COLSPACE</name>
              <description>Color space
This filed defines the number of quantization tables minus 1 to insert in the output stream.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NS</name>
              <description>Number of components for scan
This field defines the number of components minus 1 for scan header marker segment.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HDR</name>
              <description>Header processing
This bit enables the header processing (generation/parsing).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>YSIZE</name>
              <description>Y Size
This field defines the number of lines in source image.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CONFR2</name>
          <displayName>CONFR2</displayName>
          <description>JPEG codec configuration register 2</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>NMCU</name>
              <description>Number of MCUs
For encoding: this field defines the number of MCU units minus 1 to encode.
For decoding: this field indicates the number of complete MCU units minus 1 to be decoded (this field is updated after the JPEG header parsing). If the decoded image size has not a X or Y size multiple of 8 or 16 (depending on the sub-sampling process), the resulting incomplete or empty MCU must be added to this value to get the total number of MCUs generated.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>26</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CONFR3</name>
          <displayName>CONFR3</displayName>
          <description>JPEG codec configuration register 3</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XSIZE</name>
              <description>X size
This field defines the number of pixels per line.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CONFR4</name>
          <displayName>CONFR4</displayName>
          <description>JPEG codec configuration register 4</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>HD</name>
              <description>Huffman DC
Selects the Huffman table for encoding DC coefficients.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HA</name>
              <description>Huffman AC
Selects the Huffman table for encoding AC coefficients.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>QT</name>
              <description>Quantization table
Selects quantization table used for component 0.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NB</name>
              <description>Number of blocks
Number of data units minus 1 that belong to a particular color in the MCU.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VSF</name>
              <description>Vertical sampling factor
Vertical sampling factor for component 0.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HSF</name>
              <description>Horizontal sampling factor
Horizontal sampling factor for component 0.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CONFR5</name>
          <displayName>CONFR5</displayName>
          <description>JPEG codec configuration register 5</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>HD</name>
              <description>Huffman DC
Selects the Huffman table for encoding DC coefficients.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HA</name>
              <description>Huffman AC
Selects the Huffman table for encoding AC coefficients.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>QT</name>
              <description>Quantization table
Selects quantization table used for component 1.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NB</name>
              <description>Number of blocks
Number of data units minus 1 that belong to a particular color in the MCU.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VSF</name>
              <description>Vertical sampling factor
Vertical sampling factor for component 1.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HSF</name>
              <description>Horizontal sampling factor
Horizontal sampling factor for component 1.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CONFR6</name>
          <displayName>CONFR6</displayName>
          <description>JPEG codec configuration register 6</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>HD</name>
              <description>Huffman DC
Selects the Huffman table for encoding DC coefficients.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HA</name>
              <description>Huffman AC
Selects the Huffman table for encoding AC coefficients.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>QT</name>
              <description>Quantization table
Selects quantization table used for component 2.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NB</name>
              <description>Number of blocks
Number of data units minus 1 that belong to a particular color in the MCU.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VSF</name>
              <description>Vertical sampling factor
Vertical sampling factor for component 2.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HSF</name>
              <description>Horizontal sampling factor
Horizontal sampling factor for component 2.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CONFR7</name>
          <displayName>CONFR7</displayName>
          <description>JPEG codec configuration register 7</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>HD</name>
              <description>Huffman DC
Selects the Huffman table for encoding DC coefficients.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HA</name>
              <description>Huffman AC
Selects the Huffman table for encoding AC coefficients.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>QT</name>
              <description>Quantization table
Selects quantization table used for component 3.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NB</name>
              <description>Number of blocks
Number of data units minus 1 that belong to a particular color in the MCU.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VSF</name>
              <description>Vertical sampling factor
Vertical sampling factor for component 3.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HSF</name>
              <description>Horizontal sampling factor
Horizontal sampling factor for component 3.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>JPEG control register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>JCEN</name>
              <description>JPEG core enable
This bit enables the JPEG codec core.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IFTIE</name>
              <description>Input FIFO threshold interrupt enable
This bit enables interrupt generation when the input FIFO reaches a threshold.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IFNFIE</name>
              <description>Input FIFO not full interrupt enable
This bit enables interrupt generation when the input FIFO is not empty.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OFTIE</name>
              <description>Output FIFO threshold interrupt enable
This bit enables interrupt generation when the output FIFO reaches a threshold.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OFNEIE</name>
              <description>Output FIFO not empty interrupt enable
This bit enables interrupt generation when the output FIFO is not empty.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EOCIE</name>
              <description>End of conversion interrupt enable
This bit enables interrupt generation at the end of conversion.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HPDIE</name>
              <description>Header parsing done interrupt enable
This bit enables interrupt generation upon the completion of the header parsing operation.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IDMAEN</name>
              <description>Input DMA enable
Enables DMA request generation for the input FIFO.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ODMAEN</name>
              <description>Output DMA enable
Enables DMA request generation for the output FIFO.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IFF</name>
              <description>Input FIFO flush
This bit flushes the input FIFO. 
Note: Reads always return 0.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>OFF</name>
              <description>Output FIFO flush
This bit flushes the output FIFO.
Note: Reads always return 0.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>JPEG status register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000006</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IFTF</name>
              <description>Input FIFO threshold flag
This bit flags that the amount of data in the input FIFO is below a threshold. This flag must not be considered when using DMA.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>IFNFF</name>
              <description>Input FIFO not full flag
This bit flags that the input FIFO is not full (data can be written). This flag must not be considered when using DMA.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OFTF</name>
              <description>Output FIFO threshold flag
This bit flags that the amount of data in the output FIFO reaches or exceeds a threshold. This flag must not be considered when using DMA.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OFNEF</name>
              <description>Output FIFO not empty flag
This bit flags that data is available in the output FIFO. This flag must not be considered when using DMA.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EOCF</name>
              <description>End of conversion flag
This bit flags the completion of encode/decode process and data transfer to the output FIFO.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>HPDF</name>
              <description>Header parsing done flag
In decode mode, this bit flags the completion of header parsing and updating internal registers.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>COF</name>
              <description>Codec operation flag
This bit flags code/decode operation in progress.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CFR</name>
          <displayName>CFR</displayName>
          <description>JPEG clear flag register</description>
          <addressOffset>0x38</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CEOCF</name>
              <description>Clear end of conversion flag
Writing 1 clears the ECF bit of the JPEG_SR register.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHPDF</name>
              <description>Clear header parsing done flag
Writing 1 clears the HPDF bit of the JPEG_SR register.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIR</name>
          <displayName>DIR</displayName>
          <description>JPEG data input register</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DATAIN</name>
              <description>Data input FIFO
Input FIFO data register</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOR</name>
          <displayName>DOR</displayName>
          <description>JPEG data output register</description>
          <addressOffset>0x44</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DATAOUT</name>
              <description>Data output FIFO
Output FIFO data register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <dim>16</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-15</dimIndex>
          <name>QMEM0%s</name>
          <displayName>QMEM0_%s</displayName>
          <description>JPEG quantization memory 0</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>QCOEF0</name>
              <description>Quantization coefficient 0
8-bit quantization coefficient.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>QCOEF1</name>
              <description>Quantization coefficient 1
8-bit quantization coefficient.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>QCOEF2</name>
              <description>Quantization coefficient 2
8-bit quantization coefficient.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>QCOEF3</name>
              <description>Quantization coefficient 3
8-bit quantization coefficient.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <dim>16</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-15</dimIndex>
          <name>QMEM1%s</name>
          <displayName>QMEM1_%s</displayName>
          <description>JPEG quantization memory 1</description>
          <addressOffset>0x90</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>QCOEF0</name>
              <description>Quantization coefficient 0
8-bit quantization coefficient.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>QCOEF1</name>
              <description>Quantization coefficient 1
8-bit quantization coefficient.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>QCOEF2</name>
              <description>Quantization coefficient 2
8-bit quantization coefficient.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>QCOEF3</name>
              <description>Quantization coefficient 3
8-bit quantization coefficient.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <dim>16</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-15</dimIndex>
          <name>QMEM2%s</name>
          <displayName>QMEM2_%s</displayName>
          <description>JPEG quantization memory 2</description>
          <addressOffset>0xD0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>QCOEF0</name>
              <description>Quantization coefficient 0
8-bit quantization coefficient.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>QCOEF1</name>
              <description>Quantization coefficient 1
8-bit quantization coefficient.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>QCOEF2</name>
              <description>Quantization coefficient 2
8-bit quantization coefficient.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>QCOEF3</name>
              <description>Quantization coefficient 3
8-bit quantization coefficient.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <dim>16</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-15</dimIndex>
          <name>QMEM3%s</name>
          <displayName>QMEM3_%s</displayName>
          <description>JPEG quantization memory 3</description>
          <addressOffset>0x110</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>QCOEF0</name>
              <description>Quantization coefficient 0
8-bit quantization coefficient.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>QCOEF1</name>
              <description>Quantization coefficient 1
8-bit quantization coefficient.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>QCOEF2</name>
              <description>Quantization coefficient 2
8-bit quantization coefficient.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>QCOEF3</name>
              <description>Quantization coefficient 3
8-bit quantization coefficient.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <cluster>
          <dim>4</dim>
          <dimIncrement>0x10</dimIncrement>
          <dimIndex>0-3</dimIndex>
          <name>HUFFMIN%s</name>
          <description>HUFFMIN cluster: 100-bit minimum Huffman value</description>
          <addressOffset>0x150</addressOffset>
          <register>
            <name>HUFFMIN_0</name>
            <displayName>HUFFMIN0_0</displayName>
            <description>Bits 0-31 of the minimum Huffman value</description>
            <addressOffset>0x0</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0x00000000</resetMask>
            <fields>
              <field>
                <name>DATA0</name>
                <description>Minimum Huffman value
100-bit minimum Huffman value used internally by the JPEG decoder.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>32</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>HUFFMIN_1</name>
            <displayName>HUFFMIN0_1</displayName>
            <description>Bits 32-63 of the minimum Huffman value</description>
            <addressOffset>0x4</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0x00000000</resetMask>
            <fields>
              <field>
                <name>DATA0</name>
                <description>Minimum Huffman value
100-bit minimum Huffman value used internally by the JPEG decoder.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>32</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>HUFFMIN_2</name>
            <displayName>HUFFMIN0_2</displayName>
            <description>Bits 64-95 of the minimum Huffman value</description>
            <addressOffset>0x8</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0x00000000</resetMask>
            <fields>
              <field>
                <name>DATA0</name>
                <description>Minimum Huffman value
100-bit minimum Huffman value used internally by the JPEG decoder.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>32</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>HUFFMIN_3</name>
            <displayName>HUFFMIN0_3</displayName>
            <description>Bits 96-99 of the minimum Huffman value</description>
            <addressOffset>0xC</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0x00000000</resetMask>
            <fields>
              <field>
                <name>DATA0</name>
                <description>Minimum Huffman value
100-bit minimum Huffman value used internally by the JPEG decoder.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>4</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
        </cluster>
        <register>
          <dim>32</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-31</dimIndex>
          <name>HUFFBASE%s</name>
          <displayName>HUFFBASE%s</displayName>
          <description>JPEG Huffman base</description>
          <addressOffset>0x190</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>DATA0</name>
              <description>Data 0
Base Huffman value.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>9</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DATA1</name>
              <description>Data 1
Base Huffman value.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>9</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <dim>84</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-83</dimIndex>
          <name>HUFFSYMB%s</name>
          <displayName>HUFFSYMB%s</displayName>
          <description>JPEG Huffman symbol</description>
          <addressOffset>0x210</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>DATA0</name>
              <description>Data 0
Huffman symbol.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DATA1</name>
              <description>Data 1
Huffman symbol.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DATA2</name>
              <description>Data 2
Huffman symbol.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DATA3</name>
              <description>Data 3
Huffman symbol.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <dim>103</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-102</dimIndex>
          <name>DHTMEM%s</name>
          <displayName>DHTMEM%s</displayName>
          <description>JPEG DHT memory</description>
          <addressOffset>0x360</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>DATA0</name>
              <description>Huffman table data 0
Huffman table data for DHT marker segment generation.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DATA1</name>
              <description>Huffman table data 1
Huffman table data for DHT marker segment generation.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DATA2</name>
              <description>Huffman table data 2
Huffman table data for DHT marker segment generation.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DATA3</name>
              <description>Huffman table data 3
Huffman table data for DHT marker segment generation.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <dim>88</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-87</dimIndex>
          <name>HUFFENC_AC0%s</name>
          <displayName>HUFFENC_AC0_%s</displayName>
          <description>JPEG encoder, AC Huffman table 0</description>
          <addressOffset>0x500</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>HCODE0</name>
              <description>Huffman code 0
8 least significant bits of the Huffman code.
If the Huffman code is less than 8 bits long, the unused bits must be 0.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HLEN0</name>
              <description>Huffman length 0
Number of bits in the Huffman code HCODE0 minus 1.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HCODE1</name>
              <description>Huffman code 1
8 least significant bits of the Huffman code.
If the Huffman code is less than 8 bits long, the unused bits must be 0.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HLEN1</name>
              <description>Huffman length 1
Number of bits in the Huffman code HCODE1 minus 1.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <dim>88</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-87</dimIndex>
          <name>HUFFENC_AC1%s</name>
          <displayName>HUFFENC_AC1_%s</displayName>
          <description>JPEG encoder, AC Huffman table 1</description>
          <alternateRegister>HUFFENC_AC0_55</alternateRegister>
          <addressOffset>0x5DC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>HCODE0</name>
              <description>Huffman code 0
8 least significant bits of the Huffman code.
If the Huffman code is less than 8 bits long, the unused bits must be 0.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HLEN0</name>
              <description>Huffman length 0
Number of bits in the Huffman code HCODE0 minus 1.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HCODE1</name>
              <description>Huffman code 1
8 least significant bits of the Huffman code.
If the Huffman code is less than 8 bits long, the unused bits must be 0.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HLEN1</name>
              <description>Huffman length 1
Number of bits in the Huffman code HCODE1 minus 1.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <dim>8</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-7</dimIndex>
          <name>HUFFENC_DC0%s</name>
          <displayName>HUFFENC_DC0_%s</displayName>
          <description>JPEG encoder, DC Huffman table 0</description>
          <addressOffset>0x7C0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>HCODE0</name>
              <description>Huffman code 0
8 least significant bits of the Huffman code.
If the Huffman code is less than 8 bits long, the unused bits must be 0.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HLEN0</name>
              <description>Huffman length 0
Number of bits in the Huffman code HCODE0 minus 1.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HCODE1</name>
              <description>Huffman code 1
8 least significant bits of the Huffman code.
If the Huffman code is less than 8 bits long, the unused bits must be 0.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HLEN1</name>
              <description>Huffman length 1
Number of bits in the Huffman code HCODE1 minus 1.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <dim>8</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-7</dimIndex>
          <name>HUFFENC_DC1%s</name>
          <displayName>HUFFENC_DC1_%s</displayName>
          <description>JPEG encoder, DC Huffman table 1</description>
          <addressOffset>0x89C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x00000000</resetMask>
          <fields>
            <field>
              <name>HCODE0</name>
              <description>Huffman code 0
8 least significant bits of the Huffman code.
If the Huffman code is less than 8 bits long, the unused bits must be 0.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HLEN0</name>
              <description>Huffman length 0
Number of bits in the Huffman code HCODE0 minus 1.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HCODE1</name>
              <description>Huffman code 1
8 least significant bits of the Huffman code.
If the Huffman code is less than 8 bits long, the unused bits must be 0.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HLEN1</name>
              <description>Huffman length 1
Number of bits in the Huffman code HCODE1 minus 1.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>LPTIM1</name>
      <description>Low power timer</description>
      <groupName>LPTIM</groupName>
      <baseAddress>0x40002400</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0xC</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>LPTIM1</name>
        <description>LPTIM1 global interrupt</description>
        <value>119</value>
      </interrupt>
      <registers>
        <register>
          <name>ISR_OUTPUT</name>
          <displayName>ISR_OUTPUT</displayName>
          <description>LPTIM1 interrupt and status register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CC1IF</name>
              <description>Compare 1 interrupt flag
If channel CC1 is configured as output:
The CC1IF flag is set by hardware to inform application that LPTIM_CNT register value matches the compare register's value. CC1IF flag can be cleared by writing 1 to the CC1CF bit in the LPTIM_ICR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ARRM</name>
              <description>Autoreload match
ARRM is set by hardware to inform application that LPTIM_CNT registers value reached the LPTIM_ARR registers value. ARRM flag can be cleared by writing 1 to the ARRMCF bit in the LPTIM_ICR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EXTTRIG</name>
              <description>External trigger edge event
EXTTRIG is set by hardware to inform application that a valid edge on the selected external trigger input has occurred. If the trigger is ignored because the timer has already started, then this flag is not set. EXTTRIG flag can be cleared by writing 1 to the EXTTRIGCF bit in the LPTIM_ICR register.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CMP1OK</name>
              <description>Compare register 1 update OK
CMP1OK is set by hardware to inform application that the APB bus write operation to the LPTIM_CCR1 register has been successfully completed. CMP1OK flag can be cleared by writing 1 to the CMP1OKCF bit in the LPTIM_ICR register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ARROK</name>
              <description>Autoreload register update OK
ARROK is set by hardware to inform application that the APB bus write operation to the LPTIM_ARR register has been successfully completed. ARROK flag can be cleared by writing 1 to the ARROKCF bit in the LPTIM_ICR register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>UP</name>
              <description>Counter direction change down to up
In Encoder mode, UP bit is set by hardware to inform application that the counter direction has changed from down to up. UP flag can be cleared by writing 1 to the UPCF bit in the LPTIM_ICR register.
Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DOWN</name>
              <description>Counter direction change up to down
In Encoder mode, DOWN bit is set by hardware to inform application that the counter direction has changed from up to down. DOWN flag can be cleared by writing 1 to the DOWNCF bit in the LPTIM_ICR register.
Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>UE</name>
              <description>LPTIM update event occurred
UE is set by hardware to inform application that an update event was generated. The corresponding interrupt or DMA request is generated if enabled. UE flag can be cleared by writing 1 to the UECF bit in the LPTIM_ICR register. The UE flag is automatically cleared by hardware once the LPTIM_ARR register is written by any bus master like CPU or DMA.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>REPOK</name>
              <description>Repetition register update OK
REPOK is set by hardware to inform application that the APB bus write operation to the LPTIM_RCR register has been successfully completed. REPOK flag can be cleared by writing 1 to the REPOKCF bit in the LPTIM_ICR register.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CC2IF</name>
              <description>Compare 2 interrupt flag
If channel CC2 is configured as output:
The CC2IF flag is set by hardware to inform application that LPTIM_CNT register value matches the
compare register's value. CC2IF flag can be cleared by writing 1 to the CC2CF bit in the LPTIM_ICR register.
Note: If LPTIM does not implement at least 2 channels this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CMP2OK</name>
              <description>Compare register 2 update OK
CMP2OK is set by hardware to inform application that the APB bus write operation to the LPTIM_CCR2 register has been successfully completed. CMP2OK flag can be cleared by writing 1 to the CMP2OKCF bit in the LPTIM_ICR register.
Note: If LPTIM does not implement at least 2 channels this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DIEROK</name>
              <description>Interrupt enable register update OK
DIEROK is set by hardware to inform application that the APB bus write operation to the LPTIM_DIER register has been successfully completed. DIEROK flag can be cleared by writing 1 to the DIEROKCF bit in the LPTIM_ICR register.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ISR_INPUT</name>
          <displayName>ISR_INPUT</displayName>
          <description>LPTIM1 interrupt and status register</description>
          <alternateRegister>ISR_OUTPUT</alternateRegister>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CC1IF</name>
              <description>capture 1 interrupt flag
If channel CC1 is configured as input:
CC1IF is set by hardware to inform application that the current value of the counter is captured in LPTIM_CCR1 register. The corresponding interrupt or DMA request is generated if enabled. The CC1OF flag is set if the CC1IF flag was already high.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ARRM</name>
              <description>Autoreload match
ARRM is set by hardware to inform application that LPTIM_CNT registers value reached the LPTIM_ARR registers value. ARRM flag can be cleared by writing 1 to the ARRMCF bit in the LPTIM_ICR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EXTTRIG</name>
              <description>External trigger edge event
EXTTRIG is set by hardware to inform application that a valid edge on the selected external trigger input has occurred. If the trigger is ignored because the timer has already started, then this flag is not set. EXTTRIG flag can be cleared by writing 1 to the EXTTRIGCF bit in the LPTIM_ICR register.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ARROK</name>
              <description>Autoreload register update OK
ARROK is set by hardware to inform application that the APB bus write operation to the LPTIM_ARR register has been successfully completed. ARROK flag can be cleared by writing 1 to the ARROKCF bit in the LPTIM_ICR register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>UP</name>
              <description>Counter direction change down to up
In Encoder mode, UP bit is set by hardware to inform application that the counter direction has changed from down to up. UP flag can be cleared by writing 1 to the UPCF bit in the LPTIM_ICR register.
Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DOWN</name>
              <description>Counter direction change up to down
In Encoder mode, DOWN bit is set by hardware to inform application that the counter direction has changed from up to down. DOWN flag can be cleared by writing 1 to the DOWNCF bit in the LPTIM_ICR register.
Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>UE</name>
              <description>LPTIM update event occurred
UE is set by hardware to inform application that an update event was generated. UE flag can be cleared by writing 1 to the UECF bit in the LPTIM_ICR register.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>REPOK</name>
              <description>Repetition register update OK
REPOK is set by hardware to inform application that the APB bus write operation to the LPTIM_RCR register has been successfully completed. REPOK flag can be cleared by writing 1 to the REPOKCF bit in the LPTIM_ICR register.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CC2IF</name>
              <description>Capture 2 interrupt flag
If channel CC2 is configured as input:
CC2IF is set by hardware to inform application that the current value of the counter is captured in LPTIM_CCR2 register. The corresponding interrupt or DMA request is generated if enabled. The CC2OF flag is set if the CC2IF flag was already high.
Note: If LPTIM does not implement at least 2 channels this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CC1OF</name>
              <description>Capture 1 over-capture flag
This flag is set by hardware only when the corresponding channel is configured in input capture mode. It is cleared by software by writing 1 to the CC1OCF bit in the LPTIM_ICR register.
Note: If LPTIM does not implement at least 1 channel this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CC2OF</name>
              <description>Capture 2 over-capture flag
This flag is set by hardware only when the corresponding channel is configured in input capture mode. It is cleared by software by writing 1 to the CC2OCF bit in the LPTIM_ICR register.
Note: If LPTIM does not implement at least 2 channels this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DIEROK</name>
              <description>Interrupt enable register update OK
DIEROK is set by hardware to inform application that the APB bus write operation to the LPTIM_DIER register has been successfully completed. DIEROK flag can be cleared by writing 1 to the DIEROKCF bit in the LPTIM_ICR register.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ICR_OUTPUT</name>
          <displayName>ICR_OUTPUT</displayName>
          <description>LPTIM1 interrupt clear register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CC1CF</name>
              <description>Capture/compare 1 clear flag
Writing 1 to this bit clears the CC1IF flag in the LPTIM_ISR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>ARRMCF</name>
              <description>Autoreload match clear flag
Writing 1 to this bit clears the ARRM flag in the LPTIM_ISR register</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EXTTRIGCF</name>
              <description>External trigger valid edge clear flag
Writing 1 to this bit clears the EXTTRIG flag in the LPTIM_ISR register</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CMP1OKCF</name>
              <description>Compare register 1 update OK clear flag
Writing 1 to this bit clears the CMP1OK flag in the LPTIM_ISR register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>ARROKCF</name>
              <description>Autoreload register update OK clear flag
Writing 1 to this bit clears the ARROK flag in the LPTIM_ISR register</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>UPCF</name>
              <description>Direction change to UP clear flag
Writing 1 to this bit clear the UP flag in the LPTIM_ISR register.
Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>DOWNCF</name>
              <description>Direction change to down clear flag
Writing 1 to this bit clear the DOWN flag in the LPTIM_ISR register.
Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>UECF</name>
              <description>Update event clear flag
Writing 1 to this bit clear the UE flag in the LPTIM_ISR register.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>REPOKCF</name>
              <description>Repetition register update OK clear flag
Writing 1 to this bit clears the REPOK flag in the LPTIM_ISR register.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CC2CF</name>
              <description>Capture/compare 2 clear flag
Writing 1 to this bit clears the CC2IF flag in the LPTIM_ISR register.
Note: If LPTIM does not implement at least 2 channels this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CMP2OKCF</name>
              <description>Compare register 2 update OK clear flag
Writing 1 to this bit clears the CMP2OK flag in the LPTIM_ISR register.
Note: If LPTIM does not implement at least 2 channels this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>DIEROKCF</name>
              <description>Interrupt enable register update OK clear flag
Writing 1 to this bit clears the DIEROK flag in the LPTIM_ISR register.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ICR_INPUT</name>
          <displayName>ICR_INPUT</displayName>
          <description>LPTIM1 interrupt clear register</description>
          <alternateRegister>ICR_OUTPUT</alternateRegister>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CC1CF</name>
              <description>Capture/compare 1 clear flag
Writing 1 to this bit clears the CC1IF flag in the LPTIM_ISR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>ARRMCF</name>
              <description>Autoreload match clear flag
Writing 1 to this bit clears the ARRM flag in the LPTIM_ISR register</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EXTTRIGCF</name>
              <description>External trigger valid edge clear flag
Writing 1 to this bit clears the EXTTRIG flag in the LPTIM_ISR register</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>ARROKCF</name>
              <description>Autoreload register update OK clear flag
Writing 1 to this bit clears the ARROK flag in the LPTIM_ISR register</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>UPCF</name>
              <description>Direction change to UP clear flag
Writing 1 to this bit clear the UP flag in the LPTIM_ISR register.
Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>DOWNCF</name>
              <description>Direction change to down clear flag
Writing 1 to this bit clear the DOWN flag in the LPTIM_ISR register.
Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>UECF</name>
              <description>Update event clear flag
Writing 1 to this bit clear the UE flag in the LPTIM_ISR register.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>REPOKCF</name>
              <description>Repetition register update OK clear flag
Writing 1 to this bit clears the REPOK flag in the LPTIM_ISR register.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CC2CF</name>
              <description>Capture/compare 2 clear flag
Writing 1 to this bit clears the CC2IF flag in the LPTIM_ISR register.
Note: If LPTIM does not implement at least 2 channels this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CC1OCF</name>
              <description>Capture/compare 1 over-capture clear flag
Writing 1 to this bit clears the CC1OF flag in the LPTIM_ISR register.
Note: If LPTIM does not implement at least 1 channel this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CC2OCF</name>
              <description>Capture/compare 2 over-capture clear flag
Writing 1 to this bit clears the CC2OF flag in the LPTIM_ISR register.
Note: If LPTIM does not implement at least 2 channels this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>DIEROKCF</name>
              <description>Interrupt enable register update OK clear flag
Writing 1 to this bit clears the DIEROK flag in the LPTIM_ISR register.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIER_OUTPUT</name>
          <displayName>DIER_OUTPUT</displayName>
          <description>LPTIM1 interrupt enable register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CC1IE</name>
              <description>Capture/compare 1 interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ARRMIE</name>
              <description>Autoreload match Interrupt Enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EXTTRIGIE</name>
              <description>External trigger valid edge Interrupt Enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CMP1OKIE</name>
              <description>Compare register 1 update OK interrupt enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ARROKIE</name>
              <description>Autoreload register update OK Interrupt Enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UPIE</name>
              <description>Direction change to UP Interrupt Enable
Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOWNIE</name>
              <description>Direction change to down Interrupt Enable
Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UEIE</name>
              <description>Update event interrupt enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>REPOKIE</name>
              <description>Repetition register update OK interrupt Enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CC2IE</name>
              <description>Capture/compare 2 interrupt enable
Note: If LPTIM does not implement at least 2 channels this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CMP2OKIE</name>
              <description>Compare register 2 update OK interrupt enable
Note: If LPTIM does not implement at least 2 channels this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UEDE</name>
              <description>Update event DMA request enable
Note: If LPTIM does not implement at least 1 channel this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIER_INPUT</name>
          <displayName>DIER_INPUT</displayName>
          <description>LPTIM1 interrupt enable register</description>
          <alternateRegister>DIER_OUTPUT</alternateRegister>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CC1IE</name>
              <description>Capture/compare 1 interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ARRMIE</name>
              <description>Autoreload match Interrupt Enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EXTTRIGIE</name>
              <description>External trigger valid edge Interrupt Enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ARROKIE</name>
              <description>Autoreload register update OK Interrupt Enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UPIE</name>
              <description>Direction change to UP Interrupt Enable
Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOWNIE</name>
              <description>Direction change to down Interrupt Enable
Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UEIE</name>
              <description>Update event interrupt enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>REPOKIE</name>
              <description>Repetition register update OK interrupt Enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CC2IE</name>
              <description>Capture/compare 2 interrupt enable
Note: If LPTIM does not implement at least 2 channels this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CC1OIE</name>
              <description>Capture/compare 1 over-capture interrupt enable
Note: If LPTIM does not implement at least 1 channel this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CC2OIE</name>
              <description>Capture/compare 2 over-capture interrupt enable
Note: If LPTIM does not implement at least 2 channels this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CC1DE</name>
              <description>Capture/compare 1 DMA request enable
Note: If LPTIM does not implement at least 1 channel this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UEDE</name>
              <description>Update event DMA request enable 
Note: If LPTIM does not implement at least 1 channel this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CC2DE</name>
              <description>Capture/compare 2 DMA request enable
Note: If LPTIM does not implement at least 2 channels this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="LPTIM1">
      <name>LPTIM2</name>
      <description>Low power timer</description>
      <groupName>LPTIM</groupName>
      <baseAddress>0x58002400</baseAddress>
      <interrupt>
        <name>LPTIM2</name>
        <description>LPTIM2 global interrupt</description>
        <value>120</value>
      </interrupt>
    </peripheral>
    <peripheral derivedFrom="LPTIM1">
      <name>LPTIM3</name>
      <description>Low power timer</description>
      <groupName>LPTIM</groupName>
      <baseAddress>0x58002800</baseAddress>
      <interrupt>
        <name>LPTIM3</name>
        <description>LPTIM3 global interrupt</description>
        <value>121</value>
      </interrupt>
    </peripheral>
    <peripheral>
      <name>LPTIM4</name>
      <description>Low power timer</description>
      <groupName>LPTIM</groupName>
      <baseAddress>0x58002C00</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0xC</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>LPTIM4</name>
        <description>LPTIM4 global interrupt</description>
        <value>122</value>
      </interrupt>
      <registers>
        <register>
          <name>ISR</name>
          <displayName>ISR</displayName>
          <description>LPTIM4 interrupt and status register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CC1IF</name>
              <description>Compare 1 interrupt flag
The CC1IF flag is set by hardware to inform application that LPTIM_CNT register value matches the compare register's value. The CC1IF flag can be cleared by writing 1 to the CC1CF bit in the LPTIM_ICR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ARRM</name>
              <description>Autoreload match
ARRM is set by hardware to inform application that LPTIM_CNT registers value reached the LPTIM_ARR registers value. ARRM flag can be cleared by writing 1 to the ARRMCF bit in the LPTIM_ICR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EXTTRIG</name>
              <description>External trigger edge event
EXTTRIG is set by hardware to inform application that a valid edge on the selected external trigger input has occurred. If the trigger is ignored because the timer has already started, then this flag is not set. EXTTRIG flag can be cleared by writing 1 to the EXTTRIGCF bit in the LPTIM_ICR register.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CMP1OK</name>
              <description>Compare register 1 update OK
CMP1OK is set by hardware to inform application that the APB bus write operation to the LPTIM_CCR1 register has been successfully completed. CMP1OK flag can be cleared by writing 1 to the CMP1OKCF bit in the LPTIM_ICR register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ARROK</name>
              <description>Autoreload register update OK
ARROK is set by hardware to inform application that the APB bus write operation to the LPTIM_ARR register has been successfully completed. ARROK flag can be cleared by writing 1 to the ARROKCF bit in the LPTIM_ICR register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>UP</name>
              <description>Counter direction change down to up
In Encoder mode, UP bit is set by hardware to inform application that the counter direction has changed from down to up. UP flag can be cleared by writing 1 to the UPCF bit in the LPTIM_ICR register.
Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Refer to Section 26.3: LPTIM implementation.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DOWN</name>
              <description>Counter direction change up to down
In Encoder mode, DOWN bit is set by hardware to inform application that the counter direction has changed from up to down. DOWN flag can be cleared by writing 1 to the DOWNCF bit in the LPTIM_ICR register.
Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Refer to Section 26.3: LPTIM implementation.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>UE</name>
              <description>LPTIM update event occurred
UE is set by hardware to inform application that an update event was generated. UE flag can be cleared by writing 1 to the UECF bit in the LPTIM_ICR register.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>REPOK</name>
              <description>Repetition register update OK
REPOK is set by hardware to inform application that the APB bus write operation to the LPTIM_RCR register has been successfully completed. REPOK flag can be cleared by writing 1 to the REPOKCF bit in the LPTIM_ICR register.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DIEROK</name>
              <description>Interrupt enable register update OK
DIEROK is set by hardware to inform application that the APB bus write operation to the LPTIM_DIER register has been successfully completed. DIEROK flag can be cleared by writing 1 to the DIEROKCF bit in the LPTIM_ICR register.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ICR</name>
          <displayName>ICR</displayName>
          <description>LPTIM4 interrupt clear register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CC1CF</name>
              <description>Capture/compare 1 clear flag
Writing 1 to this bit clears the CC1IF flag in the LPTIM_ISR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>ARRMCF</name>
              <description>Autoreload match clear flag
Writing 1 to this bit clears the ARRM flag in the LPTIM_ISR register</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EXTTRIGCF</name>
              <description>External trigger valid edge clear flag
Writing 1 to this bit clears the EXTTRIG flag in the LPTIM_ISR register</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CMP1OKCF</name>
              <description>Compare register 1 update OK clear flag
Writing 1 to this bit clears the CMP1OK flag in the LPTIM_ISR register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>ARROKCF</name>
              <description>Autoreload register update OK clear flag
Writing 1 to this bit clears the ARROK flag in the LPTIM_ISR register</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>UPCF</name>
              <description>Direction change to UP clear flag
Writing 1 to this bit clear the UP flag in the LPTIM_ISR register.
Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>DOWNCF</name>
              <description>Direction change to down clear flag
Writing 1 to this bit clear the DOWN flag in the LPTIM_ISR register.
Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>UECF</name>
              <description>Update event clear flag
Writing 1 to this bit clear the UE flag in the LPTIM_ISR register.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>REPOKCF</name>
              <description>Repetition register update OK clear flag
Writing 1 to this bit clears the REPOK flag in the LPTIM_ISR register.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>DIEROKCF</name>
              <description>Interrupt enable register update OK clear flag
Writing 1 to this bit clears the DIEROK flag in the LPTIM_ISR register.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIER</name>
          <displayName>DIER</displayName>
          <description>LPTIM4 interrupt enable register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CC1IE</name>
              <description>Capture/compare 1 interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ARRMIE</name>
              <description>Autoreload match Interrupt Enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EXTTRIGIE</name>
              <description>External trigger valid edge Interrupt Enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CMP1OKIE</name>
              <description>Compare register 1 update OK interrupt enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ARROKIE</name>
              <description>Autoreload register update OK Interrupt Enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UPIE</name>
              <description>Direction change to UP Interrupt Enable
Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOWNIE</name>
              <description>Direction change to down Interrupt Enable
Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Refer to Section 26.3.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UEIE</name>
              <description>Update event interrupt enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>REPOKIE</name>
              <description>Repetition register update OK interrupt Enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="LPTIM4">
      <name>LPTIM5</name>
      <description>Low power timer</description>
      <groupName>LPTIM</groupName>
      <baseAddress>0x58003000</baseAddress>
      <interrupt>
        <name>LPTIM5</name>
        <description>LPTIM5 global interrupt</description>
        <value>123</value>
      </interrupt>
    </peripheral>
    <peripheral>
      <name>LPUART1</name>
      <description>Low-power universal asynchronous receiver transmitter</description>
      <groupName>LPUART</groupName>
      <baseAddress>0x58000C00</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x30</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>LPUART1</name>
        <description>LPUART1 LPUART1 global interrupt</description>
        <value>131</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1_ENABLED</displayName>
          <description>LPUART control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>UE</name>
              <description>LPUART enable
When this bit is cleared, the LPUART prescalers and outputs are stopped immediately, and current operations are discarded. The configuration of the LPUART is kept, but all the status flags, in the LPUART_ISR are reset. This bit is set and cleared by software.
Note: To enter low-power mode without generating errors on the line, the TE bit must be reset before and the software must wait for the TC bit in the LPUART_ISR to be set before resetting the UE bit. 
Note: The DMA requests are also reset when UE = 0 so the DMA channel must be disabled before resetting the UE bit.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
            <field>
              <name>UESM</name>
              <description>LPUART enable in low-power mode 
When this bit is cleared, the LPUART cannot wake up the MCU from low-power mode.
When this bit is set, the LPUART can wake up the MCU from low-power mode.
This bit is set and cleared by software.
Note: It is recommended to set the UESM bit just before entering low-power mode, and clear it when exiting low-power mode.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>RE</name>
              <description>Receiver enable
This bit enables the receiver. It is set and cleared by software.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>TE</name>
              <description>Transmitter enable
This bit enables the transmitter. It is set and cleared by software.
Note: During transmission, a low pulse on the TE bit (0 followed by 1) sends a preamble (idle line) after the current word, except in Smartcard mode. In order to generate an idle character, the TE must not be immediately written to 1. To ensure the required duration, the software can poll the TEACK bit in the LPUART_ISR register.
Note: In Smartcard mode, when TE is set, there is a 1 bit-time delay before the transmission starts.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>IDLEIE</name>
              <description>IDLE interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>RXNEIE</name>
              <description>RXFIFO not empty interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>TCIE</name>
              <description>Transmission complete interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>TXEIE</name>
              <description>TXFIFO not full interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>PEIE</name>
              <description>PE interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>PS</name>
              <description>Parity selection
This bit selects the odd or even parity when the parity generation/detection is enabled (PCE bit set). It is set and cleared by software. The parity is selected after the current byte.
This bitfield can only be written when the LPUART is disabled (UE=0).</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>PCE</name>
              <description>Parity control enable
This bit selects the hardware parity control (generation and detection). When the parity control is enabled, the computed parity is inserted at the MSB position (9th bit if M=1; 8th bit if M=0) and parity is checked on the received data. This bit is set and cleared by software. Once it is set, PCE is active after the current byte (in reception and in transmission).
This bitfield can only be written when the LPUART is disabled (UE=0).</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>WAKE</name>
              <description>Receiver wakeup method
This bit determines the LPUART wakeup method from Mute mode. It is set or cleared by software.	
This bitfield can only be written when the LPUART is disabled (UE=0).</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>M0</name>
              <description>Word length
This bit is used in conjunction with bit 28 (M1) to determine the word length. It is set or cleared by software (refer to bit 28 (M1) description).
This bit can only be written when the LPUART is disabled (UE=0).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>MME</name>
              <description>Mute mode enable
This bit activates the Mute mode function of the LPUART. When set, the LPUART can switch between the active and Mute modes, as defined by the WAKE bit. It is set and cleared by software.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>CMIE</name>
              <description>Character match interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>DEDT</name>
              <description>Driver Enable deassertion time
This 5-bit value defines the time between the end of the last stop bit, in a transmitted message, and the de-activation of the DE (Driver Enable) signal.It is expressed in lpuart_ker_ck clock cycles. For more details, refer Section 79.4.14: RS232 Hardware flow control and RS485 Driver Enable.
If the LPUART_TDR register is written during the DEDT time, the new data is transmitted only when the DEDT and DEAT times have both elapsed.
This bitfield can only be written when the LPUART is disabled (UE=0).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DEAT</name>
              <description>Driver Enable assertion time
This 5-bit value defines the time between the activation of the DE (Driver Enable) signal and the beginning of the start bit. It is expressed in lpuart_ker_ck clock cycles. For more details, refer Section 78.5.21: RS232 Hardware flow control and RS485 Driver Enable.
This bitfield can only be written when the LPUART is disabled (UE=0).</description>
              <bitOffset>21</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>M1</name>
              <description>Word length
This bit must be used in conjunction with bit 12 (M0) to determine the word length. It is set or cleared by software.
M[1:0] = 00: 1 Start bit, 8 Data bits, n Stop bit
M[1:0] = 01: 1 Start bit, 9 Data bits, n Stop bit
M[1:0] = 10: 1 Start bit, 7 Data bits, n Stop bit
This bit can only be written when the LPUART is disabled (UE=0).
Note: In 7-bit data length mode, the Smartcard mode, LIN master mode and auto baud rate (0x7F and 0x55 frames detection) are not supported.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>FIFOEN</name>
              <description>FIFO mode enable
This bit is set and cleared by software.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>TXFEIE</name>
              <description>TXFIFO empty interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>RXFFIE</name>
              <description>RXFIFO Full interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>LPUART control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ADDM7</name>
              <description>7-bit Address Detection/4-bit Address Detection
This bit is for selection between 4-bit address detection or 7-bit address detection. 
This bit can only be written when the LPUART is disabled (UE=0)
Note: In 7-bit and 9-bit data modes, the address detection is done on 6-bit and 8-bit address (ADD[5:0] and ADD[7:0]) respectively.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>STOP</name>
              <description>STOP bits
These bits are used for programming the stop bits.
This bitfield can only be written when the LPUART is disabled (UE=0).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>SWAP</name>
              <description>Swap TX/RX pins
This bit is set and cleared by software.
This bitfield can only be written when the LPUART is disabled (UE=0).</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>RXINV</name>
              <description>RX pin active level inversion
This bit is set and cleared by software.
This enables the use of an external inverter on the RX line. 
This bitfield can only be written when the LPUART is disabled (UE=0).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>TXINV</name>
              <description>TX pin active level inversion
This bit is set and cleared by software.
This enables the use of an external inverter on the TX line. 
This bitfield can only be written when the LPUART is disabled (UE=0).</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>DATAINV</name>
              <description>Binary data inversion
This bit is set and cleared by software.
This bitfield can only be written when the LPUART is disabled (UE=0).</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>MSBFIRST</name>
              <description>Most significant bit first
This bit is set and cleared by software.
This bitfield can only be written when the LPUART is disabled (UE=0).</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>ADD</name>
              <description>Address of the LPUART node 
These bits give the address of the LPUART node in Mute mode or a character code to be recognized in low-power or Run mode:
In Mute mode: they are used in multiprocessor communication to wakeup from Mute mode with 4-bit/7-bit address mark detection. The MSB of the character sent by the transmitter should be equal to 1. In 4-bit address mark detection, only ADD[3:0] bits are used.
In low-power mode: they are used for wake up from low-power mode on character match.
When WUS[1:0] is programmed to 0b00 (WUF active on address match), the wakeup from low-power mode is performed when the received character corresponds to the character programmed through ADD[6:0] or ADD[3:0] bitfield (depending on ADDM7 bit), and WUF interrupt is enabled by setting WUFIE bit. The MSB of the character sent by transmitter should be equal to 1.
In Run mode with Mute mode inactive (for example, end-of-block detection in ModBus protocol): the whole received character (8 bits) is compared to ADD[7:0] value and CMF flag is set on match. An interrupt is generated if the CMIE bit is set.
These bits can only be written when the reception is disabled (RE = 0) or when the USART is disabled (UE = 0).</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>CR3</name>
          <displayName>CR3</displayName>
          <description>LPUART control register 3</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>EIE</name>
              <description>Error interrupt enable
Error Interrupt Enable Bit is required to enable interrupt generation in case of a framing error, overrun error or noise flag (FE=1 or ORE=1 or NE=1 in the LPUART_ISR register).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
            <field>
              <name>HDSEL</name>
              <description>Half-duplex selection
Selection of Single-wire Half-duplex mode 
This bit can only be written when the LPUART is disabled (UE=0).</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>DMAR</name>
              <description>DMA enable receiver
This bit is set/reset by software</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>DMAT</name>
              <description>DMA enable transmitter
This bit is set/reset by software</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>RTSE</name>
              <description>RTS enable
This bit can only be written when the LPUART is disabled (UE=0).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>CTSE</name>
              <description>CTS enable
This bit can only be written when the LPUART is disabled (UE=0)</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>CTSIE</name>
              <description>CTS interrupt enable</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>OVRDIS</name>
              <description>Overrun Disable
This bit is used to disable the receive overrun detection. 
the ORE flag is not set and the new received data overwrites the previous content of the LPUART_RDR register.
This bit can only be written when the LPUART is disabled (UE=0).
Note: This control bit enables checking the communication flow w/o reading the data.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>DDRE</name>
              <description>DMA Disable on Reception Error
This bit can only be written when the LPUART is disabled (UE=0).
Note: The reception errors are: parity error, framing error or noise error.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>DEM</name>
              <description>Driver enable mode 
This bit enables the user to activate the external transceiver control, through the DE signal. 
This bit can only be written when the LPUART is disabled (UE=0).</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>DEP</name>
              <description>Driver enable polarity selection
This bit can only be written when the LPUART is disabled (UE=0).</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>WUS</name>
              <description>Wakeup from low-power mode interrupt flag selection
This bitfield specifies the event which activates the WUF (Wakeup from low-power mode flag). 
This bitfield can only be written when the LPUART is disabled (UE=0).
Note: If the USART does not support the wakeup from Stop feature, this bit is reserved and must be kept at reset value. Refer to Section 79.3: LPUART implementation on page 4637.</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>WUFIE</name>
              <description>Wakeup from low-power mode interrupt enable
This bit is set and cleared by software.
Note: WUFIE must be set before entering in low-power mode.
Note: If the USART does not support the wakeup from Stop feature, this bit is reserved and must be kept at reset value. Refer to Section 79.3: LPUART implementation on page 4637.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>TXFTIE</name>
              <description>TXFIFO threshold interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>RXFTCFG</name>
              <description>Receive FIFO threshold configuration
Remaining combinations: Reserved.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <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>RXFTIE</name>
              <description>RXFIFO threshold interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>TXFTCFG</name>
              <description>TXFIFO threshold configuration
Remaining combinations: Reserved.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>BRR</name>
          <displayName>BRR</displayName>
          <description>LPUART baud rate register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BRR</name>
              <description>LPUART baud rate division (LPUARTDIV)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>20</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1048575</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RQR</name>
          <displayName>RQR</displayName>
          <description>LPUART request register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SBKRQ</name>
              <description>Send break request
Writing 1 to this bit sets the SBKF flag and request to send a BREAK on the line, as soon as the transmit machine is available.
Note: If the application needs to send the break character following all previously inserted data, including the ones not yet transmitted, the software should wait for the TXE flag assertion before setting the SBKRQ bit.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>MMRQ</name>
              <description>Mute mode request
Writing 1 to this bit puts the LPUART in Mute mode and resets the RWU flag.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>RXFRQ</name>
              <description>Receive data flush request
Writing 1 to this bit clears the RXNE flag. 
This enables discarding the received data without reading it, and avoid an overrun condition.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>TXFRQ</name>
              <description>Transmit data flush request
This bit is used when FIFO mode is enabled. TXFRQ bit is set to flush the whole FIFO. This sets the flag TXFE (TXFIFO empty, bit 23 in the LPUART_ISR register). 
Note: In FIFO mode, the TXFNF flag is reset during the flush request until TxFIFO is empty in order to ensure that no data are written in the data register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>
          </fields>
        </register>
        <register>
          <name>ISR</name>
          <displayName>ISR_ENABLED</displayName>
          <description>LPUART interrupt and status register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x008000C0</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PE</name>
              <description>Parity error
This bit is set by hardware when a parity error occurs in Reception mode. It is cleared by software, writing 1 to the PECF in the LPUART_ICR register. 
An interrupt is generated if PEIE = 1 in the LPUART_CR1 register.
Note: This error is associated with the character in the LPUART_RDR.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>
            <field>
              <name>FE</name>
              <description>Framing error
This bit is set by hardware when a de-synchronization, excessive noise or a break character is detected. It is cleared by software, writing 1 to the FECF bit in the LPUART_ICR register.
When transmitting data in Smartcard mode, this bit is set when the maximum number of transmit attempts is reached without success (the card NACKs the data frame).
An interrupt is generated if EIE = 1 in the LPUART_CR3 register.
Note: This error is associated with the character in the LPUART_RDR.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>NE</name>
              <description>Start bit noise detection flag
This bit is set by hardware when noise is detected on the start bit of a received frame. It is cleared by software, writing 1 to the NFCF bit in the LPUART_ICR register.
Note: This bit does not generate an interrupt as it appears at the same time as the RXFNE bit which itself generates an interrupt. An interrupt is generated when the NE flag is set during multi buffer communication if the EIE bit is set.
Note: This error is associated with the character in the LPUART_RDR.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>NE</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>ORE</name>
              <description>Overrun error
This bit is set by hardware when the data currently being received in the shift register is
ready to be transferred into the LPUART_RDR register while RXFF = 1. It is cleared by a software, writing 1 to the ORECF, in the LPUART_ICR register.
An interrupt is generated if RXFNEIE=1 in the LPUART_CR1 register, or EIE = 1 in the LPUART_CR3 register.
Note: When this bit is set, the LPUART_RDR register content is not lost but the shift register is overwritten. An interrupt is generated if the ORE flag is set during multi buffer communication if the EIE bit is set.
Note: This bit is permanently forced to 0 (no overrun detection) when the bit OVRDIS is set in the LPUART_CR3 register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>IDLE</name>
              <description>Idle line detected
This bit is set by hardware when an Idle line is detected. An interrupt is generated if IDLEIE=1 in the LPUART_CR1 register. It is cleared by software, writing 1 to the IDLECF in the LPUART_ICR register. 
Note: The IDLE bit is not set again until the RXFNE bit has been set (i.e. a new idle line occurs).
Note: If Mute mode is enabled (MME=1), IDLE is set if the LPUART is not mute (RWU=0), whatever the Mute mode selected by the WAKE bit. If RWU=1, IDLE is not set.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>RXFNE</name>
              <description>RXFIFO not empty
RXFNE bit is set by hardware when the RXFIFO is not empty, and so data can be read from the LPUART_RDR register. Every read of the LPUART_RDR frees a location in the RXFIFO. It is cleared when the RXFIFO is empty. 
The RXFNE flag can also be cleared by writing 1 to the RXFRQ in the LPUART_RQR register. 
An interrupt is generated if RXFNEIE=1 in the LPUART_CR1 register.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RXFNE</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>TC</name>
              <description>Transmission complete
This bit indicates that the last data written in the LPUART_TDR has been transmitted out of the shift register. The TC flag behaves as follows:
When TDN = 0, the TC flag is set when the transmission of a frame containing data is complete and when TXFE is set.
When TDN is equal to the number of data in the TXFIFO, the TC flag is set when TXFIFO is empty and TDN is reached.
When TDN is greater than the number of data in the TXFIFO, TC remains cleared until the TXFIFO is filled again to reach the programmed number of data to be transferred. 
When TDN is less than the number of data in the TXFIFO, TC is set when TDN is reached even if the TXFIFO is not empty.
An interrupt is generated if TCIE=1 in the LPUART_CR1 register.
TC bit is cleared by software by writing 1 to the TCCF in the LPUART_ICR register or by writing to the LPUART_TDR register.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>TXFNF</name>
              <description>TXFIFO not full
TXFNF is set by hardware when TXFIFO is not full, and so data can be written in the LPUART_TDR. Every write in the LPUART_TDR places the data in the TXFIFO. This flag remains set until the TXFIFO is full. When the TXFIFO is full, this flag is cleared indicating that data can not be written into the LPUART_TDR. 
The TXFNF is kept reset during the flush request until TXFIFO is empty. After sending the flush request (by setting TXFRQ bit), the flag TXFNF should be checked prior to writing in TXFIFO (TXFNF and TXFE are set at the same time).
An interrupt is generated if the TXFNFIE bit =1 in the LPUART_CR1 register. 
Note: This bit is used during single buffer transmission.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TXFNF</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>CTSIF</name>
              <description>CTS interrupt flag
This bit is set by hardware when the CTS input toggles, if the CTSE bit is set. It is cleared by software, by writing 1 to the CTSCF bit in the LPUART_ICR register. 
An interrupt is generated if CTSIE=1 in the LPUART_CR3 register.
Note: If the hardware flow control feature is not supported, this bit is reserved and kept at reset value.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>CTS</name>
              <description>CTS flag
This bit is set/reset by hardware. It is an inverted copy of the status of the CTS input pin. 
Note: If the hardware flow control feature is not supported, this bit is reserved and kept at reset value.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>BUSY</name>
              <description>Busy flag
This bit is set and reset by hardware. It is active when a communication is ongoing on the RX line (successful start bit detected). It is reset at the end of the reception (successful or not).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>CMF</name>
              <description>Character match flag
This bit is set by hardware, when a the character defined by ADD[7:0] is received. It is cleared by software, writing 1 to the CMCF in the LPUART_ICR register. 
An interrupt is generated if CMIE=1in the LPUART_CR1 register.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>SBKF</name>
              <description>Send break flag
This bit indicates that a send break character was requested. It is set by software, by writing 1 to the SBKRQ bit in the LPUART_CR3 register. It is automatically reset by hardware during the stop bit of break transmission.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>RWU</name>
              <description>Receiver wakeup from Mute mode
This bit indicates if the LPUART is in Mute mode. It is cleared/set by hardware when a wakeup/mute sequence is recognized. The Mute mode control sequence (address or IDLE) is selected by the WAKE bit in the LPUART_CR1 register.
When wakeup on IDLE mode is selected, this bit can only be set by software, writing 1 to the MMRQ bit in the LPUART_RQR register. 
Note: If the LPUART does not support the wakeup from Stop feature, this bit is reserved and kept at reset value.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>WUF</name>
              <description>Wakeup from low-power mode flag 
This bit is set by hardware, when a wakeup event is detected. The event is defined by the WUS bitfield. It is cleared by software, writing a 1 to the WUCF in the LPUART_ICR register.
An interrupt is generated if WUFIE=1 in the LPUART_CR3 register. 
Note: When UESM is cleared, WUF flag is also cleared.
Note: If the USART does not support the wakeup from Stop feature, this bit is reserved and kept at reset value. Refer to Section 79.3: LPUART implementation on page 4637.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TEACK</name>
              <description>Transmit enable acknowledge flag 
This bit is set/reset by hardware, when the Transmit Enable value is taken into account by the LPUART. 
It can be used when an idle frame request is generated by writing TE=0, followed by TE=1 in the LPUART_CR1 register, in order to respect the TE=0 minimum period.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>REACK</name>
              <description>Receive enable acknowledge flag 
This bit is set/reset by hardware, when the Receive Enable value is taken into account by the LPUART. 
It can be used to verify that the LPUART is ready for reception before entering low-power mode.
Note: If the LPUART does not support the wakeup from Stop feature, this bit is reserved and kept at reset value.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TXFE</name>
              <description>TXFIFO Empty
This bit is set by hardware when TXFIFO is Empty. When the TXFIFO contains at least one data, this flag is cleared. The TXFE flag can also be set by writing 1 to the bit TXFRQ (bit 4) in the LPUART_RQR register.
An interrupt is generated if the TXFEIE bit =1 (bit 30) in the LPUART_CR1 register.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>RXFF</name>
              <description>RXFIFO Full
This bit is set by hardware when the number of received data corresponds to RXFIFO size + 1 (RXFIFO full + 1 data in the LPUART_RDR register. 
An interrupt is generated if the RXFFIE bit =1 in the LPUART_CR1 register.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>RXFT</name>
              <description>RXFIFO threshold flag
This bit is set by hardware when the RXFIFO reaches the threshold programmed in RXFTCFG in LPUART_CR3 register i.e. the Receive FIFO contains RXFTCFG data. An interrupt is generated if the RXFTIE bit =1 (bit 27) in the LPUART_CR3 register.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>TXFT</name>
              <description>TXFIFO threshold flag
This bit is set by hardware when the TXFIFO reaches the threshold programmed in TXFTCFG in LPUART_CR3 register i.e. the TXFIFO contains TXFTCFG empty locations. An interrupt is generated if the TXFTIE bit =1 (bit 31) in the LPUART_CR3 register.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>
          </fields>
        </register>
        <register>
          <name>ICR</name>
          <displayName>ICR</displayName>
          <description>LPUART interrupt flag clear register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PECF</name>
              <description>Parity error clear flag
Writing 1 to this bit clears the PE flag in the LPUART_ISR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>
            <field>
              <name>FECF</name>
              <description>Framing error clear flag
Writing 1 to this bit clears the FE flag in the LPUART_ISR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>NECF</name>
              <description>Noise detected clear flag
Writing 1 to this bit clears the NE flag in the LPUART_ISR register.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>NECF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the NF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ORECF</name>
              <description>Overrun error clear flag
Writing 1 to this bit clears the ORE flag in the LPUART_ISR register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>IDLECF</name>
              <description>Idle line detected clear flag
Writing 1 to this bit clears the IDLE flag in the LPUART_ISR register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>TCCF</name>
              <description>Transmission complete clear flag
Writing 1 to this bit clears the TC flag in the LPUART_ISR register.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>CTSCF</name>
              <description>CTS clear flag
Writing 1 to this bit clears the CTSIF flag in the LPUART_ISR register.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>CMCF</name>
              <description>Character match clear flag
Writing 1 to this bit clears the CMF flag in the LPUART_ISR register.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>WUCF</name>
              <description>Wakeup from low-power mode clear flag 
Writing 1 to this bit clears the WUF flag in the USART_ISR register.
Note: If the USART does not support the wakeup from Stop feature, this bit is reserved and must be kept at reset value. Refer to Section 79.3: LPUART implementation on page 4637.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>
          </fields>
        </register>
        <register>
          <name>RDR</name>
          <displayName>RDR</displayName>
          <description>LPUART receive data register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RDR</name>
              <description>Receive data value
Contains the received data character.
The RDR register provides the parallel interface between the input shift register and the internal bus (see Figure 938).
When receiving with the parity enabled, the value read in the MSB bit is the received parity bit.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>9</bitWidth>
              <access>read-only</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>511</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>TDR</name>
          <displayName>TDR</displayName>
          <description>LPUART transmit data register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TDR</name>
              <description>Transmit data value
Contains the data character to be transmitted.
The TDR register provides the parallel interface between the internal bus and the output shift register (see Figure 938).
When transmitting with the parity enabled (PCE bit set to 1 in the LPUART_CR1 register), the value written in the MSB (bit 7 or bit 8 depending on the data length) has no effect because it is replaced by the parity.
Note: This register must be written only when TXE/TXFNF=1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>9</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>511</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>PRESC</name>
          <displayName>PRESC</displayName>
          <description>LPUART prescaler register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRESCALER</name>
              <description>Clock prescaler
The LPUART input clock can be divided by a prescaler:
Remaining combinations: Reserved.
Note: When PRESCALER is programmed with a value different of the allowed ones, programmed prescaler value is equal to 1011 i.e. input clock divided by 256.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <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>LTDC</name>
      <description>LTDC register block</description>
      <groupName>LTDC</groupName>
      <baseAddress>0x50001000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x148</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>LTDC</name>
        <description>LCD global interrupt</description>
        <value>96</value>
      </interrupt>
      <interrupt>
        <name>LTDC_ER</name>
        <description>LCD error interrupt</description>
        <value>97</value>
      </interrupt>
      <registers>
        <register>
          <name>SSCR</name>
          <displayName>SSCR</displayName>
          <description>LTDC synchronization size configuration register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>VSH</name>
              <description>vertical synchronization height (in units of horizontal scan line)
These bits define the vertical Synchronization height minus 1. It represents the number of horizontal synchronization lines.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>2047</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>HSW</name>
              <description>horizontal synchronization width (in units of pixel clock period)
These bits define the number of Horizontal Synchronization pixel minus 1.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>BPCR</name>
          <displayName>BPCR</displayName>
          <description>LTDC back porch configuration register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>AVBP</name>
              <description>accumulated Vertical back porch (in units of horizontal scan line)
These bits define the accumulated vertical back porch width that includes the vertical synchronization and vertical back porch lines minus 1.
The vertical back porch is the number of horizontal scan lines at a start of frame to the start of the first active scan line of the next frame.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>2047</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>AHBP</name>
              <description>accumulated horizontal back porch (in units of pixel clock period)
These bits define the accumulated horizontal back porch width that includes the horizontal synchronization and horizontal back porch pixels minus 1.
The horizontal back porch is the period between horizontal synchronization going inactive and the start of the active display part of the next scan line.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>AWCR</name>
          <displayName>AWCR</displayName>
          <description>LTDC active width configuration register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>AAH</name>
              <description>accumulated active height (in units of horizontal scan line)
These bits define the accumulated height which includes the vertical synchronization, vertical back porch and the active height lines minus 1. The active height is the number of active lines in the panel. 
Refer to device datasheet for maximum active height supported following maximum pixel clock.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>2047</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>AAW</name>
              <description>accumulated active width (in units of pixel clock period)
These bits define the accumulated active width which includes the horizontal synchronization, horizontal back porch and active pixels minus 1.
The active width is the number of pixels in active display area of the panel scan line. 
Refer to device datasheet for maximum active width supported following maximum pixel clock.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>TWCR</name>
          <displayName>TWCR</displayName>
          <description>LTDC total width configuration register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TOTALH</name>
              <description>total height (in units of horizontal scan line)
These bits defines the accumulated height which includes the vertical synchronization, vertical back porch, the active height and vertical front porch height lines minus 1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>2047</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>TOTALW</name>
              <description>total width (in units of pixel clock period)
These bits defines the accumulated total width which includes the horizontal synchronization, horizontal back porch, active width and horizontal front porch pixels minus 1.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>GCR</name>
          <displayName>GCR</displayName>
          <description>LTDC global control register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00002220</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LTDCEN</name>
              <description>LCD-TFT controller enable
This bit is set and cleared by software.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>LTDCEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>LCD-TFT controller disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>LCD-TFT controller enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DBW</name>
              <description>dither blue width
These bits return the dither blue bits.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DGW</name>
              <description>dither green width
These bits return the dither green bits.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DRW</name>
              <description>dither red width
These bits return the Dither Red Bits.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DEN</name>
              <description>dither enable
This bit is set and cleared by software.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>DEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Dither disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Dither enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PCPOL</name>
              <description>pixel clock polarity
This bit is set and cleared by software.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PCPOL</name>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>Pixel clock on rising edge</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>Pixel clock on falling edge</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DEPOL</name>
              <description>not data enable polarity
This bit is set and cleared by software.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>DEPOL</name>
                <enumeratedValue>
                  <name>ActiveLow</name>
                  <description>Data enable polarity is active low</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveHigh</name>
                  <description>Data enable polarity is active high</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>VSPOL</name>
              <description>vertical synchronization polarity
This bit is set and cleared by software.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>VSPOL</name>
                <enumeratedValue>
                  <name>ActiveLow</name>
                  <description>Vertical synchronization polarity is active low</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveHigh</name>
                  <description>Vertical synchronization polarity is active high</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HSPOL</name>
              <description>horizontal synchronization polarity
This bit is set and cleared by software.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>HSPOL</name>
                <enumeratedValue>
                  <name>ActiveLow</name>
                  <description>Horizontal synchronization polarity is active low</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveHigh</name>
                  <description>Horizontal synchronization polarity is active high</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SRCR</name>
          <displayName>SRCR</displayName>
          <description>LTDC shadow reload configuration register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IMR</name>
              <description>immediate reload
This bit is set by software and cleared only by hardware after reload.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>IMR</name>
                <enumeratedValue>
                  <name>NoEffect</name>
                  <description>This bit is set by software and cleared only by hardware after reload (it cannot be cleared through register write once it is set)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reload</name>
                  <description>The shadow registers are reloaded immediately. This bit is set by software and cleared only by hardware after reload</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>VBR</name>
              <description>vertical blanking reload
This bit is set by software and cleared only by hardware after reload (it cannot be cleared through register write once it is set).</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>VBR</name>
                <enumeratedValue>
                  <name>NoEffect</name>
                  <description>This bit is set by software and cleared only by hardware after reload (it cannot be cleared through register write once it is set)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reload</name>
                  <description>The shadow registers are reloaded during the vertical blanking period (at the beginning of the first line after the active display area).</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>BCCR</name>
          <displayName>BCCR</displayName>
          <description>LTDC background color configuration register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BCBLUE</name>
              <description>background color blue value
These bits configure the background blue value.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>BCGREEN</name>
              <description>background color green value
These bits configure the background green value.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>BCRED</name>
              <description>background color red value
These bits configure the background red value.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>IER</name>
          <displayName>IER</displayName>
          <description>LTDC interrupt enable register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LIE</name>
              <description>line interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>LIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Line interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Line interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FUIE</name>
              <description>FIFO underrun interrupt enable 
This bit is set and cleared by software.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>FUIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>FIFO underrun interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>FIFO underrun interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TERRIE</name>
              <description>transfer error interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>TERRIE</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>RRIE</name>
              <description>register reload interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RRIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Register reload interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Register reload interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ISR</name>
          <displayName>ISR</displayName>
          <description>LTDC interrupt status register</description>
          <addressOffset>0x38</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LIF</name>
              <description>line interrupt flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>LIF</name>
                <enumeratedValue>
                  <name>NotReached</name>
                  <description>Programmed line not reached</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reached</name>
                  <description>Line interrupt generated when a programmed line is reached</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FUIF</name>
              <description>FIFO underrun interrupt flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>FUIF</name>
                <enumeratedValue>
                  <name>NoUnderrun</name>
                  <description>No FIFO underrun</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Underrun</name>
                  <description>FIFO underrun interrupt generated, if one of the layer FIFOs is empty and pixel data is read from the FIFO</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TERRIF</name>
              <description>transfer error interrupt flag</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TERRIF</name>
                <enumeratedValue>
                  <name>NoError</name>
                  <description>No transfer error</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>Transfer error interrupt generated when a bus error occurs</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RRIF</name>
              <description>register reload interrupt flag</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RRIF</name>
                <enumeratedValue>
                  <name>NoReload</name>
                  <description>No register reload</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reload</name>
                  <description>Register reload interrupt generated when a vertical blanking reload occurs (and the first line after the active area is reached)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ICR</name>
          <displayName>ICR</displayName>
          <description>LTDC interrupt clear register</description>
          <addressOffset>0x3C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CLIF</name>
              <description>clears the line interrupt flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CLIFW</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the LIF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CFUIF</name>
              <description>clears the FIFO underrun interrupt flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CFUIFW</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the FUIF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CTERRIF</name>
              <description>clears the transfer error interrupt flag</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CTERRIFW</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the TERRIF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CRRIF</name>
              <description>clears register reload interrupt flag</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CRRIFW</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the RRIF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>LIPCR</name>
          <displayName>LIPCR</displayName>
          <description>LTDC line interrupt position configuration register</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LIPOS</name>
              <description>line interrupt position
These bits configure the line interrupt position.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>2047</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>CPSR</name>
          <displayName>CPSR</displayName>
          <description>LTDC current position status register</description>
          <addressOffset>0x44</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CYPOS</name>
              <description>current Y position 
These bits return the current Y position.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CXPOS</name>
              <description>current X position 
These bits return the current X position.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CDSR</name>
          <displayName>CDSR</displayName>
          <description>LTDC current display status register</description>
          <addressOffset>0x48</addressOffset>
          <size>0x20</size>
          <resetValue>0x0000000F</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>VDES</name>
              <description>vertical data enable display status</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>VDES</name>
                <enumeratedValue>
                  <name>NotActive</name>
                  <description>Currently not in vertical Data Enable phase</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Active</name>
                  <description>Currently in vertical Data Enable phase</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HDES</name>
              <description>horizontal data enable display status</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>HDES</name>
                <enumeratedValue>
                  <name>NotActive</name>
                  <description>Currently not in horizontal Data Enable phase</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Active</name>
                  <description>Currently in horizontal Data Enable phase</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>VSYNCS</name>
              <description>vertical synchronization display status</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>VSYNCS</name>
                <enumeratedValue>
                  <name>NotActive</name>
                  <description>Currently not in VSYNC phase</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Active</name>
                  <description>Currently in VSYNC phase</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HSYNCS</name>
              <description>horizontal synchronization display status</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>HSYNCS</name>
                <enumeratedValue>
                  <name>NotActive</name>
                  <description>Currently not in HSYNC phase</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Active</name>
                  <description>Currently in HSYNC phase</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <cluster>
          <dim>2</dim>
          <dimIncrement>0x80</dimIncrement>
          <dimIndex>1-2</dimIndex>
          <name>LAYER%s</name>
          <description>Cluster LAYER%s, containing L?CR, L?WHPCR, L?WVPCR, L?CKCR, L?PFCR, L?CACR, L?DCCR, L?BFCR, L?CFBAR, L?CFBLR, L?CFBLNR, L?CLUTWR</description>
          <addressOffset>0x84</addressOffset>
          <register>
            <name>CR</name>
            <displayName>L1CR</displayName>
            <description>LTDC layer 1 control register</description>
            <addressOffset>0x0</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>LEN</name>
                <description>layer enable
This bit is set and cleared by software.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
                <enumeratedValues>
                  <name>LEN</name>
                  <enumeratedValue>
                    <name>Disabled</name>
                    <description>Layer disabled</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Enabled</name>
                    <description>Layer enabled</description>
                    <value>1</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
              <field>
                <name>COLKEN</name>
                <description>color keying enable
This bit is set and cleared by software.</description>
                <bitOffset>1</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
                <enumeratedValues>
                  <name>COLKEN</name>
                  <enumeratedValue>
                    <name>Disabled</name>
                    <description>Color keying disabled</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Enabled</name>
                    <description>Color keying enabled</description>
                    <value>1</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
              <field>
                <name>CLUTEN</name>
                <description>color look-up table enable
This bit is set and cleared by software.
The CLUT is only meaningful for L8, AL44 and AL88 pixel format. Refer to Color look-up table (CLUT)</description>
                <bitOffset>4</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
                <enumeratedValues>
                  <name>CLUTEN</name>
                  <enumeratedValue>
                    <name>Disabled</name>
                    <description>Color look-up table disabled</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Enabled</name>
                    <description>Color look-up table enabled</description>
                    <value>1</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
            </fields>
          </register>
          <register>
            <name>WHPCR</name>
            <displayName>L1WHPCR</displayName>
            <description>LTDC layer 1 window horizontal position configuration register</description>
            <addressOffset>0x4</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>WHSTPOS</name>
                <description>window horizontal start position
These bits configure the first visible pixel of a line of the layer window.
WHSTPOS[11:0] must be UNDER OR EQUAL AAW[11:0] bits (programmed in LTDC_AWCR register).</description>
                <bitOffset>0</bitOffset>
                <bitWidth>12</bitWidth>
                <access>read-write</access>
                <writeConstraint>
                  <range>
                    <minimum>0</minimum>
                    <maximum>4095</maximum>
                  </range>
                </writeConstraint>
              </field>
              <field>
                <name>WHSPPOS</name>
                <description>window horizontal stop position
These bits configure the last visible pixel of a line of the layer window.
WHSPPOS[11:0] must be more or equal to AHBP[11:0] bits + 1 (programmed in LTDC_BPCR register).</description>
                <bitOffset>16</bitOffset>
                <bitWidth>12</bitWidth>
                <access>read-write</access>
                <writeConstraint>
                  <range>
                    <minimum>0</minimum>
                    <maximum>4095</maximum>
                  </range>
                </writeConstraint>
              </field>
            </fields>
          </register>
          <register>
            <name>WVPCR</name>
            <displayName>L1WVPCR</displayName>
            <description>LTDC layer 1 window vertical position configuration register</description>
            <addressOffset>0x8</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>WVSTPOS</name>
                <description>window vertical start position
These bits configure the first visible line of the layer window.
WVSTPOS[10:0] must be UNDER OR EQUAL AAH[10:0] bits (programmed in LTDC_AWCR register).</description>
                <bitOffset>0</bitOffset>
                <bitWidth>11</bitWidth>
                <access>read-write</access>
                <writeConstraint>
                  <range>
                    <minimum>0</minimum>
                    <maximum>2047</maximum>
                  </range>
                </writeConstraint>
              </field>
              <field>
                <name>WVSPPOS</name>
                <description>window vertical stop position
These bits configure the last visible line of the layer window. 
WVSPPOS[10:0] must be more or equal to AVBP[10:0] bits + 1 (programmed in LTDC_BPCR register).</description>
                <bitOffset>16</bitOffset>
                <bitWidth>11</bitWidth>
                <access>read-write</access>
                <writeConstraint>
                  <range>
                    <minimum>0</minimum>
                    <maximum>2047</maximum>
                  </range>
                </writeConstraint>
              </field>
            </fields>
          </register>
          <register>
            <name>CKCR</name>
            <displayName>L1CKCR</displayName>
            <description>LTDC layer 1 color keying configuration register</description>
            <addressOffset>0xC</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>CKBLUE</name>
                <description>color key blue value</description>
                <bitOffset>0</bitOffset>
                <bitWidth>8</bitWidth>
                <access>read-write</access>
                <writeConstraint>
                  <range>
                    <minimum>0</minimum>
                    <maximum>255</maximum>
                  </range>
                </writeConstraint>
              </field>
              <field>
                <name>CKGREEN</name>
                <description>color key green value</description>
                <bitOffset>8</bitOffset>
                <bitWidth>8</bitWidth>
                <access>read-write</access>
                <writeConstraint>
                  <range>
                    <minimum>0</minimum>
                    <maximum>255</maximum>
                  </range>
                </writeConstraint>
              </field>
              <field>
                <name>CKRED</name>
                <description>color key red value</description>
                <bitOffset>16</bitOffset>
                <bitWidth>8</bitWidth>
                <access>read-write</access>
                <writeConstraint>
                  <range>
                    <minimum>0</minimum>
                    <maximum>255</maximum>
                  </range>
                </writeConstraint>
              </field>
            </fields>
          </register>
          <register>
            <name>PFCR</name>
            <displayName>L1PFCR</displayName>
            <description>LTDC layer 1 pixel format configuration register</description>
            <addressOffset>0x10</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>PF</name>
                <description>pixel format 
These bits configure the pixel format</description>
                <bitOffset>0</bitOffset>
                <bitWidth>3</bitWidth>
                <access>read-write</access>
                <enumeratedValues>
                  <name>PF</name>
                  <enumeratedValue>
                    <name>ARGB8888</name>
                    <description>ARGB8888</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>RGB888</name>
                    <description>RGB888</description>
                    <value>1</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>RGB565</name>
                    <description>RGB565</description>
                    <value>2</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>ARGB1555</name>
                    <description>ARGB1555</description>
                    <value>3</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>ARGB4444</name>
                    <description>ARGB4444</description>
                    <value>4</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>L8</name>
                    <description>L8 (8-bit luminance)</description>
                    <value>5</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>AL44</name>
                    <description>AL44 (4-bit alpha, 4-bit luminance)</description>
                    <value>6</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>AL88</name>
                    <description>AL88 (8-bit alpha, 8-bit luminance)</description>
                    <value>7</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
            </fields>
          </register>
          <register>
            <name>CACR</name>
            <displayName>L1CACR</displayName>
            <description>LTDC layer 1 constant alpha configuration register</description>
            <addressOffset>0x14</addressOffset>
            <size>0x20</size>
            <resetValue>0x000000FF</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>CONSTA</name>
                <description>constant alpha
These bits configure the constant alpha used for blending. The constant alpha is divided by 255 by hardware.
Example: if the programmed constant alpha is 0xFF, the constant alpha value is 255 / 255 = 1.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>8</bitWidth>
                <access>read-write</access>
                <writeConstraint>
                  <range>
                    <minimum>0</minimum>
                    <maximum>255</maximum>
                  </range>
                </writeConstraint>
              </field>
            </fields>
          </register>
          <register>
            <name>DCCR</name>
            <displayName>L1DCCR</displayName>
            <description>LTDC layer 1 default color configuration register</description>
            <addressOffset>0x18</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>DCBLUE</name>
                <description>default color blue
These bits configure the default blue value.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>8</bitWidth>
                <access>read-write</access>
                <writeConstraint>
                  <range>
                    <minimum>0</minimum>
                    <maximum>255</maximum>
                  </range>
                </writeConstraint>
              </field>
              <field>
                <name>DCGREEN</name>
                <description>default color green
These bits configure the default green value.</description>
                <bitOffset>8</bitOffset>
                <bitWidth>8</bitWidth>
                <access>read-write</access>
                <writeConstraint>
                  <range>
                    <minimum>0</minimum>
                    <maximum>255</maximum>
                  </range>
                </writeConstraint>
              </field>
              <field>
                <name>DCRED</name>
                <description>default color red
These bits configure the default red value.</description>
                <bitOffset>16</bitOffset>
                <bitWidth>8</bitWidth>
                <access>read-write</access>
                <writeConstraint>
                  <range>
                    <minimum>0</minimum>
                    <maximum>255</maximum>
                  </range>
                </writeConstraint>
              </field>
              <field>
                <name>DCALPHA</name>
                <description>default color alpha
These bits configure the default alpha value.</description>
                <bitOffset>24</bitOffset>
                <bitWidth>8</bitWidth>
                <access>read-write</access>
                <writeConstraint>
                  <range>
                    <minimum>0</minimum>
                    <maximum>255</maximum>
                  </range>
                </writeConstraint>
              </field>
            </fields>
          </register>
          <register>
            <name>BFCR</name>
            <displayName>L1BFCR</displayName>
            <description>LTDC layer 1 blending factors configuration register</description>
            <addressOffset>0x1C</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000607</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>BF2</name>
                <description>blending factor 2 
These bits select the blending factor F2</description>
                <bitOffset>0</bitOffset>
                <bitWidth>3</bitWidth>
                <access>read-write</access>
                <enumeratedValues>
                  <name>BF2</name>
                  <enumeratedValue>
                    <name>Constant</name>
                    <description>BF2 = 1 - constant alpha</description>
                    <value>5</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Pixel</name>
                    <description>BF2 = 1 - pixel alpha * constant alpha</description>
                    <value>7</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
              <field>
                <name>BF1</name>
                <description>blending factor 1
These bits select the blending factor F1.</description>
                <bitOffset>8</bitOffset>
                <bitWidth>3</bitWidth>
                <access>read-write</access>
                <enumeratedValues>
                  <name>BF1</name>
                  <enumeratedValue>
                    <name>Constant</name>
                    <description>BF1 = constant alpha</description>
                    <value>4</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Pixel</name>
                    <description>BF1 = pixel alpha * constant alpha</description>
                    <value>6</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
            </fields>
          </register>
          <register>
            <name>CFBAR</name>
            <displayName>L1CFBAR</displayName>
            <description>LTDC layer 1 color frame buffer address register</description>
            <addressOffset>0x28</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>CFBADD</name>
                <description>color frame buffer start address
These bits define the color frame buffer start address.</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>CFBLR</name>
            <displayName>L1CFBLR</displayName>
            <description>LTDC layer 1 color frame buffer length register</description>
            <addressOffset>0x2C</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>CFBLL</name>
                <description>color frame buffer line length
These bits define the length of one line of pixels in bytes + 7.
The line length is computed as follows: 
active high width *  number of bytes per pixel + 7.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>13</bitWidth>
                <access>read-write</access>
                <writeConstraint>
                  <range>
                    <minimum>0</minimum>
                    <maximum>8191</maximum>
                  </range>
                </writeConstraint>
              </field>
              <field>
                <name>CFBP</name>
                <description>color frame buffer pitch in bytes
These bits define the pitch that is the increment from the start of one line of pixels to the start of the next line in bytes.</description>
                <bitOffset>16</bitOffset>
                <bitWidth>13</bitWidth>
                <access>read-write</access>
                <writeConstraint>
                  <range>
                    <minimum>0</minimum>
                    <maximum>8191</maximum>
                  </range>
                </writeConstraint>
              </field>
            </fields>
          </register>
          <register>
            <name>CFBLNR</name>
            <displayName>L1CFBLNR</displayName>
            <description>LTDC layer 1 color frame buffer line number register</description>
            <addressOffset>0x30</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>CFBLNBR</name>
                <description>frame buffer line number 
These bits define the number of lines in the frame buffer that corresponds to the active high width.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>11</bitWidth>
                <access>read-write</access>
                <writeConstraint>
                  <range>
                    <minimum>0</minimum>
                    <maximum>2047</maximum>
                  </range>
                </writeConstraint>
              </field>
            </fields>
          </register>
          <register>
            <name>CLUTWR</name>
            <displayName>L1CLUTWR</displayName>
            <description>LTDC layer 1 CLUT write register</description>
            <addressOffset>0x40</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>BLUE</name>
                <description>blue value
These bits configure the blue value.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>8</bitWidth>
                <access>write-only</access>
                <writeConstraint>
                  <range>
                    <minimum>0</minimum>
                    <maximum>255</maximum>
                  </range>
                </writeConstraint>
              </field>
              <field>
                <name>GREEN</name>
                <description>green value
These bits configure the green value.</description>
                <bitOffset>8</bitOffset>
                <bitWidth>8</bitWidth>
                <access>write-only</access>
                <writeConstraint>
                  <range>
                    <minimum>0</minimum>
                    <maximum>255</maximum>
                  </range>
                </writeConstraint>
              </field>
              <field>
                <name>RED</name>
                <description>red value
These bits configure the red value.</description>
                <bitOffset>16</bitOffset>
                <bitWidth>8</bitWidth>
                <access>write-only</access>
                <writeConstraint>
                  <range>
                    <minimum>0</minimum>
                    <maximum>255</maximum>
                  </range>
                </writeConstraint>
              </field>
              <field>
                <name>CLUTADD</name>
                <description>CLUT address
These bits configure the CLUT address (color position within the CLUT) of each RGB value.</description>
                <bitOffset>24</bitOffset>
                <bitWidth>8</bitWidth>
                <access>write-only</access>
                <writeConstraint>
                  <range>
                    <minimum>0</minimum>
                    <maximum>255</maximum>
                  </range>
                </writeConstraint>
              </field>
            </fields>
          </register>
        </cluster>
      </registers>
    </peripheral>
    <peripheral>
      <name>MCE1</name>
      <description>Memory cipher engine</description>
      <groupName>MCE</groupName>
      <baseAddress>0x5200B800</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>MCE1</name>
        <description>MCE1 global interrupt</description>
        <value>102</value>
      </interrupt>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>MCE configuration register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>GLOCK</name>
              <description>Global lock
Lock the configuration of most MCE registers until next reset. This bit is cleared by default and once set it cannot be reset until MCE reset.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MKLOCK</name>
              <description>Master keys lock
Lock the master key configurations until next reset. This bit is cleared by default and once set it cannot be reset until MCE reset.
Effect of this bit depends on the number of master keys. See Section 35.3: MCE implementation for details.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>MCE status register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MKVALID</name>
              <description>Master key valid</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>FMKVALID</name>
              <description>Fast master key valid
This bit is reserved when fast master key is not present in the MCE instance. See Section 35.3: MCE implementation for detail.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ENCDIS</name>
              <description>encryption disabled
This bit is set by hardware when the encryption feature is not functional.
When ENCDIS is set application must reset MCE peripheral to be able to use the encryption feature again.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IASR</name>
          <displayName>IASR</displayName>
          <description>MCE illegal access status register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CAEF</name>
              <description>Configuration access error flag
This bit is set when an illegal access to any MCE configuration register is detected. Bit is cleared by setting corresponding bit in MCE_IACR register. No additional details on the error is available.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>IAEF</name>
              <description>Illegal access error flag
This bit is set when an illegal access is detected on the system bus. More details on the error can be found in MCE_IAESR and MCE_IADDR registers.
This bit is cleared by setting corresponding bit in MCE_IACR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IACR</name>
          <displayName>IACR</displayName>
          <description>MCE illegal access clear register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CAEF</name>
              <description>Configuration access error flag clear
Set this bit to clear CAEF bit in MCE_IASR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>IAEF</name>
              <description>Illegal access error flag clear
Set this bit to clear IAEF bit in MCE_IASR register. Clearing IAEF bit permits to capture new error information in MCE_IAESR and MCE_IADDR registers.
Note that clearing this bit does not clear RISAB_IADDR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IAIER</name>
          <displayName>IAIER</displayName>
          <description>MCE illegal access interrupt enable register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CAEIE</name>
              <description>Configuration access error interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IAEIE</name>
              <description>Illegal access error interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PRIVCFGR</name>
          <displayName>PRIVCFGR</displayName>
          <description>MCE privileged configuration register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRIV</name>
              <description>Privileged configuration</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IAESR</name>
          <displayName>IAESR</displayName>
          <description>MCE illegal access error status register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IAPRIV</name>
              <description>Illegal access privilege
When IAEF bit is set in MCE_IASR register IAPRIV bit captures the privileged state of the master that issued the illegal access detected on the AXI system bus.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>IANRW</name>
              <description>Illegal access read/write
When IAEF bit is set in MCE_IASR register IANRW bit captures the access type of the illegal access detected.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IADDR</name>
          <displayName>IADDR</displayName>
          <description>MCE illegal address register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IADD</name>
              <description>Illegal address
When IAEF bit is set in MCE_IASR register IADD bitfield captures the 32-bit bus address of the erroneous access. Additional information can be found in MCE_IAESR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <cluster>
          <dim>4</dim>
          <dimIncrement>0x10</dimIncrement>
          <dimIndex>1-4</dimIndex>
          <name>REG%s</name>
          <description>Region cluster</description>
          <addressOffset>0x40</addressOffset>
          <register>
            <name>REGCR</name>
            <displayName>REGCR1</displayName>
            <description>Region configuration register</description>
            <addressOffset>0x0</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>BREN</name>
                <description>Base region enable
BREN cannot be set if BADDRSTART &gt; BADDREND.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>CTXID</name>
                <description>Context ID
This bitfield defines the cryptographic context used by the cipher engine assigned to this region. If ENC=00 bitfield CTXID is ignored. If BREN is set write to this bitfield is ignored.
If ENC=01 the key stored in MCE_CC1KEYR is used by the stream cipher. The nonce in MCE_CC1NRx registers and the version in MCE_CC1CR register are also used. 
If ENC=01 the key stored in MCE_CC2KEYR is used by the stream cipher. The nonce in MCE_CC2NRx registers and the version in MCE_CC2CR register are also used.</description>
                <bitOffset>9</bitOffset>
                <bitWidth>2</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>ENC</name>
                <description>Encrypted region
Those bits are taken into account only if BREN is set and if the corresponding encryption feature is available in the MCE instance (see Section 35.3: MCE implementation). Write to those bits is ignored if BREN is set.</description>
                <bitOffset>14</bitOffset>
                <bitWidth>2</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>PRIV</name>
                <description>Privileged region
This bit is taken into account only if BREN is set.</description>
                <bitOffset>16</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>SADDR</name>
            <displayName>SADDR1</displayName>
            <description>Region start address register</description>
            <addressOffset>0x4</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>BADDSTART</name>
                <description>Region address start
This bitfield defines the absolute start address of the region x on 4 kBytes boundary (inclusive).
BREN cannot be set if BADDRSTART &gt; BADDREND.
When MCE determines the region, the first 12 bits (LSB) and the last 4 bits (MSB) in this register are ignored, and when this register is accessed in read the 4 MSB bits and the 12 LSB bits return zeros (reference value in MCE).</description>
                <bitOffset>12</bitOffset>
                <bitWidth>20</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>EADDR</name>
            <displayName>EADDR1</displayName>
            <description>Region end address register</description>
            <addressOffset>0x8</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000FFF</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>BADDEND</name>
                <description>Region address end
This bitfield defines the absolute end address of the region x on 4 kBytes boundary (inclusive).
BREN cannot be set if BADDRSTART &gt; BADDREND.
When MCE determines the region, the first 12 bits (LSB) and the last 4 bits (MSB) in this register are ignored, and when this register is accessed in read the 4 MSB bits return zeros and the 12 LSB bits return ones (reference value in MCE).</description>
                <bitOffset>12</bitOffset>
                <bitWidth>20</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>ATTR</name>
            <displayName>ATTR1</displayName>
            <description>Region attribute register</description>
            <addressOffset>0xC</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>WREN</name>
                <description>Write enable
This bit is taken into account only if BREN is set.</description>
                <bitOffset>16</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
        </cluster>
        <register>
          <dim>4</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-3</dimIndex>
          <name>MKEYR%s</name>
          <displayName>MKEYR%s</displayName>
          <description>MCE master key %s</description>
          <addressOffset>0x200</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MKEY0</name>
              <description>Master key bit 0
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY1</name>
              <description>Master key bit 1
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY2</name>
              <description>Master key bit 2
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY3</name>
              <description>Master key bit 3
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY4</name>
              <description>Master key bit 4
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY5</name>
              <description>Master key bit 5
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY6</name>
              <description>Master key bit 6
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY7</name>
              <description>Master key bit 7
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY8</name>
              <description>Master key bit 8
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY9</name>
              <description>Master key bit 9
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY10</name>
              <description>Master key bit 10
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY11</name>
              <description>Master key bit 11
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY12</name>
              <description>Master key bit 12
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY13</name>
              <description>Master key bit 13
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY14</name>
              <description>Master key bit 14
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY15</name>
              <description>Master key bit 15
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY16</name>
              <description>Master key bit 16
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY17</name>
              <description>Master key bit 17
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY18</name>
              <description>Master key bit 18
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY19</name>
              <description>Master key bit 19
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY20</name>
              <description>Master key bit 20
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY21</name>
              <description>Master key bit 21
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY22</name>
              <description>Master key bit 22
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY23</name>
              <description>Master key bit 23
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY24</name>
              <description>Master key bit 24
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY25</name>
              <description>Master key bit 25
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY26</name>
              <description>Master key bit 26
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY27</name>
              <description>Master key bit 27
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY28</name>
              <description>Master key bit 28
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY29</name>
              <description>Master key bit 29
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY30</name>
              <description>Master key bit 30
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>MKEY31</name>
              <description>Master key bit 31
This key is used by the MCE block cipher in normal, SCA resistant mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <dim>4</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-3</dimIndex>
          <name>FMKEYR%s</name>
          <displayName>FMKEYR%s</displayName>
          <description>MCE fast master key %s</description>
          <addressOffset>0x220</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FMKEY0</name>
              <description>Fast master key bit 0
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY1</name>
              <description>Fast master key bit 1
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY2</name>
              <description>Fast master key bit 2
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY3</name>
              <description>Fast master key bit 3
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY4</name>
              <description>Fast master key bit 4
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY5</name>
              <description>Fast master key bit 5
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY6</name>
              <description>Fast master key bit 6
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY7</name>
              <description>Fast master key bit 7
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY8</name>
              <description>Fast master key bit 8
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY9</name>
              <description>Fast master key bit 9
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY10</name>
              <description>Fast master key bit 10
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY11</name>
              <description>Fast master key bit 11
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY12</name>
              <description>Fast master key bit 12
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY13</name>
              <description>Fast master key bit 13
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY14</name>
              <description>Fast master key bit 14
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY15</name>
              <description>Fast master key bit 15
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY16</name>
              <description>Fast master key bit 16
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY17</name>
              <description>Fast master key bit 17
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY18</name>
              <description>Fast master key bit 18
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY19</name>
              <description>Fast master key bit 19
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY20</name>
              <description>Fast master key bit 20
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY21</name>
              <description>Fast master key bit 21
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY22</name>
              <description>Fast master key bit 22
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY23</name>
              <description>Fast master key bit 23
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY24</name>
              <description>Fast master key bit 24
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY25</name>
              <description>Fast master key bit 25
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY26</name>
              <description>Fast master key bit 26
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY27</name>
              <description>Fast master key bit 27
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY28</name>
              <description>Fast master key bit 28
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY29</name>
              <description>Fast master key bit 29
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY30</name>
              <description>Fast master key bit 30
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>FMKEY31</name>
              <description>Fast master key bit 31
This key is used by the MCE block cipher in fast mode, if CTXID=0x0 in MCE_REGCR register.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <cluster>
          <dim>2</dim>
          <dimIncrement>0x30</dimIncrement>
          <dimIndex>1-2</dimIndex>
          <name>CC%s</name>
          <description>Cipher context cluster</description>
          <addressOffset>0x240</addressOffset>
          <register>
            <name>CCCFGR</name>
            <displayName>CC1CFGR</displayName>
            <description>MCE cipher context 1 configuration register</description>
            <addressOffset>0x0</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>CCEN</name>
                <description>Cipher context enable</description>
                <bitOffset>0</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>CCLOCK</name>
                <description>Cipher context lock
Note: This bit is set once. If this bit is set, it can only be cleared to 0 if MCE is reset. Setting this bit forces KEYLOCK bit to 1.</description>
                <bitOffset>1</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>KEYLOCK</name>
                <description>Key lock
Note: This bit is set once. If this bit is set, it can only be cleared to 0 if MCE is reset.</description>
                <bitOffset>2</bitOffset>
                <bitWidth>1</bitWidth>
                <access>read-write</access>
              </field>
              <field>
                <name>KEYCRC</name>
                <description>Key CRC
When KEYLOCK=0, KEYCRC information is automatically computed by hardware while loading the key of this region in this exact sequence: KEYR0 then KEYR1 then KEYR2 then finally KEYR3 (all written once). A new KEYCRC computation starts as soon as a new valid sequence is initiated. KEYCRC bitfield reads as zero until a valid sequence is completed (after it return the computed CRC value).
When GLOCK=1, KEYCRC bitfield always return the computed CRC value until the next reset.
CRC computation is an 8-bit checksum using the standard CRC-8-CCITT algorithm X8 + X2 + X + 1 (according the convention).
Note: CRC information is updated, and the key is usable by MCE, only after the last bit of the key has been written.
When GLOCK=0 any write to MCE_CCxKEYR registers clears KEYCRC in MCE_CCxCFGR, and makes the cipher context key un-usable (bypass mode is selected instead). To be able to use the key again application must perform this sequence: write to KEYR0 then KEYR1 then KEYR2 then finally KEYR3 (all written once). As KEYLOCK=1 all those writes are ignored, so the correct key is used instead.</description>
                <bitOffset>8</bitOffset>
                <bitWidth>8</bitWidth>
                <access>read-only</access>
              </field>
              <field>
                <name>VERSION</name>
                <description>Version
This 16-bit bitfield must be correctly initialized before CCEN bit is set. Bitfield usage is defined in Section 35.4.6: MCE stream cipher encryption mode.</description>
                <bitOffset>16</bitOffset>
                <bitWidth>16</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>CCNR0</name>
            <displayName>CC1NR0</displayName>
            <description>MCE cipher context 1 nonce register 0</description>
            <addressOffset>0x4</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>SCNONCE</name>
                <description>Stream cipher nonce, bits [31:0]
This register is used by stream cipher to compute keystream. It must be correctly initialize before CCEN bit is set in MCE_CCzCFGR register. Bitfield usage is defined in Section 35.4.6: MCE stream cipher encryption mode.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>32</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>CCNR1</name>
            <displayName>CC1NR1</displayName>
            <description>MCE cipher context 1 nonce register 1</description>
            <addressOffset>0x8</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>SCNONCE</name>
                <description>Stream cipher nonce, bits [63:32]
Refer to the MCE_CCzNR0 register for description of the SCNONCE[63:0] bitfield.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>32</bitWidth>
                <access>read-write</access>
              </field>
            </fields>
          </register>
          <register>
            <name>CCKEYR0</name>
            <displayName>CC1KEYR0</displayName>
            <description>MCE cipher context 1 key register 0</description>
            <addressOffset>0xC</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>KEY</name>
                <description>cipher key, bits [31:0]
This register is used by the block or stream cipher of MCE when CTXID = z in encrypted region configuration register. KEY[127:0] must be correctly initialize before CCEN bit is set in MCE_CCzCFGR register.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>32</bitWidth>
                <access>write-only</access>
              </field>
            </fields>
          </register>
          <register>
            <name>CCKEYR1</name>
            <displayName>CC1KEYR1</displayName>
            <description>MCE cipher context 1 key register 1</description>
            <addressOffset>0x10</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>KEY</name>
                <description>cipher key, bits [63:32]
Refer to the MCE_CCzKEYR0 register for description of the KEY[127:0] bitfield.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>32</bitWidth>
                <access>write-only</access>
              </field>
            </fields>
          </register>
          <register>
            <name>CCKEYR2</name>
            <displayName>CC1KEYR2</displayName>
            <description>MCE cipher context 1 key register 2</description>
            <addressOffset>0x14</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>KEY</name>
                <description>cipher key, bits [95:64]
Refer to the MCE_CCzKEYR0 register for description of the KEY[127:0] bitfield.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>32</bitWidth>
                <access>write-only</access>
              </field>
            </fields>
          </register>
          <register>
            <name>CCKEYR3</name>
            <displayName>CC1KEYR3</displayName>
            <description>MCE cipher context 1 key register 3</description>
            <addressOffset>0x18</addressOffset>
            <size>0x20</size>
            <resetValue>0x00000000</resetValue>
            <resetMask>0xFFFFFFFF</resetMask>
            <fields>
              <field>
                <name>KEY</name>
                <description>cipher key, bits [127:96]
Refer to the MCE_CCzKEYR0 register for description of the KEY[127:0] bitfield.</description>
                <bitOffset>0</bitOffset>
                <bitWidth>32</bitWidth>
                <access>write-only</access>
              </field>
            </fields>
          </register>
        </cluster>
      </registers>
    </peripheral>
    <peripheral derivedFrom="MCE1">
      <name>MCE2</name>
      <baseAddress>0x5200BC00</baseAddress>
      <interrupt>
        <name>MCE2</name>
        <description>MCE2 global interrupt</description>
        <value>103</value>
      </interrupt>
    </peripheral>
    <peripheral derivedFrom="MCE1">
      <name>MCE3</name>
      <baseAddress>0x5200C000</baseAddress>
      <interrupt>
        <name>MCE3</name>
        <description>MCE3 global interrupt</description>
        <value>104</value>
      </interrupt>
    </peripheral>
    <peripheral>
      <name>MDIOS</name>
      <description>Management data input/output</description>
      <groupName>MDIOS</groupName>
      <baseAddress>0x40009400</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>MDIOS</name>
        <description>MDIOS global interrupt</description>
        <value>125</value>
      </interrupt>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>MDIOS configuration register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>EN</name>
              <description>peripheral enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WRIE</name>
              <description>register write interrupt enable
Note: When this bit is set, an interrupt is generated if any of the read flags (WRF[31:0] in the MDIOS_WRFR register) is set.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RDIE</name>
              <description>register read interrupt enable
Note: When this bit is set, an interrupt is generated if any of the read flags (RDF[31:0] in the MDIOS_RDFR register) is set.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EIE</name>
              <description>error interrupt enable
Note: When this bit is set, an interrupt is generated if any of the error flags (PERF, SERF, or TERF in the MDIOS_SR register) is set.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPC</name>
              <description>disable preamble check
Note: When this bit is set, the application must be sure that no frame is currently in progress when the MDIOS is enabled. Otherwise, the MDIOS can become desynchronized with the master.
Note: This bit cannot be changed unless EN = 0 (though it can be changed at the same time that EN is being set).</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PORT_ADDRESS</name>
              <description>slave address
Can be written only when the peripheral is disabled (EN = 0).
If the address given by the MDIO master matches PORT_ADRESS[4:0], then the MDIOS
services the frame. Otherwise the frame is ignored.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>WRFR</name>
          <displayName>WRFR</displayName>
          <description>MDIOS write flag register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>WRF</name>
              <description>write flags for MDIOS registers 0 to 31.
Each bit is set by hardware when the MDIO master performs a write to the corresponding MDIOS register. An interrupt is generated if WRIE (in MDIOS_CR) is set.
Each bit is cleared by software by writing 1 to the corresponding CWRF bit in the MDIOS_CWRFR register.
For WRFx:</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CWRFR</name>
          <displayName>CWRFR</displayName>
          <description>MDIOS clear write flag register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CWRF</name>
              <description>clear the write flag
Writing 1 to CWRFx clears the WRFx bit in the MDIOS_WRF register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RDFR</name>
          <displayName>RDFR</displayName>
          <description>MDIOS read flag register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RDF</name>
              <description>read flags for MDIOS registers 0 to 31.
Each bit is set by hardware when the MDIO master performs a read from the corresponding MDIOS register. An interrupt is generated if RDIE (in MDIOS_CR) is set.
Each bit is cleared by software by writing 1 to the corresponding CRDF bit in the MDIOS_CRDFR register.
For RDFx:</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CRDFR</name>
          <displayName>CRDFR</displayName>
          <description>MDIOS clear read flag register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CRDF</name>
              <description>clear the read flag
Writing 1 to CRDFx clears the RDFx bit in the MDIOS_RDF register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>MDIOS status register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PERF</name>
              <description>preamble error flag
Note: Writing 1 to CPERF (MDIOS_CLRFR) clears this bit.
Note: This bit is not set if DPC (disable preamble check, MDIOS_CR[7]) is set.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SERF</name>
              <description>start error flag
Note: Writing 1 to CSERF (MDIOS_CLRFR) clears this bit.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TERF</name>
              <description>turnaround error flag
Note: Writing 1 to CTERF (MDIOS_CLRFR) clears this bit.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CLRFR</name>
          <displayName>CLRFR</displayName>
          <description>MDIOS clear flag register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CPERF</name>
              <description>clear the preamble error flag
Writing 1 to this bit clears the PERF flag (in MDIOS_SR).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CSERF</name>
              <description>clear the start error flag
Writing 1 to this bit clears the SERF flag (in MDIOS_SR).
When DPC = 1 (MDIOS_CR[7]), the SERF flag must be cleared only when there is not a frame already in progress.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CTERF</name>
              <description>clear the turnaround error flag
Writing 1 to this bit clears the TERF flag (in MDIOS_SR).
When DPC = 1 (MDIOS_CR[7]), the TERF flag must be cleared only when there is not a frame already in progress.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR0</name>
          <displayName>DINR0</displayName>
          <description>MDIOS input data register 0</description>
          <addressOffset>0x100</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR1</name>
          <displayName>DINR1</displayName>
          <description>MDIOS input data register 1</description>
          <addressOffset>0x104</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR2</name>
          <displayName>DINR2</displayName>
          <description>MDIOS input data register 2</description>
          <addressOffset>0x108</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR3</name>
          <displayName>DINR3</displayName>
          <description>MDIOS input data register 3</description>
          <addressOffset>0x10C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR4</name>
          <displayName>DINR4</displayName>
          <description>MDIOS input data register 4</description>
          <addressOffset>0x110</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR5</name>
          <displayName>DINR5</displayName>
          <description>MDIOS input data register 5</description>
          <addressOffset>0x114</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR6</name>
          <displayName>DINR6</displayName>
          <description>MDIOS input data register 6</description>
          <addressOffset>0x118</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR7</name>
          <displayName>DINR7</displayName>
          <description>MDIOS input data register 7</description>
          <addressOffset>0x11C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR8</name>
          <displayName>DINR8</displayName>
          <description>MDIOS input data register 8</description>
          <addressOffset>0x120</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR9</name>
          <displayName>DINR9</displayName>
          <description>MDIOS input data register 9</description>
          <addressOffset>0x124</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR10</name>
          <displayName>DINR10</displayName>
          <description>MDIOS input data register 10</description>
          <addressOffset>0x128</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR11</name>
          <displayName>DINR11</displayName>
          <description>MDIOS input data register 11</description>
          <addressOffset>0x12C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR12</name>
          <displayName>DINR12</displayName>
          <description>MDIOS input data register 12</description>
          <addressOffset>0x130</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR13</name>
          <displayName>DINR13</displayName>
          <description>MDIOS input data register 13</description>
          <addressOffset>0x134</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR14</name>
          <displayName>DINR14</displayName>
          <description>MDIOS input data register 14</description>
          <addressOffset>0x138</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR15</name>
          <displayName>DINR15</displayName>
          <description>MDIOS input data register 15</description>
          <addressOffset>0x13C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR16</name>
          <displayName>DINR16</displayName>
          <description>MDIOS input data register 16</description>
          <addressOffset>0x140</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR17</name>
          <displayName>DINR17</displayName>
          <description>MDIOS input data register 17</description>
          <addressOffset>0x144</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR18</name>
          <displayName>DINR18</displayName>
          <description>MDIOS input data register 18</description>
          <addressOffset>0x148</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR19</name>
          <displayName>DINR19</displayName>
          <description>MDIOS input data register 19</description>
          <addressOffset>0x14C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR20</name>
          <displayName>DINR20</displayName>
          <description>MDIOS input data register 20</description>
          <addressOffset>0x150</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR21</name>
          <displayName>DINR21</displayName>
          <description>MDIOS input data register 21</description>
          <addressOffset>0x154</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR22</name>
          <displayName>DINR22</displayName>
          <description>MDIOS input data register 22</description>
          <addressOffset>0x158</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR23</name>
          <displayName>DINR23</displayName>
          <description>MDIOS input data register 23</description>
          <addressOffset>0x15C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR24</name>
          <displayName>DINR24</displayName>
          <description>MDIOS input data register 24</description>
          <addressOffset>0x160</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR25</name>
          <displayName>DINR25</displayName>
          <description>MDIOS input data register 25</description>
          <addressOffset>0x164</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR26</name>
          <displayName>DINR26</displayName>
          <description>MDIOS input data register 26</description>
          <addressOffset>0x168</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR27</name>
          <displayName>DINR27</displayName>
          <description>MDIOS input data register 27</description>
          <addressOffset>0x16C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR28</name>
          <displayName>DINR28</displayName>
          <description>MDIOS input data register 28</description>
          <addressOffset>0x170</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR29</name>
          <displayName>DINR29</displayName>
          <description>MDIOS input data register 29</description>
          <addressOffset>0x174</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR30</name>
          <displayName>DINR30</displayName>
          <description>MDIOS input data register 30</description>
          <addressOffset>0x178</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR31</name>
          <displayName>DINR31</displayName>
          <description>MDIOS input data register 31</description>
          <addressOffset>0x17C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>input data received from MDIO master during write frames
This field is written by hardware with the 16-bit data received in a write frame which is addressed to MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR0</name>
          <displayName>DOUTR0</displayName>
          <description>MDIOS output data register 0</description>
          <addressOffset>0x180</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR1</name>
          <displayName>DOUTR1</displayName>
          <description>MDIOS output data register 1</description>
          <addressOffset>0x184</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR2</name>
          <displayName>DOUTR2</displayName>
          <description>MDIOS output data register 2</description>
          <addressOffset>0x188</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR3</name>
          <displayName>DOUTR3</displayName>
          <description>MDIOS output data register 3</description>
          <addressOffset>0x18C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR4</name>
          <displayName>DOUTR4</displayName>
          <description>MDIOS output data register 4</description>
          <addressOffset>0x190</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR5</name>
          <displayName>DOUTR5</displayName>
          <description>MDIOS output data register 5</description>
          <addressOffset>0x194</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR6</name>
          <displayName>DOUTR6</displayName>
          <description>MDIOS output data register 6</description>
          <addressOffset>0x198</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR7</name>
          <displayName>DOUTR7</displayName>
          <description>MDIOS output data register 7</description>
          <addressOffset>0x19C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR8</name>
          <displayName>DOUTR8</displayName>
          <description>MDIOS output data register 8</description>
          <addressOffset>0x1A0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR9</name>
          <displayName>DOUTR9</displayName>
          <description>MDIOS output data register 9</description>
          <addressOffset>0x1A4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR10</name>
          <displayName>DOUTR10</displayName>
          <description>MDIOS output data register 10</description>
          <addressOffset>0x1A8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR11</name>
          <displayName>DOUTR11</displayName>
          <description>MDIOS output data register 11</description>
          <addressOffset>0x1AC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR12</name>
          <displayName>DOUTR12</displayName>
          <description>MDIOS output data register 12</description>
          <addressOffset>0x1B0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR13</name>
          <displayName>DOUTR13</displayName>
          <description>MDIOS output data register 13</description>
          <addressOffset>0x1B4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR14</name>
          <displayName>DOUTR14</displayName>
          <description>MDIOS output data register 14</description>
          <addressOffset>0x1B8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR15</name>
          <displayName>DOUTR15</displayName>
          <description>MDIOS output data register 15</description>
          <addressOffset>0x1BC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR16</name>
          <displayName>DOUTR16</displayName>
          <description>MDIOS output data register 16</description>
          <addressOffset>0x1C0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR17</name>
          <displayName>DOUTR17</displayName>
          <description>MDIOS output data register 17</description>
          <addressOffset>0x1C4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR18</name>
          <displayName>DOUTR18</displayName>
          <description>MDIOS output data register 18</description>
          <addressOffset>0x1C8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR19</name>
          <displayName>DOUTR19</displayName>
          <description>MDIOS output data register 19</description>
          <addressOffset>0x1CC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR20</name>
          <displayName>DOUTR20</displayName>
          <description>MDIOS output data register 20</description>
          <addressOffset>0x1D0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR21</name>
          <displayName>DOUTR21</displayName>
          <description>MDIOS output data register 21</description>
          <addressOffset>0x1D4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR22</name>
          <displayName>DOUTR22</displayName>
          <description>MDIOS output data register 22</description>
          <addressOffset>0x1D8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR23</name>
          <displayName>DOUTR23</displayName>
          <description>MDIOS output data register 23</description>
          <addressOffset>0x1DC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR24</name>
          <displayName>DOUTR24</displayName>
          <description>MDIOS output data register 24</description>
          <addressOffset>0x1E0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR25</name>
          <displayName>DOUTR25</displayName>
          <description>MDIOS output data register 25</description>
          <addressOffset>0x1E4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR26</name>
          <displayName>DOUTR26</displayName>
          <description>MDIOS output data register 26</description>
          <addressOffset>0x1E8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR27</name>
          <displayName>DOUTR27</displayName>
          <description>MDIOS output data register 27</description>
          <addressOffset>0x1EC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR28</name>
          <displayName>DOUTR28</displayName>
          <description>MDIOS output data register 28</description>
          <addressOffset>0x1F0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR29</name>
          <displayName>DOUTR29</displayName>
          <description>MDIOS output data register 29</description>
          <addressOffset>0x1F4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR30</name>
          <displayName>DOUTR30</displayName>
          <description>MDIOS output data register 30</description>
          <addressOffset>0x1F8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR31</name>
          <displayName>DOUTR31</displayName>
          <description>MDIOS output data register 31</description>
          <addressOffset>0x1FC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>output data sent to MDIO Master during read frames
This field is written by software. These 16 bits are serially output on the MDIO bus during read frames which address the MDIOS register x.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>OTG_HS</name>
      <description>OTG register block</description>
      <groupName>OTG</groupName>
      <baseAddress>0x40040000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0xE08</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>OTG_HS</name>
        <description>USB OTG HS global interrupt</description>
        <value>91</value>
      </interrupt>
      <registers>
        <register>
          <name>GOTGCTL</name>
          <displayName>GOTGCTL</displayName>
          <description>OTG control and status register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00010000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>VBVALOEN</name>
              <description>V&lt;sub&gt;BUS&lt;/sub&gt; valid override enable.
This bit is used to enable/disable the software to override the vbusvalid signal using the VBVALOVAL bit.
Note: Only accessible in host mode.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VBVALOVAL</name>
              <description>V&lt;sub&gt;BUS&lt;/sub&gt; valid override value.
This bit is used to set override value for vbusvalid signal when VBVALOEN bit is set.
Note: Only accessible in host mode.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AVALOEN</name>
              <description>A-peripheral session valid override enable.
This bit is used to enable/disable the software to override the Avalid signal using the AVALOVAL bit.
Note: Only accessible in host mode.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AVALOVAL</name>
              <description>A-peripheral session valid override value.
This bit is used to set override value for Avalid signal when AVALOEN bit is set.
Note: Only accessible in host mode.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BVALOEN</name>
              <description>B-peripheral session valid override enable.
This bit is used to enable/disable the software to override the Bvalid signal using the BVALOVAL bit.
1	Internally Bvalid received from the PHY is overridden with BVALOVAL bit value
Note: Only accessible in device mode.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BVALOVAL</name>
              <description>B-peripheral session valid override value.
This bit is used to set override value for Bvalid signal when BVALOEN bit is set.
Note: Only accessible in device mode.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EHEN</name>
              <description>Embedded host enable
It is used to select between OTG A device state machine and embedded host state machine.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CIDSTS</name>
              <description>Connector ID status
Indicates the connector ID status on a connect event.
Note: Accessible in both device and host modes.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DBCT</name>
              <description>Long/short debounce time
Indicates the debounce time of a detected connection.
Note: Only accessible in host mode.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ASVLD</name>
              <description>A-session valid
Indicates the host mode transceiver status.
Note: Only accessible in host mode.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>BSVLD</name>
              <description>B-session valid
Indicates the device mode transceiver status.
In OTG mode, the user can use this bit to determine if the device is connected or disconnected.
Note: Only accessible in device mode.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OTGVER</name>
              <description>OTG version
Selects the OTG revision.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CURMOD</name>
              <description>Current mode of operation
Indicates the current mode (host or device).</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>GOTGINT</name>
          <displayName>GOTGINT</displayName>
          <description>OTG interrupt register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SEDET</name>
              <description>Session end detected
The core sets this bit to indicate that the level of the voltage on V&lt;sub&gt;BUS&lt;/sub&gt; is no longer valid for a B-Peripheral session when V&lt;sub&gt;BUS&lt;/sub&gt; &lt; 0.8 V.
Note: Accessible in both device and host modes.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADTOCHG</name>
              <description>A-device timeout change
The core sets this bit to indicate that the A-device has timed out while waiting for the B-device to connect.
Note: Accessible in both device and host modes.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>GAHBCFG</name>
          <displayName>GAHBCFG</displayName>
          <description>OTG AHB configuration register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>GINTMSK</name>
              <description>Global interrupt mask
The application uses this bit to mask or unmask the interrupt line assertion to itself. Irrespective of this bits setting, the interrupt status registers are updated by the core.
Note: Accessible in both device and host modes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HBSTLEN</name>
              <description>Burst length/type 
0000 Single: Bus transactions use single 32 bit accesses (not recommended)
0001 INCR: Bus transactions use unspecified length accesses (not recommended, uses the INCR AHB bus command)
0011 INCR4: Bus transactions target 4x 32 bit accesses
0101 INCR8: Bus transactions target 8x 32 bit accesses
0111 INCR16: Bus transactions based on 16x 32 bit accesses
Others: Reserved</description>
              <bitOffset>1</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DMAEN</name>
              <description>DMA enabled</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFELVL</name>
              <description>Tx FIFO empty level
This bit indicates when IN endpoint Transmit FIFO empty interrupt (TXFE in OTG_DIEPINTx) is triggered:
This bit indicates when the nonperiodic Tx FIFO empty interrupt (NPTXFE bit in OTG_GINTSTS) is triggered:</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PTXFELVL</name>
              <description>Periodic Tx FIFO empty level
Indicates when the periodic Tx FIFO empty interrupt bit in the OTG_GINTSTS register (PTXFE bit in OTG_GINTSTS) is triggered.
Note: Only accessible in host mode.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>GUSBCFG</name>
          <displayName>GUSBCFG</displayName>
          <description>OTG USB configuration register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00001400</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TOCAL</name>
              <description>FS timeout calibration
The number of PHY clocks that the application programs in this field is added to the full-speed interpacket timeout duration in the core to account for any additional delays introduced by the PHY. This can be required, because the delay introduced by the PHY in generating the line state condition can vary from one PHY to another.
The USB standard timeout value for full-speed operation is 16 to 18 (inclusive) bit times. The application must program this field based on the speed of enumeration. The number of bit times added per PHY clock is 0.25 bit times.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TRDT</name>
              <description>USB turnaround time
These bits allows to set the turnaround time in PHY clocks. They must be configured according to Table 683: TRDT values, depending on the application AHB frequency. Higher TRDT values allow stretching the USB response time to IN tokens in order to compensate for longer AHB read access latency to the data FIFO.
Note: Only accessible in device mode.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PHYLPC</name>
              <description>PHY Low-power clock select 
This bit selects either 480 MHz or 48 MHz (low-power) PHY mode. In FS and LS modes, the PHY can usually operate on a 48 MHz clock to save power.
In 480 MHz mode, the UTMI interface operates at either 60 or 30 MHz, depending on whether the 8- or 16-bit data width is selected. In 48 MHz mode, the UTMI interface operates at 48 MHz in FS and LS modes.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TSDPS</name>
              <description>TermSel DLine pulsing selection 
This bit selects utmi_termselect to drive the data line pulse during SRP (session request protocol).</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FHMOD</name>
              <description>Force host mode
Writing a 1 to this bit, forces the core to host mode irrespective of the OTG_ID input pin.
After setting the force bit, the application must wait at least 25 ms before the change takes effect.
Note: Accessible in both device and host modes.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FDMOD</name>
              <description>Force device mode
Writing a 1 to this bit, forces the core to device mode irrespective of the OTG_ID input pin.
After setting the force bit, the application must wait at least 25 ms before the change takes effect.
Note: Accessible in both device and host modes.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>GRSTCTL</name>
          <displayName>GRSTCTL</displayName>
          <description>OTG reset register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x80000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CSRST</name>
              <description>Core soft reset
Resets the HCLK and PHY clock domains as follows:
Clears the interrupts and all the CSR register bits except for the following bits:
GATEHCLK bit in OTG_PCGCCTL
STPPCLK bit in OTG_PCGCCTL
FSLSPCS bits in OTG_HCFG
DSPD bit in OTG_DCFG
SDIS bit in OTG_DCTL
OTG_GCCFG register
All module state machines (except for the AHB slave unit) are reset to the Idle state, and all the transmit FIFOs and the receive FIFO are flushed.
Any transactions on the AHB Master are terminated as soon as possible, after completing the last data phase of an AHB transfer. Any transactions on the USB are terminated immediately.
The application can write to this bit any time it wants to reset the core. This is a self-clearing bit and the core clears this bit after all the necessary logic is reset in the core, which can take several clocks, depending on the current state of the core. Once this bit has been cleared, the software must wait at least 3 PHY clocks before accessing the PHY domain (synchronization delay). The software must also check that bit 31 in this register is set to 1 (AHB Master is Idle) before starting any operation.
Typically, the software reset is used during software development and also when the user dynamically changes the PHY selection bits in the above listed USB configuration registers. When the user changes the PHY, the corresponding clock for the PHY is selected and used in the PHY domain. Once a new clock is selected, the PHY domain has to be reset for proper operation.
Note: Accessible in both device and host modes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PSRST</name>
              <description>Partial soft reset
Resets the internal state machines but keeps the enumeration info. Could be used to recover some specific PHY errors.
Note: Accessible in both device and host modes.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FCRST</name>
              <description>Host frame counter reset
The application writes this bit to reset the (micro-)frame number counter inside the core. When the (micro-)frame counter is reset, the subsequent SOF sent out by the core has a frame number of 0.
When application writes '1' to the bit, it might not be able to read back the value as it gets cleared by the core in a few clock cycles.
Note: Only accessible in host mode.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXFFLSH</name>
              <description>Rx FIFO flush
The application can flush the entire Rx FIFO using this bit, but must first ensure that the core is not in the middle of a transaction.
The application must only write to this bit after checking that the core is neither reading from the Rx FIFO nor writing to the Rx FIFO.
The application must wait until the bit is cleared before performing any other operations. This bit requires 8 clocks (slowest of PHY or AHB clock) to clear.
Note: Accessible in both device and host modes.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFFLSH</name>
              <description>Tx FIFO flush</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFNUM</name>
              <description>Tx FIFO number
This is the FIFO number that must be flushed using the Tx FIFO Flush bit. This field must not be changed until the core clears the Tx FIFO Flush bit.
...
Note: Accessible in both device and host modes.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DMAREQ</name>
              <description>DMA request signal enabled
This bit indicates that the DMA request is in progress. Used for debug.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>AHBIDL</name>
              <description>AHB master idle
Indicates that the AHB master state machine is in the Idle condition.
Note: Accessible in both device and host modes.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>GINTSTS_HOST</name>
          <displayName>GINTSTS_HOST</displayName>
          <description>OTG core interrupt register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x04000020</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CMOD</name>
              <description>Current mode of operation
Indicates the current mode.
Note: Accessible in both host and device modes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>MMIS</name>
              <description>Mode mismatch interrupt
The core sets this bit when the application is trying to access:
A host mode register, when the core is operating in device mode
A device mode register, when the core is operating in host mode
The register access is completed on the AHB with an OKAY response, but is ignored by the core internally and does not affect the operation of the core.
Note: Accessible in both host and device modes.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OTGINT</name>
              <description>OTG interrupt
The core sets this bit to indicate an OTG protocol event. The application must read the OTG interrupt status (OTG_GOTGINT) register to determine the exact event that caused this interrupt. The application must clear the appropriate status bit in the OTG_GOTGINT register to clear this bit.
Note: Accessible in both host and device modes.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SOF</name>
              <description>Start of frame
In host mode, the core sets this bit to indicate that an SOF (FS), or Keep-Alive (LS) is transmitted on the USB. The application must write a 1 to this bit to clear the interrupt.
In device mode, in the core sets this bit to indicate that an SOF token has been received on the USB. The application can read the OTG_DSTS register to get the current frame number. This interrupt is seen only when the core is operating in FS.
Note: This register may return '1' if read immediately after power on reset. If the register bit reads '1' immediately after power on reset it does not indicate that an SOF has been sent (in case of host mode) or SOF has been received (in case of device mode). The read value of this interrupt is valid only after a valid connection between host and device is established. If the bit is set after power on reset the application can clear the bit.
Note: Accessible in both host and device modes.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXFLVL</name>
              <description>Rx FIFO non-empty
Indicates that there is at least one packet pending to be read from the Rx FIFO.
Note: Accessible in both host and device modes.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NPTXFE</name>
              <description>Non-periodic Tx FIFO empty
This interrupt is asserted when the non-periodic Tx FIFO is either half or completely empty, and there is space for at least one entry to be written to the non-periodic transmit request queue. The half or completely empty status is determined by the non-periodic Tx FIFO empty level bit in the OTG_GAHBCFG register (TXFELVL bit in OTG_GAHBCFG).
Note: Accessible in host mode only.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>GINAKEFF</name>
              <description>Global IN non-periodic NAK effective
Indicates that the Set global non-periodic IN NAK bit in the OTG_DCTL register (SGINAK bit in OTG_DCTL), set by the application, has taken effect in the core. That is, the core has sampled the Global IN NAK bit set by the application. This bit can be cleared by clearing the Clear global non-periodic IN NAK bit in the OTG_DCTL register (CGINAK bit in OTG_DCTL).
This interrupt does not necessarily mean that a NAK handshake is sent out on the USB. The STALL bit takes precedence over the NAK bit.
Note: Only accessible in device mode.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>GONAKEFF</name>
              <description>Global OUT NAK effective
Indicates that the Set global OUT NAK bit in the OTG_DCTL register (SGONAK bit in OTG_DCTL), set by the application, has taken effect in the core. This bit can be cleared by writing the Clear global OUT NAK bit in the OTG_DCTL register (CGONAK bit in OTG_DCTL).
Note: Only accessible in device mode.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ESUSP</name>
              <description>Early suspend
The core sets this bit to indicate that an Idle state has been detected on the USB for 3 ms.
Note: Only accessible in device mode.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBSUSP</name>
              <description>USB suspend
The core sets this bit to indicate that a suspend was detected on the USB. The core enters the suspended state when there is no activity on the data lines for an extended period of time.
Note: Only accessible in device mode.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBRST</name>
              <description>USB reset
The core sets this bit to indicate that a reset is detected on the USB.
Note: Only accessible in device mode.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ENUMDNE</name>
              <description>Enumeration done
The core sets this bit to indicate that speed enumeration is complete. The application must read the OTG_DSTS register to obtain the enumerated speed.
Note: Only accessible in device mode.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ISOODRP</name>
              <description>Isochronous OUT packet dropped interrupt
The core sets this bit when it fails to write an isochronous OUT packet into the Rx FIFO because the Rx FIFO does not have enough space to accommodate a maximum size packet for the isochronous OUT endpoint.
Note: Only accessible in device mode.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EOPF</name>
              <description>End of periodic frame interrupt
Indicates that the period specified in the periodic frame interval field of the OTG_DCFG register (PFIVL bit in OTG_DCFG) has been reached in the current frame.
Note: Only accessible in device mode.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IEPINT</name>
              <description>IN endpoint interrupt
The core sets this bit to indicate that an interrupt is pending on one of the IN endpoints of the core (in device mode). The application must read the OTG_DAINT register to determine the exact number of the IN endpoint on which the interrupt occurred, and then read the corresponding OTG_DIEPINTx register to determine the exact cause of the interrupt. The application must clear the appropriate status bit in the corresponding OTG_DIEPINTx register to clear this bit.
Note: Only accessible in device mode.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OEPINT</name>
              <description>OUT endpoint interrupt
The core sets this bit to indicate that an interrupt is pending on one of the OUT endpoints of the core (in device mode). The application must read the OTG_DAINT register to determine the exact number of the OUT endpoint on which the interrupt occurred, and then read the corresponding OTG_DOEPINTx register to determine the exact cause of the interrupt. The application must clear the appropriate status bit in the corresponding OTG_DOEPINTx register to clear this bit.
Note: Only accessible in device mode.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>IISOIXFR</name>
              <description>Incomplete isochronous IN transfer
The core sets this interrupt to indicate that there is at least one isochronous IN endpoint on which the transfer is not completed in the current frame. This interrupt is asserted along with the End of periodic frame interrupt (EOPF) bit in this register.
Note: Only accessible in device mode.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IPXFR</name>
              <description>Incomplete periodic transfer
In host mode, the core sets this interrupt bit when there are incomplete periodic transactions still pending, which are scheduled for the current frame.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DATAFSUSP</name>
              <description>Data fetch suspended 
This interrupt is valid only in DMA mode. This interrupt indicates that the core has stopped fetching data for IN endpoints due to the unavailability of TxFIFO space or request queue space. This interrupt is used by the application for an endpoint mismatch algorithm. For example, after detecting an endpoint mismatch, the application:
Sets a global nonperiodic IN NAK handshake
Disables IN endpoints 
Flushes the FIFO
Determines the token sequence from the IN token sequence learning queue
Re-enables the endpoints
Clears the global nonperiodic IN NAK handshake If the global nonperiodic IN NAK is cleared, the core has not yet fetched data for the IN endpoint, and the IN token is received: the core generates an IN token received when FIFO empty interrupt. The OTG then sends a NAK response to the host. To avoid this scenario, the application can check the FetSusp interrupt in OTG_GINTSTS, which ensures that the FIFO is full before clearing a global NAK handshake. Alternatively, the application can mask the IN token received when FIFO empty interrupt when clearing a global IN NAK handshake.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RSTDET</name>
              <description>Reset detected interrupt
In device mode, this interrupt is asserted when a reset is detected on the USB in partial power-down mode when the device is in suspend.
Note: Only accessible in device mode.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HPRTINT</name>
              <description>Host port interrupt
The core sets this bit to indicate a change in port status of one of the OTG_HS controller ports in host mode. The application must read the OTG_HPRT register to determine the exact event that caused this interrupt. The application must clear the appropriate status bit in the OTG_HPRT register to clear this bit.
Note: Only accessible in host mode.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>HCINT</name>
              <description>Host channels interrupt
The core sets this bit to indicate that an interrupt is pending on one of the channels of the core (in host mode). The application must read the OTG_HAINT register to determine the exact number of the channel on which the interrupt occurred, and then read the corresponding OTG_HCINTx register to determine the exact cause of the interrupt. The application must clear the appropriate status bit in the OTG_HCINTx register to clear this bit.
Note: Only accessible in host mode.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PTXFE</name>
              <description>Periodic Tx FIFO empty
Asserted when the periodic transmit FIFO is either half or completely empty and there is space for at least one entry to be written in the periodic request queue. The half or completely empty status is determined by the periodic Tx FIFO empty level bit in the OTG_GAHBCFG register (PTXFELVL bit in OTG_GAHBCFG).
Note: Only accessible in host mode.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>LPMINT</name>
              <description>LPM interrupt
In device mode, this interrupt is asserted when the device receives an LPM transaction and responds with a non-ERRORed response.
In host mode, this interrupt is asserted when the device responds to an LPM transaction with a non-ERRORed response or when the host core has completed LPM transactions for the programmed number of times (RETRYCNT bit in OTG_GLPMCFG).
This field is valid only if the LPMEN bit in OTG_GLPMCFG is set to 1.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CIDSCHG</name>
              <description>Connector ID status change
The core sets this bit when there is a change in connector ID status.
Note: Accessible in both device and host modes.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DISCINT</name>
              <description>Disconnect detected interrupt
Asserted when a device disconnect is detected.
Note: Only accessible in host mode.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SRQINT</name>
              <description>Session request/new session detected interrupt
In host mode, this interrupt is asserted when a session request is detected from the device. In device mode, this interrupt is asserted when V&lt;sub&gt;BUS&lt;/sub&gt; is in the valid range for a B-peripheral device. Accessible in both device and host modes.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WKUPINT</name>
              <description>Resume/remote wakeup detected interrupt
Wakeup interrupt during suspend(L2) or LPM(L1) state.
During suspend(L2):
In device mode, this interrupt is asserted when a resume is detected on the USB. In host mode, this interrupt is asserted when a remote wakeup is detected on the USB.
During LPM(L1):
This interrupt is asserted for either host initiated resume or device initiated remote wakeup on USB.
Note: Accessible in both device and host modes.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>GINTSTS_DEVICE</name>
          <displayName>GINTSTS_DEVICE</displayName>
          <description>OTG core interrupt register</description>
          <alternateRegister>GINTSTS_HOST</alternateRegister>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x04000020</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CMOD</name>
              <description>Current mode of operation
Indicates the current mode.
Note: Accessible in both host and device modes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>MMIS</name>
              <description>Mode mismatch interrupt
The core sets this bit when the application is trying to access:
A host mode register, when the core is operating in device mode
A device mode register, when the core is operating in host mode
The register access is completed on the AHB with an OKAY response, but is ignored by the core internally and does not affect the operation of the core.
Note: Accessible in both host and device modes.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OTGINT</name>
              <description>OTG interrupt
The core sets this bit to indicate an OTG protocol event. The application must read the OTG interrupt status (OTG_GOTGINT) register to determine the exact event that caused this interrupt. The application must clear the appropriate status bit in the OTG_GOTGINT register to clear this bit.
Note: Accessible in both host and device modes.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SOF</name>
              <description>Start of frame
In host mode, the core sets this bit to indicate that an SOF (FS), or Keep-Alive (LS) is transmitted on the USB. The application must write a 1 to this bit to clear the interrupt.
In device mode, in the core sets this bit to indicate that an SOF token has been received on the USB. The application can read the OTG_DSTS register to get the current frame number. This interrupt is seen only when the core is operating in FS.
Note: This register may return '1' if read immediately after power on reset. If the register bit reads '1' immediately after power on reset it does not indicate that an SOF has been sent (in case of host mode) or SOF has been received (in case of device mode). The read value of this interrupt is valid only after a valid connection between host and device is established. If the bit is set after power on reset the application can clear the bit.
Note: Accessible in both host and device modes.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXFLVL</name>
              <description>Rx FIFO non-empty
Indicates that there is at least one packet pending to be read from the Rx FIFO.
Note: Accessible in both host and device modes.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NPTXFE</name>
              <description>Non-periodic Tx FIFO empty
This interrupt is asserted when the non-periodic Tx FIFO is either half or completely empty, and there is space for at least one entry to be written to the non-periodic transmit request queue. The half or completely empty status is determined by the non-periodic Tx FIFO empty level bit in the OTG_GAHBCFG register (TXFELVL bit in OTG_GAHBCFG).
Note: Accessible in host mode only.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>GINAKEFF</name>
              <description>Global IN non-periodic NAK effective
Indicates that the Set global non-periodic IN NAK bit in the OTG_DCTL register (SGINAK bit in OTG_DCTL), set by the application, has taken effect in the core. That is, the core has sampled the Global IN NAK bit set by the application. This bit can be cleared by clearing the Clear global non-periodic IN NAK bit in the OTG_DCTL register (CGINAK bit in OTG_DCTL).
This interrupt does not necessarily mean that a NAK handshake is sent out on the USB. The STALL bit takes precedence over the NAK bit.
Note: Only accessible in device mode.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>GONAKEFF</name>
              <description>Global OUT NAK effective
Indicates that the Set global OUT NAK bit in the OTG_DCTL register (SGONAK bit in OTG_DCTL), set by the application, has taken effect in the core. This bit can be cleared by writing the Clear global OUT NAK bit in the OTG_DCTL register (CGONAK bit in OTG_DCTL).
Note: Only accessible in device mode.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ESUSP</name>
              <description>Early suspend
The core sets this bit to indicate that an Idle state has been detected on the USB for 3 ms.
Note: Only accessible in device mode.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBSUSP</name>
              <description>USB suspend
The core sets this bit to indicate that a suspend was detected on the USB. The core enters the suspended state when there is no activity on the data lines for an extended period of time.
Note: Only accessible in device mode.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBRST</name>
              <description>USB reset
The core sets this bit to indicate that a reset is detected on the USB.
Note: Only accessible in device mode.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ENUMDNE</name>
              <description>Enumeration done
The core sets this bit to indicate that speed enumeration is complete. The application must read the OTG_DSTS register to obtain the enumerated speed.
Note: Only accessible in device mode.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ISOODRP</name>
              <description>Isochronous OUT packet dropped interrupt
The core sets this bit when it fails to write an isochronous OUT packet into the Rx FIFO because the Rx FIFO does not have enough space to accommodate a maximum size packet for the isochronous OUT endpoint.
Note: Only accessible in device mode.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EOPF</name>
              <description>End of periodic frame interrupt
Indicates that the period specified in the periodic frame interval field of the OTG_DCFG register (PFIVL bit in OTG_DCFG) has been reached in the current frame.
Note: Only accessible in device mode.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IEPINT</name>
              <description>IN endpoint interrupt
The core sets this bit to indicate that an interrupt is pending on one of the IN endpoints of the core (in device mode). The application must read the OTG_DAINT register to determine the exact number of the IN endpoint on which the interrupt occurred, and then read the corresponding OTG_DIEPINTx register to determine the exact cause of the interrupt. The application must clear the appropriate status bit in the corresponding OTG_DIEPINTx register to clear this bit.
Note: Only accessible in device mode.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OEPINT</name>
              <description>OUT endpoint interrupt
The core sets this bit to indicate that an interrupt is pending on one of the OUT endpoints of the core (in device mode). The application must read the OTG_DAINT register to determine the exact number of the OUT endpoint on which the interrupt occurred, and then read the corresponding OTG_DOEPINTx register to determine the exact cause of the interrupt. The application must clear the appropriate status bit in the corresponding OTG_DOEPINTx register to clear this bit.
Note: Only accessible in device mode.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>IISOIXFR</name>
              <description>Incomplete isochronous IN transfer
The core sets this interrupt to indicate that there is at least one isochronous IN endpoint on which the transfer is not completed in the current frame. This interrupt is asserted along with the End of periodic frame interrupt (EOPF) bit in this register.
Note: Only accessible in device mode.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INCOMPISOOUT</name>
              <description>Incomplete isochronous OUT transfer
In device mode, the core sets this interrupt to indicate that there is at least one isochronous OUT endpoint on which the transfer is not completed in the current frame. This interrupt is asserted along with the End of periodic frame interrupt (EOPF) bit in this register.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DATAFSUSP</name>
              <description>Data fetch suspended 
This interrupt is valid only in DMA mode. This interrupt indicates that the core has stopped fetching data for IN endpoints due to the unavailability of TxFIFO space or request queue space. This interrupt is used by the application for an endpoint mismatch algorithm. For example, after detecting an endpoint mismatch, the application:
Sets a global nonperiodic IN NAK handshake
Disables IN endpoints 
Flushes the FIFO
Determines the token sequence from the IN token sequence learning queue
Re-enables the endpoints
Clears the global nonperiodic IN NAK handshake If the global nonperiodic IN NAK is cleared, the core has not yet fetched data for the IN endpoint, and the IN token is received: the core generates an IN token received when FIFO empty interrupt. The OTG then sends a NAK response to the host. To avoid this scenario, the application can check the FetSusp interrupt in OTG_GINTSTS, which ensures that the FIFO is full before clearing a global NAK handshake. Alternatively, the application can mask the IN token received when FIFO empty interrupt when clearing a global IN NAK handshake.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RSTDET</name>
              <description>Reset detected interrupt
In device mode, this interrupt is asserted when a reset is detected on the USB in partial power-down mode when the device is in suspend.
Note: Only accessible in device mode.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HPRTINT</name>
              <description>Host port interrupt
The core sets this bit to indicate a change in port status of one of the OTG_HS controller ports in host mode. The application must read the OTG_HPRT register to determine the exact event that caused this interrupt. The application must clear the appropriate status bit in the OTG_HPRT register to clear this bit.
Note: Only accessible in host mode.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>HCINT</name>
              <description>Host channels interrupt
The core sets this bit to indicate that an interrupt is pending on one of the channels of the core (in host mode). The application must read the OTG_HAINT register to determine the exact number of the channel on which the interrupt occurred, and then read the corresponding OTG_HCINTx register to determine the exact cause of the interrupt. The application must clear the appropriate status bit in the OTG_HCINTx register to clear this bit.
Note: Only accessible in host mode.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PTXFE</name>
              <description>Periodic Tx FIFO empty
Asserted when the periodic transmit FIFO is either half or completely empty and there is space for at least one entry to be written in the periodic request queue. The half or completely empty status is determined by the periodic Tx FIFO empty level bit in the OTG_GAHBCFG register (PTXFELVL bit in OTG_GAHBCFG).
Note: Only accessible in host mode.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>LPMINT</name>
              <description>LPM interrupt
In device mode, this interrupt is asserted when the device receives an LPM transaction and responds with a non-ERRORed response.
In host mode, this interrupt is asserted when the device responds to an LPM transaction with a non-ERRORed response or when the host core has completed LPM transactions for the programmed number of times (RETRYCNT bit in OTG_GLPMCFG).
This field is valid only if the LPMEN bit in OTG_GLPMCFG is set to 1.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CIDSCHG</name>
              <description>Connector ID status change
The core sets this bit when there is a change in connector ID status.
Note: Accessible in both device and host modes.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DISCINT</name>
              <description>Disconnect detected interrupt
Asserted when a device disconnect is detected.
Note: Only accessible in host mode.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SRQINT</name>
              <description>Session request/new session detected interrupt
In host mode, this interrupt is asserted when a session request is detected from the device. In device mode, this interrupt is asserted when V&lt;sub&gt;BUS&lt;/sub&gt; is in the valid range for a B-peripheral device. Accessible in both device and host modes.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WKUPINT</name>
              <description>Resume/remote wakeup detected interrupt
Wakeup interrupt during suspend(L2) or LPM(L1) state.
During suspend(L2):
In device mode, this interrupt is asserted when a resume is detected on the USB. In host mode, this interrupt is asserted when a remote wakeup is detected on the USB.
During LPM(L1):
This interrupt is asserted for either host initiated resume or device initiated remote wakeup on USB.
Note: Accessible in both device and host modes.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>GINTMSK_HOST</name>
          <displayName>GINTMSK_HOST</displayName>
          <description>OTG interrupt mask register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MMISM</name>
              <description>Mode mismatch interrupt mask</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OTGINT</name>
              <description>OTG interrupt mask</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SOFM</name>
              <description>Start of frame mask</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXFLVLM</name>
              <description>Receive FIFO non-empty mask</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NPTXFEM</name>
              <description>Non-periodic Tx FIFO empty mask</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IPXFRM</name>
              <description>Incomplete periodic transfer mask</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PRTIM</name>
              <description>Host port interrupt mask</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>HCIM</name>
              <description>Host channels interrupt mask</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PTXFEM</name>
              <description>Periodic Tx FIFO empty mask</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LPMINTM</name>
              <description>LPM interrupt mask</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CIDSCHGM</name>
              <description>Connector ID status change mask</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DISCINT</name>
              <description>Disconnect detected interrupt mask</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SRQIM</name>
              <description>Session request/new session detected interrupt mask</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WUIM</name>
              <description>Resume/remote wakeup detected interrupt mask</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>GINTMSK_DEVICE</name>
          <displayName>GINTMSK_DEVICE</displayName>
          <description>OTG interrupt mask register</description>
          <alternateRegister>GINTMSK_HOST</alternateRegister>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MMISM</name>
              <description>Mode mismatch interrupt mask</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OTGINT</name>
              <description>OTG interrupt mask</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SOFM</name>
              <description>Start of frame mask</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXFLVLM</name>
              <description>Receive FIFO non-empty mask</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GINAKEFFM</name>
              <description>Global non-periodic IN NAK effective mask</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GONAKEFFM</name>
              <description>Global OUT NAK effective mask</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ESUSPM</name>
              <description>Early suspend mask</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBSUSPM</name>
              <description>USB suspend mask</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBRST</name>
              <description>USB reset mask</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ENUMDNEM</name>
              <description>Enumeration done mask</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ISOODRPM</name>
              <description>Isochronous OUT packet dropped interrupt mask</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EOPFM</name>
              <description>End of periodic frame interrupt mask</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IEPINT</name>
              <description>IN endpoints interrupt mask</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OEPINT</name>
              <description>OUT endpoints interrupt mask</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IISOIXFRM</name>
              <description>Incomplete isochronous IN transfer mask</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IISOOXFRM</name>
              <description>Incomplete isochronous OUT transfer mask</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FSUSPM</name>
              <description>Data fetch suspended mask</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RSTDETM</name>
              <description>Reset detected interrupt mask</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LPMINTM</name>
              <description>LPM interrupt mask</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CIDSCHGM</name>
              <description>Connector ID status change mask</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SRQIM</name>
              <description>Session request/new session detected interrupt mask</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WUIM</name>
              <description>Resume/remote wakeup detected interrupt mask</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>GRXSTSR_DEVICE</name>
          <displayName>GRXSTSR_DEVICE</displayName>
          <description>OTG receive status debug read register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>EPNUM</name>
              <description>Endpoint number
Indicates the endpoint number to which the current received packet belongs.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>BCNT</name>
              <description>Byte count
Indicates the byte count of the received data packet.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Data PID
Indicates the data PID of the received OUT data packet</description>
              <bitOffset>15</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PKTSTS</name>
              <description>Packet status
Indicates the status of the received packet
Others: Reserved</description>
              <bitOffset>17</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>FRMNUM</name>
              <description>Frame number
This is the least significant 4 bits of the frame number in which the packet is received on the USB. This field is supported only when isochronous OUT endpoints are supported.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>STSPHST</name>
              <description>Status phase start
Indicates the start of the status phase for a control write transfer. This bit is set along with the OUT transfer completed PKTSTS pattern.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>GRXSTSR_HOST</name>
          <displayName>GRXSTSR_HOST</displayName>
          <description>OTG receive status debug read register</description>
          <alternateRegister>GRXSTSR_DEVICE</alternateRegister>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CHNUM</name>
              <description>Channel number
Indicates the channel number to which the current received packet belongs.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>BCNT</name>
              <description>Byte count
Indicates the byte count of the received IN data packet.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Data PID
Indicates the data PID of the received packet</description>
              <bitOffset>15</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PKTSTS</name>
              <description>Packet status
Indicates the status of the received packet
Others: Reserved</description>
              <bitOffset>17</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>GRXSTSP_DEVICE</name>
          <displayName>GRXSTSP_DEVICE</displayName>
          <description>OTG status read and pop registers</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>EPNUM</name>
              <description>Endpoint number
Indicates the endpoint number to which the current received packet belongs.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>BCNT</name>
              <description>Byte count
Indicates the byte count of the received data packet.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Data PID
Indicates the data PID of the received OUT data packet</description>
              <bitOffset>15</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PKTSTS</name>
              <description>Packet status
Indicates the status of the received packet
Others: Reserved</description>
              <bitOffset>17</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>FRMNUM</name>
              <description>Frame number
This is the least significant 4 bits of the frame number in which the packet is received on the USB. This field is supported only when isochronous OUT endpoints are supported.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>STSPHST</name>
              <description>Status phase start
Indicates the start of the status phase for a control write transfer. This bit is set along with the OUT transfer completed PKTSTS pattern.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>GRXSTSP_HOST</name>
          <displayName>GRXSTSP_HOST</displayName>
          <description>OTG status read and pop registers</description>
          <alternateRegister>GRXSTSP_DEVICE</alternateRegister>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CHNUM</name>
              <description>Channel number
Indicates the channel number to which the current received packet belongs.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>BCNT</name>
              <description>Byte count
Indicates the byte count of the received IN data packet.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Data PID
Indicates the data PID of the received packet</description>
              <bitOffset>15</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PKTSTS</name>
              <description>Packet status
Indicates the status of the received packet
Others: Reserved</description>
              <bitOffset>17</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>GRXFSIZ</name>
          <displayName>GRXFSIZ</displayName>
          <description>OTG receive FIFO size register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000400</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXFD</name>
              <description>Rx FIFO depth
This value is in terms of 32-bit words.
Maximum value is 1024
Programmed values must respect the available FIFO memory allocation and must not exceed the power-on value.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HNPTXFSIZ_HOST</name>
          <displayName>HNPTXFSIZ_HOST</displayName>
          <description>OTG host non-periodic transmit FIFO size register [alternate]</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x02000200</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>NPTXFSA</name>
              <description>Non-periodic transmit RAM start address
This field configures the memory start address for non-periodic transmit FIFO RAM.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NPTXFD</name>
              <description>Non-periodic Tx FIFO depth
This value is in terms of 32-bit words.
Minimum value is 16
Programmed values must respect the available FIFO memory allocation and must not exceed the power-on value.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HNPTXFSIZ_DEVICE</name>
          <displayName>HNPTXFSIZ_DEVICE</displayName>
          <description>OTG host non-periodic transmit FIFO size register [alternate]</description>
          <alternateRegister>HNPTXFSIZ_HOST</alternateRegister>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x02000200</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TX0FSA</name>
              <description>Endpoint 0 transmit RAM start address
This field configures the memory start address for the endpoint 0 transmit FIFO RAM.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TX0FD</name>
              <description>Endpoint 0 Tx FIFO depth
This value is in terms of 32-bit words.
Minimum value is 16
Programmed values must respect the available FIFO memory allocation and must not exceed the power-on value.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HNPTXSTS</name>
          <displayName>HNPTXSTS</displayName>
          <description>OTG non-periodic transmit FIFO/queue status register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00080400</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>NPTXFSAV</name>
              <description>Non-periodic Tx FIFO space available
Indicates the amount of free space available in the non-periodic Tx FIFO.
Values are in terms of 32-bit words.
n: n words available (where 0 UNDER OR EQUAL n UNDER OR EQUAL 512)
Others: Reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NPTQXSAV</name>
              <description>Non-periodic transmit request queue space available
Indicates the amount of free space available in the non-periodic transmit request queue. This queue holds both IN and OUT requests.
n: n locations available (0 UNDER OR EQUAL n UNDER OR EQUAL 8)
Others: Reserved</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NPTXQTOP</name>
              <description>Top of the non-periodic transmit request queue
Entry in the non-periodic Tx request queue that is currently being processed by the MAC.
Bits 30:27: Channel/endpoint number
Bits 26:25:
XXXX00X: IN/OUT token
XXXX01X: Zero-length transmit packet (device IN/host OUT)
XXXX11X: Channel halt command
Bit 24: Terminate (last entry for selected channel/endpoint)</description>
              <bitOffset>24</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>GCCFG</name>
          <displayName>GCCFG</displayName>
          <description>OTG general core configuration register</description>
          <addressOffset>0x38</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFF0000</resetMask>
          <fields>
            <field>
              <name>CHGDET</name>
              <description>Charger detection, result of the current mode (primary or secondary).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>FSVPLUS</name>
              <description>Single-Ended DP indicator
This bit gives the voltage level on DP (also result of the comparison with V&lt;sub&gt;LGC&lt;/sub&gt; threshold as defined in BC v1.2 standard).</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>FSVMINUS</name>
              <description>Single-Ended DM indicator
This bit gives the voltage level on DM (also result of the comparison with V&lt;sub&gt;LGC&lt;/sub&gt; threshold as defined in BC v1.2 standard).</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SESSVLD</name>
              <description>VBUS session indicator
Indicates if VBUS is above VBUS session threshold.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>HCDPEN</name>
              <description>Host CDP behavior enable</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HCDPDETEN</name>
              <description>Host CDP port voltage detector enable on DP</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HVDMSRCEN</name>
              <description>Host CDP port Voltage source enable on DM</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DCDEN</name>
              <description>Data Contact Detection enable</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PDEN</name>
              <description>Primary detection enable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VBDEN</name>
              <description>VBUS detection enable
Enables VBUS Sensing Comparators in order to detect VBUS presence and/or perform OTG operation.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SDEN</name>
              <description>Secondary detection enable</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VBVALOVAL</name>
              <description>Software override value of the VBUS B-session detection</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VBVALOVEN</name>
              <description>Enables a software override of the VBUS B-session detection.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FORCEHOSTPD</name>
              <description>Force host mode pull-downs
If the ID pin functions are enabled, the host mode pull-downs on DP and DM activate automatically. However, whenever that is not the case, yet host mode is required, this bit must be used to force the pull-downs active.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CID</name>
          <displayName>CID</displayName>
          <description>OTG core ID register</description>
          <addressOffset>0x3C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00005000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRODUCT_ID</name>
              <description>Product ID field
Application-programmable ID field.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>GLPMCFG</name>
          <displayName>GLPMCFG</displayName>
          <description>OTG core LPM configuration register</description>
          <addressOffset>0x54</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LPMEN</name>
              <description>LPM support enable
The application uses this bit to control the OTG_HS core LPM capabilities.
If the core operates as a non-LPM-capable host, it cannot request the connected device or hub to activate LPM mode.
If the core operates as a non-LPM-capable device, it cannot respond to any LPM transactions.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LPMACK</name>
              <description>LPM token acknowledge enable
Handshake response to LPM token preprogrammed by device application software.
Even though ACK is preprogrammed, the core device responds with ACK only on successful LPM transaction. The LPM transaction is successful if:
No PID/CRC5 errors in either EXT token or LPM token (else ERROR)
Valid bLinkState = 0001B (L1) received in LPM transaction (else STALL)
No data pending in transmit queue (else NYET).
The preprogrammed software bit is over-ridden for response to LPM token when:
The received bLinkState is not L1 (STALL response), or
An error is detected in either of the LPM token packets because of corruption (ERROR response).
Note: Accessible only in device mode.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BESL</name>
              <description>Best effort service latency Host mode</description>
              <bitOffset>2</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>REMWAKE</name>
              <description>bRemoteWake value
Host mode:
The value of remote wake up to be sent in the wIndex field of LPM transaction.
Device mode (read-only):
This field is updated with the received LPM token bRemoteWake bmAttribute when an ACK, NYET, or STALL response is sent to an LPM transaction.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L1SSEN</name>
              <description>L1 Shallow Sleep enable
Enables suspending the PHY in L1 Sleep mode. For maximum power saving during L1 Sleep mode, this bit should be set to '1' by application SW in all the cases.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BESLTHRS</name>
              <description>BESL threshold</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>L1DSEN</name>
              <description>L1 deep sleep enable
Enables suspending the PHY in L1 Sleep mode. For maximum power saving during L1 Sleep mode, this bit should be set to '1' by application SW in all the cases.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LPMRSP</name>
              <description>LPM response
Device mode:
The response of the core to LPM transaction received is reflected in these two bits.
Host mode:
Handshake response received from local device for LPM transaction</description>
              <bitOffset>13</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SLPSTS</name>
              <description>Port sleep status
Device mode:
This bit is set as long as a Sleep condition is present on the USB bus. The core enters the Sleep state when an ACK response is sent to an LPM transaction and the T&lt;sub&gt;L1TokenRetry&lt;/sub&gt; timer has expired. To stop the PHY clock, the application must set the STPPCLK bit in OTG_PCGCCTL, which asserts the PHY suspend input signal.
The application must rely on SLPSTS and not ACK in LPMRSP to confirm transition into sleep.
The core comes out of sleep:
When there is any activity on the USB linestate
When the application writes to the RWUSIG bit in OTG_DCTL or when the application resets or soft-disconnects the device.
Host mode:
The host transitions to Sleep (L1) state as a side-effect of a successful LPM transaction by the core to the local port with ACK response from the device. The read value of this bit reflects the current Sleep status of the port.
The core clears this bit after:
The core detects a remote L1 wakeup signal,
The application sets the PRST bit or the PRES bit in the OTG_HPRT register, or
The application sets the L1Resume/ remote wakeup detected interrupt bit or disconnect detected interrupt bit in the core interrupt register (WKUPINT or DISCINT bit in OTG_GINTSTS, respectively).</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>L1RSMOK</name>
              <description>Sleep state resume OK</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>LPMCHIDX</name>
              <description>LPM Channel Index
The channel number on which the LPM transaction has to be applied while sending an LPM transaction to the local device. Based on the LPM channel index, the core automatically inserts the device address and endpoint number programmed in the corresponding channel into the LPM transaction.
Note: Accessible only in host mode.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LPMRCNT</name>
              <description>LPM retry count
When the device gives an ERROR response, this is the number of additional LPM retries that the host performs until a valid device response (STALL, NYET, or ACK) is received.
Note: Accessible only in host mode.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SNDLPM</name>
              <description>Send LPM transaction
When the application software sets this bit, an LPM transaction containing two tokens, EXT and LPM is sent. The hardware clears this bit once a valid response (STALL, NYET, or ACK) is received from the device or the core has finished transmitting the programmed number of LPM retries.
Note: This bit must be set only when the host is connected to a local port.
Note: Accessible only in host mode.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LPMRCNTSTS</name>
              <description>LPM retry count status
Number of LPM host retries still remaining to be transmitted for the current LPM sequence.
Note: Accessible only in host mode.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ENBESL</name>
              <description>Enable best effort service latency
This bit enables the BESL feature as defined in the LPM errata:
USB 2.0 Link Power Management Addendum Engineering Change Notice to the USB 2.0 specification, July 16, 2007
Errata for USB 2.0 ECN: Link Power Management (LPM) - 7/2007
Note: Only the updated behavior (described in LPM Errata) is considered in this document and so the ENBESL bit should be set to '1' by application SW.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HPTXFSIZ</name>
          <displayName>HPTXFSIZ</displayName>
          <description>OTG host periodic transmit FIFO size register</description>
          <addressOffset>0x100</addressOffset>
          <size>0x20</size>
          <resetValue>0x04000800</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PTXSA</name>
              <description>Host periodic Tx FIFO start address
This field configures the memory start address for periodic transmit FIFO RAM.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PTXFSIZ</name>
              <description>Host periodic Tx FIFO depth
This value is in terms of 32-bit words.
Minimum value is 16</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPTXF1</name>
          <displayName>DIEPTXF1</displayName>
          <description>OTG device IN endpoint transmit FIFO 1 size register</description>
          <addressOffset>0x104</addressOffset>
          <size>0x20</size>
          <resetValue>0x02000400</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INEPTXSA</name>
              <description>IN endpoint FIFOx transmit RAM start address
This field contains the memory start address for IN endpoint transmit FIFOx. The address must be aligned with a 32-bit memory location.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPTXFD</name>
              <description>IN endpoint Tx FIFO depth
This value is in terms of 32-bit words.
Minimum value is 16</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPTXF2</name>
          <displayName>DIEPTXF2</displayName>
          <description>OTG device IN endpoint transmit FIFO 2 size register</description>
          <addressOffset>0x108</addressOffset>
          <size>0x20</size>
          <resetValue>0x02000600</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INEPTXSA</name>
              <description>IN endpoint FIFOx transmit RAM start address
This field contains the memory start address for IN endpoint transmit FIFOx. The address must be aligned with a 32-bit memory location.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPTXFD</name>
              <description>IN endpoint Tx FIFO depth
This value is in terms of 32-bit words.
Minimum value is 16</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPTXF3</name>
          <displayName>DIEPTXF3</displayName>
          <description>OTG device IN endpoint transmit FIFO 3 size register</description>
          <addressOffset>0x10C</addressOffset>
          <size>0x20</size>
          <resetValue>0x02000800</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INEPTXSA</name>
              <description>IN endpoint FIFOx transmit RAM start address
This field contains the memory start address for IN endpoint transmit FIFOx. The address must be aligned with a 32-bit memory location.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPTXFD</name>
              <description>IN endpoint Tx FIFO depth
This value is in terms of 32-bit words.
Minimum value is 16</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPTXF4</name>
          <displayName>DIEPTXF4</displayName>
          <description>OTG device IN endpoint transmit FIFO 4 size register</description>
          <addressOffset>0x110</addressOffset>
          <size>0x20</size>
          <resetValue>0x02000A00</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INEPTXSA</name>
              <description>IN endpoint FIFOx transmit RAM start address
This field contains the memory start address for IN endpoint transmit FIFOx. The address must be aligned with a 32-bit memory location.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPTXFD</name>
              <description>IN endpoint Tx FIFO depth
This value is in terms of 32-bit words.
Minimum value is 16</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPTXF5</name>
          <displayName>DIEPTXF5</displayName>
          <description>OTG device IN endpoint transmit FIFO 5 size register</description>
          <addressOffset>0x114</addressOffset>
          <size>0x20</size>
          <resetValue>0x02000C00</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INEPTXSA</name>
              <description>IN endpoint FIFOx transmit RAM start address
This field contains the memory start address for IN endpoint transmit FIFOx. The address must be aligned with a 32-bit memory location.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPTXFD</name>
              <description>IN endpoint Tx FIFO depth
This value is in terms of 32-bit words.
Minimum value is 16</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPTXF6</name>
          <displayName>DIEPTXF6</displayName>
          <description>OTG device IN endpoint transmit FIFO 6 size register</description>
          <addressOffset>0x118</addressOffset>
          <size>0x20</size>
          <resetValue>0x02000E00</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INEPTXSA</name>
              <description>IN endpoint FIFOx transmit RAM start address
This field contains the memory start address for IN endpoint transmit FIFOx. The address must be aligned with a 32-bit memory location.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPTXFD</name>
              <description>IN endpoint Tx FIFO depth
This value is in terms of 32-bit words.
Minimum value is 16</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPTXF7</name>
          <displayName>DIEPTXF7</displayName>
          <description>OTG device IN endpoint transmit FIFO 7 size register</description>
          <addressOffset>0x11C</addressOffset>
          <size>0x20</size>
          <resetValue>0x02001000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INEPTXSA</name>
              <description>IN endpoint FIFOx transmit RAM start address
This field contains the memory start address for IN endpoint transmit FIFOx. The address must be aligned with a 32-bit memory location.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPTXFD</name>
              <description>IN endpoint Tx FIFO depth
This value is in terms of 32-bit words.
Minimum value is 16</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPTXF8</name>
          <displayName>DIEPTXF8</displayName>
          <description>OTG device IN endpoint transmit FIFO 8 size register</description>
          <addressOffset>0x120</addressOffset>
          <size>0x20</size>
          <resetValue>0x02001200</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INEPTXSA</name>
              <description>IN endpoint FIFOx transmit RAM start address
This field contains the memory start address for IN endpoint transmit FIFOx. The address must be aligned with a 32-bit memory location.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPTXFD</name>
              <description>IN endpoint Tx FIFO depth
This value is in terms of 32-bit words.
Minimum value is 16</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCFG</name>
          <displayName>HCFG</displayName>
          <description>OTG host configuration register</description>
          <addressOffset>0x400</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FSLSPCS</name>
              <description>FS/LS PHY clock select
Others: Reserved
Note: The FSLSPCS must be set on a connection event according to the speed of the connected device (after changing this bit, a software reset must be performed).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FSLSS</name>
              <description>FS- and LS-only support
The application uses this bit to control the cores enumeration speed. Using this bit, the application can make the core enumerate as an FS host, even if the connected device supports HS traffic. Do not make changes to this field after initial programming.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HFIR</name>
          <displayName>HFIR</displayName>
          <description>OTG host frame interval register</description>
          <addressOffset>0x404</addressOffset>
          <size>0x20</size>
          <resetValue>0x0000EA60</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FRIVL</name>
              <description>Frame interval</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RLDCTRL</name>
              <description>Reload control
This bit allows dynamic reloading of the HFIR register during run time. 
This bit needs to be programmed during initial configuration and its value must not be changed during run time.
RLDCTRL = 0 is not recommended.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HFNUM</name>
          <displayName>HFNUM</displayName>
          <description>OTG host frame number/frame time remaining register</description>
          <addressOffset>0x408</addressOffset>
          <size>0x20</size>
          <resetValue>0x00003FFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FRNUM</name>
              <description>Frame number
This field increments when a new SOF is transmitted on the USB, and is cleared to 0 when it reaches 0x3FFF.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>FTREM</name>
              <description>Frame time remaining
Indicates the amount of time remaining in the current frame, in terms of PHY clocks. This field decrements on each PHY clock. When it reaches zero, this field is reloaded with the value in the Frame interval register and a new SOF is transmitted on the USB.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HPTXSTS</name>
          <displayName>HPTXSTS</displayName>
          <description>OTG_Host periodic transmit FIFO/queue status register</description>
          <addressOffset>0x410</addressOffset>
          <size>0x20</size>
          <resetValue>0x00080100</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PTXFSAVL</name>
              <description>Periodic transmit data FIFO space available
Indicates the number of free locations available to be written to in the periodic Tx FIFO.
Values are in terms of 32-bit words
n: n words available (where 0 UNDER OR EQUAL n UNDER OR EQUAL PTXFD)
Others: Reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PTXQSAV</name>
              <description>Periodic transmit request queue space available
Indicates the number of free locations available to be written in the periodic transmit request queue. This queue holds both IN and OUT requests.
n: n locations available (0 UNDER OR EQUAL n UNDER OR EQUAL 8)
Others: Reserved</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PTXQTOP</name>
              <description>Top of the periodic transmit request queue
This indicates the entry in the periodic Tx request queue that is currently being processed by the MAC.
This register is used for debugging.
Bit 31: Odd/Even frame
0XXXXXXX: send in even frame
1XXXXXXX: send in odd frame
Bits 30:27: Channel/endpoint number
Bits 26:25: Type
XXXXX00X: IN/OUT
XXXXX01X: Zero-length packet
XXXXX11X: Disable channel command
Bit 24: Terminate (last entry for the selected channel/endpoint)</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HAINT</name>
          <displayName>HAINT</displayName>
          <description>OTG host all channels interrupt register</description>
          <addressOffset>0x414</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>HAINT</name>
              <description>Channel interrupts
One bit per channel: Bit 0 for Channel 0, bit 15 for Channel 15</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HAINTMSK</name>
          <displayName>HAINTMSK</displayName>
          <description>OTG host all channels interrupt mask register</description>
          <addressOffset>0x418</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>HAINTM</name>
              <description>Channel interrupt mask
One bit per channel: Bit 0 for channel 0, bit 15 for channel 15</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HPRT</name>
          <displayName>HPRT</displayName>
          <description>OTG host port control and status register</description>
          <addressOffset>0x440</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PCSTS</name>
              <description>Port connect status</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PCDET</name>
              <description>Port connect detected
The core sets this bit when a device connection is detected to trigger an interrupt to the application using the host port interrupt bit in the core interrupt register (HPRTINT bit in OTG_GINTSTS). The application must write a 1 to this bit to clear the interrupt.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PENA</name>
              <description>Port enable
A port is enabled only by the core after a reset sequence, and is disabled by an overcurrent condition, a disconnect condition, or by the application clearing this bit. The application cannot set this bit by a register write. It can only clear it to disable the port. This bit does not trigger any interrupt to the application.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PENCHNG</name>
              <description>Port enable/disable change
The core sets this bit when the status of the port enable bit 2 in this register changes.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>POCA</name>
              <description>Port overcurrent active
Indicates the overcurrent condition of the port.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>POCCHNG</name>
              <description>Port overcurrent change
The core sets this bit when the status of the port overcurrent active bit (bit 4) in this register changes.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PRES</name>
              <description>Port resume
The application sets this bit to drive resume signaling on the port. The core continues to drive the resume signal until the application clears this bit.
If the core detects a USB remote wakeup sequence, as indicated by the port resume/remote wakeup detected interrupt bit of the core interrupt register (WKUPINT bit in OTG_GINTSTS), the core starts driving resume signaling without application intervention and clears this bit when it detects a disconnect condition. The read value of this bit indicates whether the core is currently driving resume signaling.
When LPM is enabled and the core is in L1 state, the behavior of this bit is as follow:
1. The application sets this bit to drive resume signaling on the port.
2. The core continues to drive the resume signal until a predetermined time specified in BESLTHRS[3:0] field of OTG_GLPMCFG register.
3. If the core detects a USB remote wakeup sequence, as indicated by the port L1Resume/Remote L1Wakeup detected interrupt bit of the core interrupt register (WKUPINT in OTG_GINTSTS), the core starts driving resume signaling without application intervention and clears this bit at the end of resume.This bit can be set or cleared by both the core and the application. This bit is cleared by the core even if there is no device connected to the host.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PSUSP</name>
              <description>Port suspend
The application sets this bit to put this port in suspend mode. The core only stops sending SOFs when this is set. To stop the PHY clock, the application must set the port clock stop bit, which asserts the suspend input pin of the PHY.
The read value of this bit reflects the current suspend status of the port. This bit is cleared by the core after a remote wakeup signal is detected or the application sets the port reset bit or port resume bit in this register or the resume/remote wakeup detected interrupt bit or disconnect detected interrupt bit in the core interrupt register (WKUPINT or DISCINT in OTG_GINTSTS, respectively).</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PRST</name>
              <description>Port reset
When the application sets this bit, a reset sequence is started on this port. The application must time the reset period and clear this bit after the reset sequence is complete.
The application must leave this bit set for a minimum duration of at least 10 ms to start a reset on the port. The application can leave it set for another 10 ms in addition to the required minimum duration, before clearing the bit, even though there is no maximum limit set by the USB standard.
High speed: 50 ms
Full speed/Low speed: 10 ms</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PLSTS</name>
              <description>Port line status
Indicates the current logic level USB data lines
Bit 10: Logic level of OTG_DP
Bit 11: Logic level of OTG_DM</description>
              <bitOffset>10</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PPWR</name>
              <description>Port power
The application uses this field to control power to this port, and the core clears this bit on an overcurrent condition.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PTCTL</name>
              <description>Port test control
The application writes a nonzero value to this field to put the port into a Test mode, and the corresponding pattern is signaled on the port.
Others: Reserved</description>
              <bitOffset>13</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PSPD</name>
              <description>Port speed
Indicates the speed of the device attached to this port.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCCHAR0</name>
          <displayName>HCCHAR0</displayName>
          <description>OTG host channel 0 characteristics register</description>
          <addressOffset>0x500</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
Indicates the maximum packet size of the associated endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPNUM</name>
              <description>Endpoint number
Indicates the endpoint number on the device serving as the data source or sink.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDIR</name>
              <description>Endpoint direction
Indicates whether the transaction is IN or OUT.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSDEV</name>
              <description>Low-speed device
This field is set by the application to indicate that this channel is communicating to a low-speed device.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
Indicates the transfer type selected.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multicount
This field indicates to the host the number of transactions that must be executed per frame for this periodic endpoint. For non-periodic transfers, this field is not used
Note: This field must be set to at least 01.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DAD</name>
              <description>Device address
This field selects the specific device serving as the data source or sink.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ODDFRM</name>
              <description>Odd frame
This field is set (reset) by the application to indicate that the OTG host must perform a transfer in an odd frame. This field is applicable for only periodic (isochronous and interrupt) transactions.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHDIS</name>
              <description>Channel disable
The application sets this bit to stop transmitting/receiving data on a channel, even before the transfer for that channel is complete. The application must wait for the Channel disabled interrupt before treating the channel as disabled.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHENA</name>
              <description>Channel enable
 This field is set by the application and cleared by the OTG host.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCSPLT0</name>
          <displayName>HCSPLT0</displayName>
          <description>OTG host channel 0 split control register</description>
          <addressOffset>0x504</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRTADDR</name>
              <description>Port address
This field is the port number of the recipient transaction translator.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HUBADDR</name>
              <description>Hub address
This field holds the device address of the transaction translators hub.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>XACTPOS</name>
              <description>Transaction position
This field is used to determine whether to send all, first, middle, or last payloads with each OUT transaction.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COMPLSPLT</name>
              <description>Do complete split
The application sets this bit to request the OTG host to perform a complete split transaction.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPLITEN</name>
              <description>Split enable
The application sets this bit to indicate that this channel is enabled to perform split transactions.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINT0</name>
          <displayName>HCINT0</displayName>
          <description>OTG host channel 0 interrupt register</description>
          <addressOffset>0x508</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed.
Transfer completed normally without any errors.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHH</name>
              <description>Channel halted. 
Indicates the transfer completed abnormally either because of any USB transaction error or in response to disable request by the application.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This error is generated only in Internal DMA mode when an AHB error occurs during an AHB
read/write operation. The application can read the corresponding DMA channel address 
register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL response received interrupt.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK response received interrupt.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACK</name>
              <description>ACK response received/transmitted interrupt.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>Not yet ready response received interrupt.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERR</name>
              <description>Transaction error.
Indicates one of the following errors occurred on the USB.
CRC check failure
Timeout
Bit stuff error
False EOP</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERR</name>
              <description>Babble error.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMOR</name>
              <description>Frame overrun.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERR</name>
              <description>Data toggle error.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINTMSK0</name>
          <displayName>HCINTMSK0</displayName>
          <description>OTG host channel 0 interrupt mask register</description>
          <addressOffset>0x50C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRCM</name>
              <description>Transfer completed mask</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHHM</name>
              <description>Channel halted mask</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERRM</name>
              <description>AHB error.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALLM</name>
              <description>STALL response received interrupt mask.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAKM</name>
              <description>NAK response received interrupt mask.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACKM</name>
              <description>ACK response received/transmitted interrupt mask.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>response received interrupt mask.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERRM</name>
              <description>Transaction error mask.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERRM</name>
              <description>Babble error mask.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMORM</name>
              <description>Frame overrun mask.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERRM</name>
              <description>Data toggle error mask.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCTSIZ0</name>
          <displayName>HCTSIZ0</displayName>
          <description>OTG host channel 0 transfer size register</description>
          <addressOffset>0x510</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
For an OUT, this field is the number of data bytes the host sends during the transfer.
For an IN, this field is the buffer size that the application has reserved for the transfer. The application is expected to program this field as an integer multiple of the maximum packet size for IN transactions (periodic and non-periodic).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
This field is programmed by the application with the expected number of packets to be transmitted (OUT) or received (IN).
The host decrements this count on every successful transmission or reception of an OUT/IN packet. Once this count reaches zero, the application is interrupted to indicate normal completion.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Data PID
The application programs this field with the type of PID to use for the initial transaction. The host maintains this field for the rest of the transfer.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOPNG</name>
              <description>Do Ping
This bit is used only for OUT transfers. Setting this field to 1 directs the host to do PING protocol. 
Note: Do not set this bit for IN transfers. If this bit is set for IN transfers, it disables the channel.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCDMA0</name>
          <displayName>HCDMA0</displayName>
          <description>OTG host channel 0 DMA address register</description>
          <addressOffset>0x514</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA address
This field holds the start address in the external memory from which the data for the endpoint must be fetched or to which it must be stored. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCCHAR1</name>
          <displayName>HCCHAR1</displayName>
          <description>OTG host channel 1 characteristics register</description>
          <addressOffset>0x520</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
Indicates the maximum packet size of the associated endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPNUM</name>
              <description>Endpoint number
Indicates the endpoint number on the device serving as the data source or sink.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDIR</name>
              <description>Endpoint direction
Indicates whether the transaction is IN or OUT.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSDEV</name>
              <description>Low-speed device
This field is set by the application to indicate that this channel is communicating to a low-speed device.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
Indicates the transfer type selected.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multicount
This field indicates to the host the number of transactions that must be executed per frame for this periodic endpoint. For non-periodic transfers, this field is not used
Note: This field must be set to at least 01.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DAD</name>
              <description>Device address
This field selects the specific device serving as the data source or sink.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ODDFRM</name>
              <description>Odd frame
This field is set (reset) by the application to indicate that the OTG host must perform a transfer in an odd frame. This field is applicable for only periodic (isochronous and interrupt) transactions.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHDIS</name>
              <description>Channel disable
The application sets this bit to stop transmitting/receiving data on a channel, even before the transfer for that channel is complete. The application must wait for the Channel disabled interrupt before treating the channel as disabled.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHENA</name>
              <description>Channel enable
 This field is set by the application and cleared by the OTG host.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCSPLT1</name>
          <displayName>HCSPLT1</displayName>
          <description>OTG host channel 1 split control register</description>
          <addressOffset>0x524</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRTADDR</name>
              <description>Port address
This field is the port number of the recipient transaction translator.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HUBADDR</name>
              <description>Hub address
This field holds the device address of the transaction translators hub.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>XACTPOS</name>
              <description>Transaction position
This field is used to determine whether to send all, first, middle, or last payloads with each OUT transaction.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COMPLSPLT</name>
              <description>Do complete split
The application sets this bit to request the OTG host to perform a complete split transaction.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPLITEN</name>
              <description>Split enable
The application sets this bit to indicate that this channel is enabled to perform split transactions.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINT1</name>
          <displayName>HCINT1</displayName>
          <description>OTG host channel 1 interrupt register</description>
          <addressOffset>0x528</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed.
Transfer completed normally without any errors.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHH</name>
              <description>Channel halted. 
Indicates the transfer completed abnormally either because of any USB transaction error or in response to disable request by the application.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This error is generated only in Internal DMA mode when an AHB error occurs during an AHB
read/write operation. The application can read the corresponding DMA channel address 
register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL response received interrupt.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK response received interrupt.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACK</name>
              <description>ACK response received/transmitted interrupt.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>Not yet ready response received interrupt.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERR</name>
              <description>Transaction error.
Indicates one of the following errors occurred on the USB.
CRC check failure
Timeout
Bit stuff error
False EOP</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERR</name>
              <description>Babble error.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMOR</name>
              <description>Frame overrun.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERR</name>
              <description>Data toggle error.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINTMSK1</name>
          <displayName>HCINTMSK1</displayName>
          <description>OTG host channel 1 interrupt mask register</description>
          <addressOffset>0x52C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRCM</name>
              <description>Transfer completed mask</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHHM</name>
              <description>Channel halted mask</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERRM</name>
              <description>AHB error.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALLM</name>
              <description>STALL response received interrupt mask.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAKM</name>
              <description>NAK response received interrupt mask.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACKM</name>
              <description>ACK response received/transmitted interrupt mask.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>response received interrupt mask.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERRM</name>
              <description>Transaction error mask.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERRM</name>
              <description>Babble error mask.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMORM</name>
              <description>Frame overrun mask.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERRM</name>
              <description>Data toggle error mask.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCTSIZ1</name>
          <displayName>HCTSIZ1</displayName>
          <description>OTG host channel 1 transfer size register</description>
          <addressOffset>0x530</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
For an OUT, this field is the number of data bytes the host sends during the transfer.
For an IN, this field is the buffer size that the application has reserved for the transfer. The application is expected to program this field as an integer multiple of the maximum packet size for IN transactions (periodic and non-periodic).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
This field is programmed by the application with the expected number of packets to be transmitted (OUT) or received (IN).
The host decrements this count on every successful transmission or reception of an OUT/IN packet. Once this count reaches zero, the application is interrupted to indicate normal completion.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Data PID
The application programs this field with the type of PID to use for the initial transaction. The host maintains this field for the rest of the transfer.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOPNG</name>
              <description>Do Ping
This bit is used only for OUT transfers. Setting this field to 1 directs the host to do PING protocol. 
Note: Do not set this bit for IN transfers. If this bit is set for IN transfers, it disables the channel.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCDMA1</name>
          <displayName>HCDMA1</displayName>
          <description>OTG host channel 1 DMA address register</description>
          <addressOffset>0x534</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA address
This field holds the start address in the external memory from which the data for the endpoint must be fetched or to which it must be stored. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCCHAR2</name>
          <displayName>HCCHAR2</displayName>
          <description>OTG host channel 2 characteristics register</description>
          <addressOffset>0x540</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
Indicates the maximum packet size of the associated endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPNUM</name>
              <description>Endpoint number
Indicates the endpoint number on the device serving as the data source or sink.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDIR</name>
              <description>Endpoint direction
Indicates whether the transaction is IN or OUT.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSDEV</name>
              <description>Low-speed device
This field is set by the application to indicate that this channel is communicating to a low-speed device.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
Indicates the transfer type selected.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multicount
This field indicates to the host the number of transactions that must be executed per frame for this periodic endpoint. For non-periodic transfers, this field is not used
Note: This field must be set to at least 01.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DAD</name>
              <description>Device address
This field selects the specific device serving as the data source or sink.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ODDFRM</name>
              <description>Odd frame
This field is set (reset) by the application to indicate that the OTG host must perform a transfer in an odd frame. This field is applicable for only periodic (isochronous and interrupt) transactions.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHDIS</name>
              <description>Channel disable
The application sets this bit to stop transmitting/receiving data on a channel, even before the transfer for that channel is complete. The application must wait for the Channel disabled interrupt before treating the channel as disabled.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHENA</name>
              <description>Channel enable
 This field is set by the application and cleared by the OTG host.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCSPLT2</name>
          <displayName>HCSPLT2</displayName>
          <description>OTG host channel 2 split control register</description>
          <addressOffset>0x544</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRTADDR</name>
              <description>Port address
This field is the port number of the recipient transaction translator.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HUBADDR</name>
              <description>Hub address
This field holds the device address of the transaction translators hub.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>XACTPOS</name>
              <description>Transaction position
This field is used to determine whether to send all, first, middle, or last payloads with each OUT transaction.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COMPLSPLT</name>
              <description>Do complete split
The application sets this bit to request the OTG host to perform a complete split transaction.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPLITEN</name>
              <description>Split enable
The application sets this bit to indicate that this channel is enabled to perform split transactions.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINT2</name>
          <displayName>HCINT2</displayName>
          <description>OTG host channel 2 interrupt register</description>
          <addressOffset>0x548</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed.
Transfer completed normally without any errors.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHH</name>
              <description>Channel halted. 
Indicates the transfer completed abnormally either because of any USB transaction error or in response to disable request by the application.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This error is generated only in Internal DMA mode when an AHB error occurs during an AHB
read/write operation. The application can read the corresponding DMA channel address 
register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL response received interrupt.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK response received interrupt.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACK</name>
              <description>ACK response received/transmitted interrupt.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>Not yet ready response received interrupt.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERR</name>
              <description>Transaction error.
Indicates one of the following errors occurred on the USB.
CRC check failure
Timeout
Bit stuff error
False EOP</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERR</name>
              <description>Babble error.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMOR</name>
              <description>Frame overrun.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERR</name>
              <description>Data toggle error.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINTMSK2</name>
          <displayName>HCINTMSK2</displayName>
          <description>OTG host channel 2 interrupt mask register</description>
          <addressOffset>0x54C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRCM</name>
              <description>Transfer completed mask</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHHM</name>
              <description>Channel halted mask</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERRM</name>
              <description>AHB error.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALLM</name>
              <description>STALL response received interrupt mask.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAKM</name>
              <description>NAK response received interrupt mask.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACKM</name>
              <description>ACK response received/transmitted interrupt mask.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>response received interrupt mask.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERRM</name>
              <description>Transaction error mask.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERRM</name>
              <description>Babble error mask.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMORM</name>
              <description>Frame overrun mask.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERRM</name>
              <description>Data toggle error mask.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCTSIZ2</name>
          <displayName>HCTSIZ2</displayName>
          <description>OTG host channel 2 transfer size register</description>
          <addressOffset>0x550</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
For an OUT, this field is the number of data bytes the host sends during the transfer.
For an IN, this field is the buffer size that the application has reserved for the transfer. The application is expected to program this field as an integer multiple of the maximum packet size for IN transactions (periodic and non-periodic).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
This field is programmed by the application with the expected number of packets to be transmitted (OUT) or received (IN).
The host decrements this count on every successful transmission or reception of an OUT/IN packet. Once this count reaches zero, the application is interrupted to indicate normal completion.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Data PID
The application programs this field with the type of PID to use for the initial transaction. The host maintains this field for the rest of the transfer.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOPNG</name>
              <description>Do Ping
This bit is used only for OUT transfers. Setting this field to 1 directs the host to do PING protocol. 
Note: Do not set this bit for IN transfers. If this bit is set for IN transfers, it disables the channel.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCDMA2</name>
          <displayName>HCDMA2</displayName>
          <description>OTG host channel 2 DMA address register</description>
          <addressOffset>0x554</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA address
This field holds the start address in the external memory from which the data for the endpoint must be fetched or to which it must be stored. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCCHAR3</name>
          <displayName>HCCHAR3</displayName>
          <description>OTG host channel 3 characteristics register</description>
          <addressOffset>0x560</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
Indicates the maximum packet size of the associated endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPNUM</name>
              <description>Endpoint number
Indicates the endpoint number on the device serving as the data source or sink.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDIR</name>
              <description>Endpoint direction
Indicates whether the transaction is IN or OUT.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSDEV</name>
              <description>Low-speed device
This field is set by the application to indicate that this channel is communicating to a low-speed device.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
Indicates the transfer type selected.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multicount
This field indicates to the host the number of transactions that must be executed per frame for this periodic endpoint. For non-periodic transfers, this field is not used
Note: This field must be set to at least 01.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DAD</name>
              <description>Device address
This field selects the specific device serving as the data source or sink.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ODDFRM</name>
              <description>Odd frame
This field is set (reset) by the application to indicate that the OTG host must perform a transfer in an odd frame. This field is applicable for only periodic (isochronous and interrupt) transactions.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHDIS</name>
              <description>Channel disable
The application sets this bit to stop transmitting/receiving data on a channel, even before the transfer for that channel is complete. The application must wait for the Channel disabled interrupt before treating the channel as disabled.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHENA</name>
              <description>Channel enable
 This field is set by the application and cleared by the OTG host.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCSPLT3</name>
          <displayName>HCSPLT3</displayName>
          <description>OTG host channel 3 split control register</description>
          <addressOffset>0x564</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRTADDR</name>
              <description>Port address
This field is the port number of the recipient transaction translator.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HUBADDR</name>
              <description>Hub address
This field holds the device address of the transaction translators hub.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>XACTPOS</name>
              <description>Transaction position
This field is used to determine whether to send all, first, middle, or last payloads with each OUT transaction.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COMPLSPLT</name>
              <description>Do complete split
The application sets this bit to request the OTG host to perform a complete split transaction.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPLITEN</name>
              <description>Split enable
The application sets this bit to indicate that this channel is enabled to perform split transactions.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINT3</name>
          <displayName>HCINT3</displayName>
          <description>OTG host channel 3 interrupt register</description>
          <addressOffset>0x568</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed.
Transfer completed normally without any errors.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHH</name>
              <description>Channel halted. 
Indicates the transfer completed abnormally either because of any USB transaction error or in response to disable request by the application.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This error is generated only in Internal DMA mode when an AHB error occurs during an AHB
read/write operation. The application can read the corresponding DMA channel address 
register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL response received interrupt.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK response received interrupt.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACK</name>
              <description>ACK response received/transmitted interrupt.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>Not yet ready response received interrupt.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERR</name>
              <description>Transaction error.
Indicates one of the following errors occurred on the USB.
CRC check failure
Timeout
Bit stuff error
False EOP</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERR</name>
              <description>Babble error.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMOR</name>
              <description>Frame overrun.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERR</name>
              <description>Data toggle error.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINTMSK3</name>
          <displayName>HCINTMSK3</displayName>
          <description>OTG host channel 3 interrupt mask register</description>
          <addressOffset>0x56C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRCM</name>
              <description>Transfer completed mask</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHHM</name>
              <description>Channel halted mask</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERRM</name>
              <description>AHB error.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALLM</name>
              <description>STALL response received interrupt mask.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAKM</name>
              <description>NAK response received interrupt mask.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACKM</name>
              <description>ACK response received/transmitted interrupt mask.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>response received interrupt mask.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERRM</name>
              <description>Transaction error mask.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERRM</name>
              <description>Babble error mask.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMORM</name>
              <description>Frame overrun mask.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERRM</name>
              <description>Data toggle error mask.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCTSIZ3</name>
          <displayName>HCTSIZ3</displayName>
          <description>OTG host channel 3 transfer size register</description>
          <addressOffset>0x570</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
For an OUT, this field is the number of data bytes the host sends during the transfer.
For an IN, this field is the buffer size that the application has reserved for the transfer. The application is expected to program this field as an integer multiple of the maximum packet size for IN transactions (periodic and non-periodic).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
This field is programmed by the application with the expected number of packets to be transmitted (OUT) or received (IN).
The host decrements this count on every successful transmission or reception of an OUT/IN packet. Once this count reaches zero, the application is interrupted to indicate normal completion.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Data PID
The application programs this field with the type of PID to use for the initial transaction. The host maintains this field for the rest of the transfer.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOPNG</name>
              <description>Do Ping
This bit is used only for OUT transfers. Setting this field to 1 directs the host to do PING protocol. 
Note: Do not set this bit for IN transfers. If this bit is set for IN transfers, it disables the channel.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCDMA3</name>
          <displayName>HCDMA3</displayName>
          <description>OTG host channel 3 DMA address register</description>
          <addressOffset>0x574</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA address
This field holds the start address in the external memory from which the data for the endpoint must be fetched or to which it must be stored. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCCHAR4</name>
          <displayName>HCCHAR4</displayName>
          <description>OTG host channel 4 characteristics register</description>
          <addressOffset>0x580</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
Indicates the maximum packet size of the associated endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPNUM</name>
              <description>Endpoint number
Indicates the endpoint number on the device serving as the data source or sink.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDIR</name>
              <description>Endpoint direction
Indicates whether the transaction is IN or OUT.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSDEV</name>
              <description>Low-speed device
This field is set by the application to indicate that this channel is communicating to a low-speed device.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
Indicates the transfer type selected.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multicount
This field indicates to the host the number of transactions that must be executed per frame for this periodic endpoint. For non-periodic transfers, this field is not used
Note: This field must be set to at least 01.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DAD</name>
              <description>Device address
This field selects the specific device serving as the data source or sink.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ODDFRM</name>
              <description>Odd frame
This field is set (reset) by the application to indicate that the OTG host must perform a transfer in an odd frame. This field is applicable for only periodic (isochronous and interrupt) transactions.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHDIS</name>
              <description>Channel disable
The application sets this bit to stop transmitting/receiving data on a channel, even before the transfer for that channel is complete. The application must wait for the Channel disabled interrupt before treating the channel as disabled.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHENA</name>
              <description>Channel enable
 This field is set by the application and cleared by the OTG host.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCSPLT4</name>
          <displayName>HCSPLT4</displayName>
          <description>OTG host channel 4 split control register</description>
          <addressOffset>0x584</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRTADDR</name>
              <description>Port address
This field is the port number of the recipient transaction translator.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HUBADDR</name>
              <description>Hub address
This field holds the device address of the transaction translators hub.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>XACTPOS</name>
              <description>Transaction position
This field is used to determine whether to send all, first, middle, or last payloads with each OUT transaction.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COMPLSPLT</name>
              <description>Do complete split
The application sets this bit to request the OTG host to perform a complete split transaction.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPLITEN</name>
              <description>Split enable
The application sets this bit to indicate that this channel is enabled to perform split transactions.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINT4</name>
          <displayName>HCINT4</displayName>
          <description>OTG host channel 4 interrupt register</description>
          <addressOffset>0x588</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed.
Transfer completed normally without any errors.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHH</name>
              <description>Channel halted. 
Indicates the transfer completed abnormally either because of any USB transaction error or in response to disable request by the application.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This error is generated only in Internal DMA mode when an AHB error occurs during an AHB
read/write operation. The application can read the corresponding DMA channel address 
register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL response received interrupt.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK response received interrupt.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACK</name>
              <description>ACK response received/transmitted interrupt.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>Not yet ready response received interrupt.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERR</name>
              <description>Transaction error.
Indicates one of the following errors occurred on the USB.
CRC check failure
Timeout
Bit stuff error
False EOP</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERR</name>
              <description>Babble error.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMOR</name>
              <description>Frame overrun.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERR</name>
              <description>Data toggle error.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINTMSK4</name>
          <displayName>HCINTMSK4</displayName>
          <description>OTG host channel 4 interrupt mask register</description>
          <addressOffset>0x58C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRCM</name>
              <description>Transfer completed mask</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHHM</name>
              <description>Channel halted mask</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERRM</name>
              <description>AHB error.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALLM</name>
              <description>STALL response received interrupt mask.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAKM</name>
              <description>NAK response received interrupt mask.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACKM</name>
              <description>ACK response received/transmitted interrupt mask.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>response received interrupt mask.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERRM</name>
              <description>Transaction error mask.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERRM</name>
              <description>Babble error mask.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMORM</name>
              <description>Frame overrun mask.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERRM</name>
              <description>Data toggle error mask.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCTSIZ4</name>
          <displayName>HCTSIZ4</displayName>
          <description>OTG host channel 4 transfer size register</description>
          <addressOffset>0x590</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
For an OUT, this field is the number of data bytes the host sends during the transfer.
For an IN, this field is the buffer size that the application has reserved for the transfer. The application is expected to program this field as an integer multiple of the maximum packet size for IN transactions (periodic and non-periodic).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
This field is programmed by the application with the expected number of packets to be transmitted (OUT) or received (IN).
The host decrements this count on every successful transmission or reception of an OUT/IN packet. Once this count reaches zero, the application is interrupted to indicate normal completion.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Data PID
The application programs this field with the type of PID to use for the initial transaction. The host maintains this field for the rest of the transfer.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOPNG</name>
              <description>Do Ping
This bit is used only for OUT transfers. Setting this field to 1 directs the host to do PING protocol. 
Note: Do not set this bit for IN transfers. If this bit is set for IN transfers, it disables the channel.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCDMA4</name>
          <displayName>HCDMA4</displayName>
          <description>OTG host channel 4 DMA address register</description>
          <addressOffset>0x594</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA address
This field holds the start address in the external memory from which the data for the endpoint must be fetched or to which it must be stored. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCCHAR5</name>
          <displayName>HCCHAR5</displayName>
          <description>OTG host channel 5 characteristics register</description>
          <addressOffset>0x5A0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
Indicates the maximum packet size of the associated endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPNUM</name>
              <description>Endpoint number
Indicates the endpoint number on the device serving as the data source or sink.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDIR</name>
              <description>Endpoint direction
Indicates whether the transaction is IN or OUT.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSDEV</name>
              <description>Low-speed device
This field is set by the application to indicate that this channel is communicating to a low-speed device.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
Indicates the transfer type selected.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multicount
This field indicates to the host the number of transactions that must be executed per frame for this periodic endpoint. For non-periodic transfers, this field is not used
Note: This field must be set to at least 01.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DAD</name>
              <description>Device address
This field selects the specific device serving as the data source or sink.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ODDFRM</name>
              <description>Odd frame
This field is set (reset) by the application to indicate that the OTG host must perform a transfer in an odd frame. This field is applicable for only periodic (isochronous and interrupt) transactions.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHDIS</name>
              <description>Channel disable
The application sets this bit to stop transmitting/receiving data on a channel, even before the transfer for that channel is complete. The application must wait for the Channel disabled interrupt before treating the channel as disabled.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHENA</name>
              <description>Channel enable
 This field is set by the application and cleared by the OTG host.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCSPLT5</name>
          <displayName>HCSPLT5</displayName>
          <description>OTG host channel 5 split control register</description>
          <addressOffset>0x5A4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRTADDR</name>
              <description>Port address
This field is the port number of the recipient transaction translator.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HUBADDR</name>
              <description>Hub address
This field holds the device address of the transaction translators hub.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>XACTPOS</name>
              <description>Transaction position
This field is used to determine whether to send all, first, middle, or last payloads with each OUT transaction.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COMPLSPLT</name>
              <description>Do complete split
The application sets this bit to request the OTG host to perform a complete split transaction.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPLITEN</name>
              <description>Split enable
The application sets this bit to indicate that this channel is enabled to perform split transactions.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINT5</name>
          <displayName>HCINT5</displayName>
          <description>OTG host channel 5 interrupt register</description>
          <addressOffset>0x5A8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed.
Transfer completed normally without any errors.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHH</name>
              <description>Channel halted. 
Indicates the transfer completed abnormally either because of any USB transaction error or in response to disable request by the application.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This error is generated only in Internal DMA mode when an AHB error occurs during an AHB
read/write operation. The application can read the corresponding DMA channel address 
register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL response received interrupt.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK response received interrupt.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACK</name>
              <description>ACK response received/transmitted interrupt.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>Not yet ready response received interrupt.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERR</name>
              <description>Transaction error.
Indicates one of the following errors occurred on the USB.
CRC check failure
Timeout
Bit stuff error
False EOP</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERR</name>
              <description>Babble error.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMOR</name>
              <description>Frame overrun.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERR</name>
              <description>Data toggle error.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINTMSK5</name>
          <displayName>HCINTMSK5</displayName>
          <description>OTG host channel 5 interrupt mask register</description>
          <addressOffset>0x5AC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRCM</name>
              <description>Transfer completed mask</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHHM</name>
              <description>Channel halted mask</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERRM</name>
              <description>AHB error.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALLM</name>
              <description>STALL response received interrupt mask.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAKM</name>
              <description>NAK response received interrupt mask.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACKM</name>
              <description>ACK response received/transmitted interrupt mask.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>response received interrupt mask.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERRM</name>
              <description>Transaction error mask.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERRM</name>
              <description>Babble error mask.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMORM</name>
              <description>Frame overrun mask.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERRM</name>
              <description>Data toggle error mask.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCTSIZ5</name>
          <displayName>HCTSIZ5</displayName>
          <description>OTG host channel 5 transfer size register</description>
          <addressOffset>0x5B0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
For an OUT, this field is the number of data bytes the host sends during the transfer.
For an IN, this field is the buffer size that the application has reserved for the transfer. The application is expected to program this field as an integer multiple of the maximum packet size for IN transactions (periodic and non-periodic).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
This field is programmed by the application with the expected number of packets to be transmitted (OUT) or received (IN).
The host decrements this count on every successful transmission or reception of an OUT/IN packet. Once this count reaches zero, the application is interrupted to indicate normal completion.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Data PID
The application programs this field with the type of PID to use for the initial transaction. The host maintains this field for the rest of the transfer.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOPNG</name>
              <description>Do Ping
This bit is used only for OUT transfers. Setting this field to 1 directs the host to do PING protocol. 
Note: Do not set this bit for IN transfers. If this bit is set for IN transfers, it disables the channel.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCDMA5</name>
          <displayName>HCDMA5</displayName>
          <description>OTG host channel 5 DMA address register</description>
          <addressOffset>0x5B4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA address
This field holds the start address in the external memory from which the data for the endpoint must be fetched or to which it must be stored. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCCHAR6</name>
          <displayName>HCCHAR6</displayName>
          <description>OTG host channel 6 characteristics register</description>
          <addressOffset>0x5C0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
Indicates the maximum packet size of the associated endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPNUM</name>
              <description>Endpoint number
Indicates the endpoint number on the device serving as the data source or sink.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDIR</name>
              <description>Endpoint direction
Indicates whether the transaction is IN or OUT.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSDEV</name>
              <description>Low-speed device
This field is set by the application to indicate that this channel is communicating to a low-speed device.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
Indicates the transfer type selected.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multicount
This field indicates to the host the number of transactions that must be executed per frame for this periodic endpoint. For non-periodic transfers, this field is not used
Note: This field must be set to at least 01.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DAD</name>
              <description>Device address
This field selects the specific device serving as the data source or sink.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ODDFRM</name>
              <description>Odd frame
This field is set (reset) by the application to indicate that the OTG host must perform a transfer in an odd frame. This field is applicable for only periodic (isochronous and interrupt) transactions.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHDIS</name>
              <description>Channel disable
The application sets this bit to stop transmitting/receiving data on a channel, even before the transfer for that channel is complete. The application must wait for the Channel disabled interrupt before treating the channel as disabled.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHENA</name>
              <description>Channel enable
 This field is set by the application and cleared by the OTG host.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCSPLT6</name>
          <displayName>HCSPLT6</displayName>
          <description>OTG host channel 6 split control register</description>
          <addressOffset>0x5C4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRTADDR</name>
              <description>Port address
This field is the port number of the recipient transaction translator.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HUBADDR</name>
              <description>Hub address
This field holds the device address of the transaction translators hub.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>XACTPOS</name>
              <description>Transaction position
This field is used to determine whether to send all, first, middle, or last payloads with each OUT transaction.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COMPLSPLT</name>
              <description>Do complete split
The application sets this bit to request the OTG host to perform a complete split transaction.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPLITEN</name>
              <description>Split enable
The application sets this bit to indicate that this channel is enabled to perform split transactions.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINT6</name>
          <displayName>HCINT6</displayName>
          <description>OTG host channel 6 interrupt register</description>
          <addressOffset>0x5C8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed.
Transfer completed normally without any errors.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHH</name>
              <description>Channel halted. 
Indicates the transfer completed abnormally either because of any USB transaction error or in response to disable request by the application.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This error is generated only in Internal DMA mode when an AHB error occurs during an AHB
read/write operation. The application can read the corresponding DMA channel address 
register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL response received interrupt.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK response received interrupt.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACK</name>
              <description>ACK response received/transmitted interrupt.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>Not yet ready response received interrupt.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERR</name>
              <description>Transaction error.
Indicates one of the following errors occurred on the USB.
CRC check failure
Timeout
Bit stuff error
False EOP</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERR</name>
              <description>Babble error.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMOR</name>
              <description>Frame overrun.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERR</name>
              <description>Data toggle error.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINTMSK6</name>
          <displayName>HCINTMSK6</displayName>
          <description>OTG host channel 6 interrupt mask register</description>
          <addressOffset>0x5CC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRCM</name>
              <description>Transfer completed mask</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHHM</name>
              <description>Channel halted mask</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERRM</name>
              <description>AHB error.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALLM</name>
              <description>STALL response received interrupt mask.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAKM</name>
              <description>NAK response received interrupt mask.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACKM</name>
              <description>ACK response received/transmitted interrupt mask.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>response received interrupt mask.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERRM</name>
              <description>Transaction error mask.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERRM</name>
              <description>Babble error mask.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMORM</name>
              <description>Frame overrun mask.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERRM</name>
              <description>Data toggle error mask.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCTSIZ6</name>
          <displayName>HCTSIZ6</displayName>
          <description>OTG host channel 6 transfer size register</description>
          <addressOffset>0x5D0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
For an OUT, this field is the number of data bytes the host sends during the transfer.
For an IN, this field is the buffer size that the application has reserved for the transfer. The application is expected to program this field as an integer multiple of the maximum packet size for IN transactions (periodic and non-periodic).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
This field is programmed by the application with the expected number of packets to be transmitted (OUT) or received (IN).
The host decrements this count on every successful transmission or reception of an OUT/IN packet. Once this count reaches zero, the application is interrupted to indicate normal completion.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Data PID
The application programs this field with the type of PID to use for the initial transaction. The host maintains this field for the rest of the transfer.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOPNG</name>
              <description>Do Ping
This bit is used only for OUT transfers. Setting this field to 1 directs the host to do PING protocol. 
Note: Do not set this bit for IN transfers. If this bit is set for IN transfers, it disables the channel.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCDMA6</name>
          <displayName>HCDMA6</displayName>
          <description>OTG host channel 6 DMA address register</description>
          <addressOffset>0x5D4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA address
This field holds the start address in the external memory from which the data for the endpoint must be fetched or to which it must be stored. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCCHAR7</name>
          <displayName>HCCHAR7</displayName>
          <description>OTG host channel 7 characteristics register</description>
          <addressOffset>0x5E0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
Indicates the maximum packet size of the associated endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPNUM</name>
              <description>Endpoint number
Indicates the endpoint number on the device serving as the data source or sink.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDIR</name>
              <description>Endpoint direction
Indicates whether the transaction is IN or OUT.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSDEV</name>
              <description>Low-speed device
This field is set by the application to indicate that this channel is communicating to a low-speed device.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
Indicates the transfer type selected.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multicount
This field indicates to the host the number of transactions that must be executed per frame for this periodic endpoint. For non-periodic transfers, this field is not used
Note: This field must be set to at least 01.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DAD</name>
              <description>Device address
This field selects the specific device serving as the data source or sink.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ODDFRM</name>
              <description>Odd frame
This field is set (reset) by the application to indicate that the OTG host must perform a transfer in an odd frame. This field is applicable for only periodic (isochronous and interrupt) transactions.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHDIS</name>
              <description>Channel disable
The application sets this bit to stop transmitting/receiving data on a channel, even before the transfer for that channel is complete. The application must wait for the Channel disabled interrupt before treating the channel as disabled.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHENA</name>
              <description>Channel enable
 This field is set by the application and cleared by the OTG host.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCSPLT7</name>
          <displayName>HCSPLT7</displayName>
          <description>OTG host channel 7 split control register</description>
          <addressOffset>0x5E4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRTADDR</name>
              <description>Port address
This field is the port number of the recipient transaction translator.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HUBADDR</name>
              <description>Hub address
This field holds the device address of the transaction translators hub.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>XACTPOS</name>
              <description>Transaction position
This field is used to determine whether to send all, first, middle, or last payloads with each OUT transaction.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COMPLSPLT</name>
              <description>Do complete split
The application sets this bit to request the OTG host to perform a complete split transaction.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPLITEN</name>
              <description>Split enable
The application sets this bit to indicate that this channel is enabled to perform split transactions.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINT7</name>
          <displayName>HCINT7</displayName>
          <description>OTG host channel 7 interrupt register</description>
          <addressOffset>0x5E8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed.
Transfer completed normally without any errors.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHH</name>
              <description>Channel halted. 
Indicates the transfer completed abnormally either because of any USB transaction error or in response to disable request by the application.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This error is generated only in Internal DMA mode when an AHB error occurs during an AHB
read/write operation. The application can read the corresponding DMA channel address 
register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL response received interrupt.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK response received interrupt.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACK</name>
              <description>ACK response received/transmitted interrupt.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>Not yet ready response received interrupt.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERR</name>
              <description>Transaction error.
Indicates one of the following errors occurred on the USB.
CRC check failure
Timeout
Bit stuff error
False EOP</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERR</name>
              <description>Babble error.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMOR</name>
              <description>Frame overrun.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERR</name>
              <description>Data toggle error.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINTMSK7</name>
          <displayName>HCINTMSK7</displayName>
          <description>OTG host channel 7 interrupt mask register</description>
          <addressOffset>0x5EC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRCM</name>
              <description>Transfer completed mask</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHHM</name>
              <description>Channel halted mask</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERRM</name>
              <description>AHB error.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALLM</name>
              <description>STALL response received interrupt mask.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAKM</name>
              <description>NAK response received interrupt mask.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACKM</name>
              <description>ACK response received/transmitted interrupt mask.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>response received interrupt mask.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERRM</name>
              <description>Transaction error mask.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERRM</name>
              <description>Babble error mask.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMORM</name>
              <description>Frame overrun mask.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERRM</name>
              <description>Data toggle error mask.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCTSIZ7</name>
          <displayName>HCTSIZ7</displayName>
          <description>OTG host channel 7 transfer size register</description>
          <addressOffset>0x5F0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
For an OUT, this field is the number of data bytes the host sends during the transfer.
For an IN, this field is the buffer size that the application has reserved for the transfer. The application is expected to program this field as an integer multiple of the maximum packet size for IN transactions (periodic and non-periodic).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
This field is programmed by the application with the expected number of packets to be transmitted (OUT) or received (IN).
The host decrements this count on every successful transmission or reception of an OUT/IN packet. Once this count reaches zero, the application is interrupted to indicate normal completion.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Data PID
The application programs this field with the type of PID to use for the initial transaction. The host maintains this field for the rest of the transfer.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOPNG</name>
              <description>Do Ping
This bit is used only for OUT transfers. Setting this field to 1 directs the host to do PING protocol. 
Note: Do not set this bit for IN transfers. If this bit is set for IN transfers, it disables the channel.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCDMA7</name>
          <displayName>HCDMA7</displayName>
          <description>OTG host channel 7 DMA address register</description>
          <addressOffset>0x5F4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA address
This field holds the start address in the external memory from which the data for the endpoint must be fetched or to which it must be stored. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCCHAR8</name>
          <displayName>HCCHAR8</displayName>
          <description>OTG host channel 8 characteristics register</description>
          <addressOffset>0x600</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
Indicates the maximum packet size of the associated endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPNUM</name>
              <description>Endpoint number
Indicates the endpoint number on the device serving as the data source or sink.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDIR</name>
              <description>Endpoint direction
Indicates whether the transaction is IN or OUT.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSDEV</name>
              <description>Low-speed device
This field is set by the application to indicate that this channel is communicating to a low-speed device.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
Indicates the transfer type selected.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multicount
This field indicates to the host the number of transactions that must be executed per frame for this periodic endpoint. For non-periodic transfers, this field is not used
Note: This field must be set to at least 01.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DAD</name>
              <description>Device address
This field selects the specific device serving as the data source or sink.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ODDFRM</name>
              <description>Odd frame
This field is set (reset) by the application to indicate that the OTG host must perform a transfer in an odd frame. This field is applicable for only periodic (isochronous and interrupt) transactions.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHDIS</name>
              <description>Channel disable
The application sets this bit to stop transmitting/receiving data on a channel, even before the transfer for that channel is complete. The application must wait for the Channel disabled interrupt before treating the channel as disabled.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHENA</name>
              <description>Channel enable
 This field is set by the application and cleared by the OTG host.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCSPLT8</name>
          <displayName>HCSPLT8</displayName>
          <description>OTG host channel 8 split control register</description>
          <addressOffset>0x604</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRTADDR</name>
              <description>Port address
This field is the port number of the recipient transaction translator.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HUBADDR</name>
              <description>Hub address
This field holds the device address of the transaction translators hub.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>XACTPOS</name>
              <description>Transaction position
This field is used to determine whether to send all, first, middle, or last payloads with each OUT transaction.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COMPLSPLT</name>
              <description>Do complete split
The application sets this bit to request the OTG host to perform a complete split transaction.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPLITEN</name>
              <description>Split enable
The application sets this bit to indicate that this channel is enabled to perform split transactions.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINT8</name>
          <displayName>HCINT8</displayName>
          <description>OTG host channel 8 interrupt register</description>
          <addressOffset>0x608</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed.
Transfer completed normally without any errors.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHH</name>
              <description>Channel halted. 
Indicates the transfer completed abnormally either because of any USB transaction error or in response to disable request by the application.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This error is generated only in Internal DMA mode when an AHB error occurs during an AHB
read/write operation. The application can read the corresponding DMA channel address 
register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL response received interrupt.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK response received interrupt.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACK</name>
              <description>ACK response received/transmitted interrupt.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>Not yet ready response received interrupt.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERR</name>
              <description>Transaction error.
Indicates one of the following errors occurred on the USB.
CRC check failure
Timeout
Bit stuff error
False EOP</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERR</name>
              <description>Babble error.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMOR</name>
              <description>Frame overrun.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERR</name>
              <description>Data toggle error.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINTMSK8</name>
          <displayName>HCINTMSK8</displayName>
          <description>OTG host channel 8 interrupt mask register</description>
          <addressOffset>0x60C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRCM</name>
              <description>Transfer completed mask</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHHM</name>
              <description>Channel halted mask</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERRM</name>
              <description>AHB error.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALLM</name>
              <description>STALL response received interrupt mask.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAKM</name>
              <description>NAK response received interrupt mask.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACKM</name>
              <description>ACK response received/transmitted interrupt mask.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>response received interrupt mask.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERRM</name>
              <description>Transaction error mask.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERRM</name>
              <description>Babble error mask.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMORM</name>
              <description>Frame overrun mask.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERRM</name>
              <description>Data toggle error mask.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCTSIZ8</name>
          <displayName>HCTSIZ8</displayName>
          <description>OTG host channel 8 transfer size register</description>
          <addressOffset>0x610</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
For an OUT, this field is the number of data bytes the host sends during the transfer.
For an IN, this field is the buffer size that the application has reserved for the transfer. The application is expected to program this field as an integer multiple of the maximum packet size for IN transactions (periodic and non-periodic).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
This field is programmed by the application with the expected number of packets to be transmitted (OUT) or received (IN).
The host decrements this count on every successful transmission or reception of an OUT/IN packet. Once this count reaches zero, the application is interrupted to indicate normal completion.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Data PID
The application programs this field with the type of PID to use for the initial transaction. The host maintains this field for the rest of the transfer.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOPNG</name>
              <description>Do Ping
This bit is used only for OUT transfers. Setting this field to 1 directs the host to do PING protocol. 
Note: Do not set this bit for IN transfers. If this bit is set for IN transfers, it disables the channel.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCDMA8</name>
          <displayName>HCDMA8</displayName>
          <description>OTG host channel 8 DMA address register</description>
          <addressOffset>0x614</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA address
This field holds the start address in the external memory from which the data for the endpoint must be fetched or to which it must be stored. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCCHAR9</name>
          <displayName>HCCHAR9</displayName>
          <description>OTG host channel 9 characteristics register</description>
          <addressOffset>0x620</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
Indicates the maximum packet size of the associated endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPNUM</name>
              <description>Endpoint number
Indicates the endpoint number on the device serving as the data source or sink.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDIR</name>
              <description>Endpoint direction
Indicates whether the transaction is IN or OUT.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSDEV</name>
              <description>Low-speed device
This field is set by the application to indicate that this channel is communicating to a low-speed device.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
Indicates the transfer type selected.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multicount
This field indicates to the host the number of transactions that must be executed per frame for this periodic endpoint. For non-periodic transfers, this field is not used
Note: This field must be set to at least 01.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DAD</name>
              <description>Device address
This field selects the specific device serving as the data source or sink.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ODDFRM</name>
              <description>Odd frame
This field is set (reset) by the application to indicate that the OTG host must perform a transfer in an odd frame. This field is applicable for only periodic (isochronous and interrupt) transactions.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHDIS</name>
              <description>Channel disable
The application sets this bit to stop transmitting/receiving data on a channel, even before the transfer for that channel is complete. The application must wait for the Channel disabled interrupt before treating the channel as disabled.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHENA</name>
              <description>Channel enable
 This field is set by the application and cleared by the OTG host.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCSPLT9</name>
          <displayName>HCSPLT9</displayName>
          <description>OTG host channel 9 split control register</description>
          <addressOffset>0x624</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRTADDR</name>
              <description>Port address
This field is the port number of the recipient transaction translator.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HUBADDR</name>
              <description>Hub address
This field holds the device address of the transaction translators hub.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>XACTPOS</name>
              <description>Transaction position
This field is used to determine whether to send all, first, middle, or last payloads with each OUT transaction.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COMPLSPLT</name>
              <description>Do complete split
The application sets this bit to request the OTG host to perform a complete split transaction.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPLITEN</name>
              <description>Split enable
The application sets this bit to indicate that this channel is enabled to perform split transactions.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINT9</name>
          <displayName>HCINT9</displayName>
          <description>OTG host channel 9 interrupt register</description>
          <addressOffset>0x628</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed.
Transfer completed normally without any errors.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHH</name>
              <description>Channel halted. 
Indicates the transfer completed abnormally either because of any USB transaction error or in response to disable request by the application.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This error is generated only in Internal DMA mode when an AHB error occurs during an AHB
read/write operation. The application can read the corresponding DMA channel address 
register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL response received interrupt.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK response received interrupt.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACK</name>
              <description>ACK response received/transmitted interrupt.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>Not yet ready response received interrupt.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERR</name>
              <description>Transaction error.
Indicates one of the following errors occurred on the USB.
CRC check failure
Timeout
Bit stuff error
False EOP</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERR</name>
              <description>Babble error.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMOR</name>
              <description>Frame overrun.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERR</name>
              <description>Data toggle error.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINTMSK9</name>
          <displayName>HCINTMSK9</displayName>
          <description>OTG host channel 9 interrupt mask register</description>
          <addressOffset>0x62C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRCM</name>
              <description>Transfer completed mask</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHHM</name>
              <description>Channel halted mask</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERRM</name>
              <description>AHB error.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALLM</name>
              <description>STALL response received interrupt mask.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAKM</name>
              <description>NAK response received interrupt mask.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACKM</name>
              <description>ACK response received/transmitted interrupt mask.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>response received interrupt mask.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERRM</name>
              <description>Transaction error mask.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERRM</name>
              <description>Babble error mask.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMORM</name>
              <description>Frame overrun mask.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERRM</name>
              <description>Data toggle error mask.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCTSIZ9</name>
          <displayName>HCTSIZ9</displayName>
          <description>OTG host channel 9 transfer size register</description>
          <addressOffset>0x630</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
For an OUT, this field is the number of data bytes the host sends during the transfer.
For an IN, this field is the buffer size that the application has reserved for the transfer. The application is expected to program this field as an integer multiple of the maximum packet size for IN transactions (periodic and non-periodic).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
This field is programmed by the application with the expected number of packets to be transmitted (OUT) or received (IN).
The host decrements this count on every successful transmission or reception of an OUT/IN packet. Once this count reaches zero, the application is interrupted to indicate normal completion.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Data PID
The application programs this field with the type of PID to use for the initial transaction. The host maintains this field for the rest of the transfer.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOPNG</name>
              <description>Do Ping
This bit is used only for OUT transfers. Setting this field to 1 directs the host to do PING protocol. 
Note: Do not set this bit for IN transfers. If this bit is set for IN transfers, it disables the channel.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCDMA9</name>
          <displayName>HCDMA9</displayName>
          <description>OTG host channel 9 DMA address register</description>
          <addressOffset>0x634</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA address
This field holds the start address in the external memory from which the data for the endpoint must be fetched or to which it must be stored. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCCHAR10</name>
          <displayName>HCCHAR10</displayName>
          <description>OTG host channel 10 characteristics register</description>
          <addressOffset>0x640</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
Indicates the maximum packet size of the associated endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPNUM</name>
              <description>Endpoint number
Indicates the endpoint number on the device serving as the data source or sink.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDIR</name>
              <description>Endpoint direction
Indicates whether the transaction is IN or OUT.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSDEV</name>
              <description>Low-speed device
This field is set by the application to indicate that this channel is communicating to a low-speed device.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
Indicates the transfer type selected.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multicount
This field indicates to the host the number of transactions that must be executed per frame for this periodic endpoint. For non-periodic transfers, this field is not used
Note: This field must be set to at least 01.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DAD</name>
              <description>Device address
This field selects the specific device serving as the data source or sink.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ODDFRM</name>
              <description>Odd frame
This field is set (reset) by the application to indicate that the OTG host must perform a transfer in an odd frame. This field is applicable for only periodic (isochronous and interrupt) transactions.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHDIS</name>
              <description>Channel disable
The application sets this bit to stop transmitting/receiving data on a channel, even before the transfer for that channel is complete. The application must wait for the Channel disabled interrupt before treating the channel as disabled.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHENA</name>
              <description>Channel enable
 This field is set by the application and cleared by the OTG host.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCSPLT10</name>
          <displayName>HCSPLT10</displayName>
          <description>OTG host channel 10 split control register</description>
          <addressOffset>0x644</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRTADDR</name>
              <description>Port address
This field is the port number of the recipient transaction translator.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HUBADDR</name>
              <description>Hub address
This field holds the device address of the transaction translators hub.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>XACTPOS</name>
              <description>Transaction position
This field is used to determine whether to send all, first, middle, or last payloads with each OUT transaction.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COMPLSPLT</name>
              <description>Do complete split
The application sets this bit to request the OTG host to perform a complete split transaction.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPLITEN</name>
              <description>Split enable
The application sets this bit to indicate that this channel is enabled to perform split transactions.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINT10</name>
          <displayName>HCINT10</displayName>
          <description>OTG host channel 10 interrupt register</description>
          <addressOffset>0x648</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed.
Transfer completed normally without any errors.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHH</name>
              <description>Channel halted. 
Indicates the transfer completed abnormally either because of any USB transaction error or in response to disable request by the application.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This error is generated only in Internal DMA mode when an AHB error occurs during an AHB
read/write operation. The application can read the corresponding DMA channel address 
register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL response received interrupt.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK response received interrupt.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACK</name>
              <description>ACK response received/transmitted interrupt.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>Not yet ready response received interrupt.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERR</name>
              <description>Transaction error.
Indicates one of the following errors occurred on the USB.
CRC check failure
Timeout
Bit stuff error
False EOP</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERR</name>
              <description>Babble error.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMOR</name>
              <description>Frame overrun.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERR</name>
              <description>Data toggle error.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINTMSK10</name>
          <displayName>HCINTMSK10</displayName>
          <description>OTG host channel 10 interrupt mask register</description>
          <addressOffset>0x64C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRCM</name>
              <description>Transfer completed mask</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHHM</name>
              <description>Channel halted mask</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERRM</name>
              <description>AHB error.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALLM</name>
              <description>STALL response received interrupt mask.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAKM</name>
              <description>NAK response received interrupt mask.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACKM</name>
              <description>ACK response received/transmitted interrupt mask.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>response received interrupt mask.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERRM</name>
              <description>Transaction error mask.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERRM</name>
              <description>Babble error mask.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMORM</name>
              <description>Frame overrun mask.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERRM</name>
              <description>Data toggle error mask.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCTSIZ10</name>
          <displayName>HCTSIZ10</displayName>
          <description>OTG host channel 10 transfer size register</description>
          <addressOffset>0x650</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
For an OUT, this field is the number of data bytes the host sends during the transfer.
For an IN, this field is the buffer size that the application has reserved for the transfer. The application is expected to program this field as an integer multiple of the maximum packet size for IN transactions (periodic and non-periodic).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
This field is programmed by the application with the expected number of packets to be transmitted (OUT) or received (IN).
The host decrements this count on every successful transmission or reception of an OUT/IN packet. Once this count reaches zero, the application is interrupted to indicate normal completion.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Data PID
The application programs this field with the type of PID to use for the initial transaction. The host maintains this field for the rest of the transfer.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOPNG</name>
              <description>Do Ping
This bit is used only for OUT transfers. Setting this field to 1 directs the host to do PING protocol. 
Note: Do not set this bit for IN transfers. If this bit is set for IN transfers, it disables the channel.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCDMA10</name>
          <displayName>HCDMA10</displayName>
          <description>OTG host channel 10 DMA address register</description>
          <addressOffset>0x654</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA address
This field holds the start address in the external memory from which the data for the endpoint must be fetched or to which it must be stored. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCCHAR11</name>
          <displayName>HCCHAR11</displayName>
          <description>OTG host channel 11 characteristics register</description>
          <addressOffset>0x660</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
Indicates the maximum packet size of the associated endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPNUM</name>
              <description>Endpoint number
Indicates the endpoint number on the device serving as the data source or sink.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDIR</name>
              <description>Endpoint direction
Indicates whether the transaction is IN or OUT.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSDEV</name>
              <description>Low-speed device
This field is set by the application to indicate that this channel is communicating to a low-speed device.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
Indicates the transfer type selected.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multicount
This field indicates to the host the number of transactions that must be executed per frame for this periodic endpoint. For non-periodic transfers, this field is not used
Note: This field must be set to at least 01.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DAD</name>
              <description>Device address
This field selects the specific device serving as the data source or sink.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ODDFRM</name>
              <description>Odd frame
This field is set (reset) by the application to indicate that the OTG host must perform a transfer in an odd frame. This field is applicable for only periodic (isochronous and interrupt) transactions.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHDIS</name>
              <description>Channel disable
The application sets this bit to stop transmitting/receiving data on a channel, even before the transfer for that channel is complete. The application must wait for the Channel disabled interrupt before treating the channel as disabled.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHENA</name>
              <description>Channel enable
 This field is set by the application and cleared by the OTG host.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCSPLT11</name>
          <displayName>HCSPLT11</displayName>
          <description>OTG host channel 11 split control register</description>
          <addressOffset>0x664</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRTADDR</name>
              <description>Port address
This field is the port number of the recipient transaction translator.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HUBADDR</name>
              <description>Hub address
This field holds the device address of the transaction translators hub.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>XACTPOS</name>
              <description>Transaction position
This field is used to determine whether to send all, first, middle, or last payloads with each OUT transaction.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COMPLSPLT</name>
              <description>Do complete split
The application sets this bit to request the OTG host to perform a complete split transaction.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPLITEN</name>
              <description>Split enable
The application sets this bit to indicate that this channel is enabled to perform split transactions.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINT11</name>
          <displayName>HCINT11</displayName>
          <description>OTG host channel 11 interrupt register</description>
          <addressOffset>0x668</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed.
Transfer completed normally without any errors.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHH</name>
              <description>Channel halted. 
Indicates the transfer completed abnormally either because of any USB transaction error or in response to disable request by the application.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This error is generated only in Internal DMA mode when an AHB error occurs during an AHB
read/write operation. The application can read the corresponding DMA channel address 
register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL response received interrupt.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK response received interrupt.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACK</name>
              <description>ACK response received/transmitted interrupt.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>Not yet ready response received interrupt.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERR</name>
              <description>Transaction error.
Indicates one of the following errors occurred on the USB.
CRC check failure
Timeout
Bit stuff error
False EOP</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERR</name>
              <description>Babble error.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMOR</name>
              <description>Frame overrun.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERR</name>
              <description>Data toggle error.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINTMSK11</name>
          <displayName>HCINTMSK11</displayName>
          <description>OTG host channel 11 interrupt mask register</description>
          <addressOffset>0x66C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRCM</name>
              <description>Transfer completed mask</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHHM</name>
              <description>Channel halted mask</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERRM</name>
              <description>AHB error.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALLM</name>
              <description>STALL response received interrupt mask.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAKM</name>
              <description>NAK response received interrupt mask.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACKM</name>
              <description>ACK response received/transmitted interrupt mask.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>response received interrupt mask.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERRM</name>
              <description>Transaction error mask.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERRM</name>
              <description>Babble error mask.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMORM</name>
              <description>Frame overrun mask.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERRM</name>
              <description>Data toggle error mask.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCTSIZ11</name>
          <displayName>HCTSIZ11</displayName>
          <description>OTG host channel 11 transfer size register</description>
          <addressOffset>0x670</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
For an OUT, this field is the number of data bytes the host sends during the transfer.
For an IN, this field is the buffer size that the application has reserved for the transfer. The application is expected to program this field as an integer multiple of the maximum packet size for IN transactions (periodic and non-periodic).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
This field is programmed by the application with the expected number of packets to be transmitted (OUT) or received (IN).
The host decrements this count on every successful transmission or reception of an OUT/IN packet. Once this count reaches zero, the application is interrupted to indicate normal completion.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Data PID
The application programs this field with the type of PID to use for the initial transaction. The host maintains this field for the rest of the transfer.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOPNG</name>
              <description>Do Ping
This bit is used only for OUT transfers. Setting this field to 1 directs the host to do PING protocol. 
Note: Do not set this bit for IN transfers. If this bit is set for IN transfers, it disables the channel.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCDMA11</name>
          <displayName>HCDMA11</displayName>
          <description>OTG host channel 11 DMA address register</description>
          <addressOffset>0x674</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA address
This field holds the start address in the external memory from which the data for the endpoint must be fetched or to which it must be stored. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCCHAR12</name>
          <displayName>HCCHAR12</displayName>
          <description>OTG host channel 12 characteristics register</description>
          <addressOffset>0x680</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
Indicates the maximum packet size of the associated endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPNUM</name>
              <description>Endpoint number
Indicates the endpoint number on the device serving as the data source or sink.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDIR</name>
              <description>Endpoint direction
Indicates whether the transaction is IN or OUT.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSDEV</name>
              <description>Low-speed device
This field is set by the application to indicate that this channel is communicating to a low-speed device.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
Indicates the transfer type selected.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multicount
This field indicates to the host the number of transactions that must be executed per frame for this periodic endpoint. For non-periodic transfers, this field is not used
Note: This field must be set to at least 01.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DAD</name>
              <description>Device address
This field selects the specific device serving as the data source or sink.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ODDFRM</name>
              <description>Odd frame
This field is set (reset) by the application to indicate that the OTG host must perform a transfer in an odd frame. This field is applicable for only periodic (isochronous and interrupt) transactions.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHDIS</name>
              <description>Channel disable
The application sets this bit to stop transmitting/receiving data on a channel, even before the transfer for that channel is complete. The application must wait for the Channel disabled interrupt before treating the channel as disabled.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHENA</name>
              <description>Channel enable
 This field is set by the application and cleared by the OTG host.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCSPLT12</name>
          <displayName>HCSPLT12</displayName>
          <description>OTG host channel 12 split control register</description>
          <addressOffset>0x684</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRTADDR</name>
              <description>Port address
This field is the port number of the recipient transaction translator.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HUBADDR</name>
              <description>Hub address
This field holds the device address of the transaction translators hub.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>XACTPOS</name>
              <description>Transaction position
This field is used to determine whether to send all, first, middle, or last payloads with each OUT transaction.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COMPLSPLT</name>
              <description>Do complete split
The application sets this bit to request the OTG host to perform a complete split transaction.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPLITEN</name>
              <description>Split enable
The application sets this bit to indicate that this channel is enabled to perform split transactions.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINT12</name>
          <displayName>HCINT12</displayName>
          <description>OTG host channel 12 interrupt register</description>
          <addressOffset>0x688</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed.
Transfer completed normally without any errors.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHH</name>
              <description>Channel halted. 
Indicates the transfer completed abnormally either because of any USB transaction error or in response to disable request by the application.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This error is generated only in Internal DMA mode when an AHB error occurs during an AHB
read/write operation. The application can read the corresponding DMA channel address 
register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL response received interrupt.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK response received interrupt.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACK</name>
              <description>ACK response received/transmitted interrupt.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>Not yet ready response received interrupt.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERR</name>
              <description>Transaction error.
Indicates one of the following errors occurred on the USB.
CRC check failure
Timeout
Bit stuff error
False EOP</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERR</name>
              <description>Babble error.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMOR</name>
              <description>Frame overrun.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERR</name>
              <description>Data toggle error.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINTMSK12</name>
          <displayName>HCINTMSK12</displayName>
          <description>OTG host channel 12 interrupt mask register</description>
          <addressOffset>0x68C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRCM</name>
              <description>Transfer completed mask</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHHM</name>
              <description>Channel halted mask</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERRM</name>
              <description>AHB error.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALLM</name>
              <description>STALL response received interrupt mask.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAKM</name>
              <description>NAK response received interrupt mask.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACKM</name>
              <description>ACK response received/transmitted interrupt mask.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>response received interrupt mask.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERRM</name>
              <description>Transaction error mask.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERRM</name>
              <description>Babble error mask.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMORM</name>
              <description>Frame overrun mask.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERRM</name>
              <description>Data toggle error mask.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCTSIZ12</name>
          <displayName>HCTSIZ12</displayName>
          <description>OTG host channel 12 transfer size register</description>
          <addressOffset>0x690</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
For an OUT, this field is the number of data bytes the host sends during the transfer.
For an IN, this field is the buffer size that the application has reserved for the transfer. The application is expected to program this field as an integer multiple of the maximum packet size for IN transactions (periodic and non-periodic).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
This field is programmed by the application with the expected number of packets to be transmitted (OUT) or received (IN).
The host decrements this count on every successful transmission or reception of an OUT/IN packet. Once this count reaches zero, the application is interrupted to indicate normal completion.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Data PID
The application programs this field with the type of PID to use for the initial transaction. The host maintains this field for the rest of the transfer.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOPNG</name>
              <description>Do Ping
This bit is used only for OUT transfers. Setting this field to 1 directs the host to do PING protocol. 
Note: Do not set this bit for IN transfers. If this bit is set for IN transfers, it disables the channel.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCDMA12</name>
          <displayName>HCDMA12</displayName>
          <description>OTG host channel 12 DMA address register</description>
          <addressOffset>0x694</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA address
This field holds the start address in the external memory from which the data for the endpoint must be fetched or to which it must be stored. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCCHAR13</name>
          <displayName>HCCHAR13</displayName>
          <description>OTG host channel 13 characteristics register</description>
          <addressOffset>0x6A0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
Indicates the maximum packet size of the associated endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPNUM</name>
              <description>Endpoint number
Indicates the endpoint number on the device serving as the data source or sink.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDIR</name>
              <description>Endpoint direction
Indicates whether the transaction is IN or OUT.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSDEV</name>
              <description>Low-speed device
This field is set by the application to indicate that this channel is communicating to a low-speed device.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
Indicates the transfer type selected.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multicount
This field indicates to the host the number of transactions that must be executed per frame for this periodic endpoint. For non-periodic transfers, this field is not used
Note: This field must be set to at least 01.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DAD</name>
              <description>Device address
This field selects the specific device serving as the data source or sink.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ODDFRM</name>
              <description>Odd frame
This field is set (reset) by the application to indicate that the OTG host must perform a transfer in an odd frame. This field is applicable for only periodic (isochronous and interrupt) transactions.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHDIS</name>
              <description>Channel disable
The application sets this bit to stop transmitting/receiving data on a channel, even before the transfer for that channel is complete. The application must wait for the Channel disabled interrupt before treating the channel as disabled.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHENA</name>
              <description>Channel enable
 This field is set by the application and cleared by the OTG host.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCSPLT13</name>
          <displayName>HCSPLT13</displayName>
          <description>OTG host channel 13 split control register</description>
          <addressOffset>0x6A4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRTADDR</name>
              <description>Port address
This field is the port number of the recipient transaction translator.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HUBADDR</name>
              <description>Hub address
This field holds the device address of the transaction translators hub.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>XACTPOS</name>
              <description>Transaction position
This field is used to determine whether to send all, first, middle, or last payloads with each OUT transaction.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COMPLSPLT</name>
              <description>Do complete split
The application sets this bit to request the OTG host to perform a complete split transaction.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPLITEN</name>
              <description>Split enable
The application sets this bit to indicate that this channel is enabled to perform split transactions.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINT13</name>
          <displayName>HCINT13</displayName>
          <description>OTG host channel 13 interrupt register</description>
          <addressOffset>0x6A8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed.
Transfer completed normally without any errors.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHH</name>
              <description>Channel halted. 
Indicates the transfer completed abnormally either because of any USB transaction error or in response to disable request by the application.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This error is generated only in Internal DMA mode when an AHB error occurs during an AHB
read/write operation. The application can read the corresponding DMA channel address 
register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL response received interrupt.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK response received interrupt.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACK</name>
              <description>ACK response received/transmitted interrupt.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>Not yet ready response received interrupt.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERR</name>
              <description>Transaction error.
Indicates one of the following errors occurred on the USB.
CRC check failure
Timeout
Bit stuff error
False EOP</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERR</name>
              <description>Babble error.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMOR</name>
              <description>Frame overrun.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERR</name>
              <description>Data toggle error.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINTMSK13</name>
          <displayName>HCINTMSK13</displayName>
          <description>OTG host channel 13 interrupt mask register</description>
          <addressOffset>0x6AC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRCM</name>
              <description>Transfer completed mask</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHHM</name>
              <description>Channel halted mask</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERRM</name>
              <description>AHB error.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALLM</name>
              <description>STALL response received interrupt mask.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAKM</name>
              <description>NAK response received interrupt mask.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACKM</name>
              <description>ACK response received/transmitted interrupt mask.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>response received interrupt mask.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERRM</name>
              <description>Transaction error mask.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERRM</name>
              <description>Babble error mask.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMORM</name>
              <description>Frame overrun mask.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERRM</name>
              <description>Data toggle error mask.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCTSIZ13</name>
          <displayName>HCTSIZ13</displayName>
          <description>OTG host channel 13 transfer size register</description>
          <addressOffset>0x6B0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
For an OUT, this field is the number of data bytes the host sends during the transfer.
For an IN, this field is the buffer size that the application has reserved for the transfer. The application is expected to program this field as an integer multiple of the maximum packet size for IN transactions (periodic and non-periodic).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
This field is programmed by the application with the expected number of packets to be transmitted (OUT) or received (IN).
The host decrements this count on every successful transmission or reception of an OUT/IN packet. Once this count reaches zero, the application is interrupted to indicate normal completion.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Data PID
The application programs this field with the type of PID to use for the initial transaction. The host maintains this field for the rest of the transfer.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOPNG</name>
              <description>Do Ping
This bit is used only for OUT transfers. Setting this field to 1 directs the host to do PING protocol. 
Note: Do not set this bit for IN transfers. If this bit is set for IN transfers, it disables the channel.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCDMA13</name>
          <displayName>HCDMA13</displayName>
          <description>OTG host channel 13 DMA address register</description>
          <addressOffset>0x6B4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA address
This field holds the start address in the external memory from which the data for the endpoint must be fetched or to which it must be stored. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCCHAR14</name>
          <displayName>HCCHAR14</displayName>
          <description>OTG host channel 14 characteristics register</description>
          <addressOffset>0x6C0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
Indicates the maximum packet size of the associated endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPNUM</name>
              <description>Endpoint number
Indicates the endpoint number on the device serving as the data source or sink.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDIR</name>
              <description>Endpoint direction
Indicates whether the transaction is IN or OUT.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSDEV</name>
              <description>Low-speed device
This field is set by the application to indicate that this channel is communicating to a low-speed device.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
Indicates the transfer type selected.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multicount
This field indicates to the host the number of transactions that must be executed per frame for this periodic endpoint. For non-periodic transfers, this field is not used
Note: This field must be set to at least 01.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DAD</name>
              <description>Device address
This field selects the specific device serving as the data source or sink.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ODDFRM</name>
              <description>Odd frame
This field is set (reset) by the application to indicate that the OTG host must perform a transfer in an odd frame. This field is applicable for only periodic (isochronous and interrupt) transactions.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHDIS</name>
              <description>Channel disable
The application sets this bit to stop transmitting/receiving data on a channel, even before the transfer for that channel is complete. The application must wait for the Channel disabled interrupt before treating the channel as disabled.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHENA</name>
              <description>Channel enable
 This field is set by the application and cleared by the OTG host.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCSPLT14</name>
          <displayName>HCSPLT14</displayName>
          <description>OTG host channel 14 split control register</description>
          <addressOffset>0x6C4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRTADDR</name>
              <description>Port address
This field is the port number of the recipient transaction translator.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HUBADDR</name>
              <description>Hub address
This field holds the device address of the transaction translators hub.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>XACTPOS</name>
              <description>Transaction position
This field is used to determine whether to send all, first, middle, or last payloads with each OUT transaction.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COMPLSPLT</name>
              <description>Do complete split
The application sets this bit to request the OTG host to perform a complete split transaction.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPLITEN</name>
              <description>Split enable
The application sets this bit to indicate that this channel is enabled to perform split transactions.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINT14</name>
          <displayName>HCINT14</displayName>
          <description>OTG host channel 14 interrupt register</description>
          <addressOffset>0x6C8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed.
Transfer completed normally without any errors.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHH</name>
              <description>Channel halted. 
Indicates the transfer completed abnormally either because of any USB transaction error or in response to disable request by the application.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This error is generated only in Internal DMA mode when an AHB error occurs during an AHB
read/write operation. The application can read the corresponding DMA channel address 
register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL response received interrupt.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK response received interrupt.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACK</name>
              <description>ACK response received/transmitted interrupt.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>Not yet ready response received interrupt.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERR</name>
              <description>Transaction error.
Indicates one of the following errors occurred on the USB.
CRC check failure
Timeout
Bit stuff error
False EOP</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERR</name>
              <description>Babble error.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMOR</name>
              <description>Frame overrun.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERR</name>
              <description>Data toggle error.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINTMSK14</name>
          <displayName>HCINTMSK14</displayName>
          <description>OTG host channel 14 interrupt mask register</description>
          <addressOffset>0x6CC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRCM</name>
              <description>Transfer completed mask</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHHM</name>
              <description>Channel halted mask</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERRM</name>
              <description>AHB error.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALLM</name>
              <description>STALL response received interrupt mask.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAKM</name>
              <description>NAK response received interrupt mask.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACKM</name>
              <description>ACK response received/transmitted interrupt mask.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>response received interrupt mask.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERRM</name>
              <description>Transaction error mask.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERRM</name>
              <description>Babble error mask.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMORM</name>
              <description>Frame overrun mask.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERRM</name>
              <description>Data toggle error mask.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCTSIZ14</name>
          <displayName>HCTSIZ14</displayName>
          <description>OTG host channel 14 transfer size register</description>
          <addressOffset>0x6D0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
For an OUT, this field is the number of data bytes the host sends during the transfer.
For an IN, this field is the buffer size that the application has reserved for the transfer. The application is expected to program this field as an integer multiple of the maximum packet size for IN transactions (periodic and non-periodic).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
This field is programmed by the application with the expected number of packets to be transmitted (OUT) or received (IN).
The host decrements this count on every successful transmission or reception of an OUT/IN packet. Once this count reaches zero, the application is interrupted to indicate normal completion.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Data PID
The application programs this field with the type of PID to use for the initial transaction. The host maintains this field for the rest of the transfer.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOPNG</name>
              <description>Do Ping
This bit is used only for OUT transfers. Setting this field to 1 directs the host to do PING protocol. 
Note: Do not set this bit for IN transfers. If this bit is set for IN transfers, it disables the channel.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCDMA14</name>
          <displayName>HCDMA14</displayName>
          <description>OTG host channel 14 DMA address register</description>
          <addressOffset>0x6D4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA address
This field holds the start address in the external memory from which the data for the endpoint must be fetched or to which it must be stored. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCCHAR15</name>
          <displayName>HCCHAR15</displayName>
          <description>OTG host channel 15 characteristics register</description>
          <addressOffset>0x6E0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
Indicates the maximum packet size of the associated endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPNUM</name>
              <description>Endpoint number
Indicates the endpoint number on the device serving as the data source or sink.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDIR</name>
              <description>Endpoint direction
Indicates whether the transaction is IN or OUT.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSDEV</name>
              <description>Low-speed device
This field is set by the application to indicate that this channel is communicating to a low-speed device.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
Indicates the transfer type selected.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multicount
This field indicates to the host the number of transactions that must be executed per frame for this periodic endpoint. For non-periodic transfers, this field is not used
Note: This field must be set to at least 01.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DAD</name>
              <description>Device address
This field selects the specific device serving as the data source or sink.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ODDFRM</name>
              <description>Odd frame
This field is set (reset) by the application to indicate that the OTG host must perform a transfer in an odd frame. This field is applicable for only periodic (isochronous and interrupt) transactions.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHDIS</name>
              <description>Channel disable
The application sets this bit to stop transmitting/receiving data on a channel, even before the transfer for that channel is complete. The application must wait for the Channel disabled interrupt before treating the channel as disabled.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHENA</name>
              <description>Channel enable
 This field is set by the application and cleared by the OTG host.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCSPLT15</name>
          <displayName>HCSPLT15</displayName>
          <description>OTG host channel 15 split control register</description>
          <addressOffset>0x6E4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRTADDR</name>
              <description>Port address
This field is the port number of the recipient transaction translator.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HUBADDR</name>
              <description>Hub address
This field holds the device address of the transaction translators hub.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>XACTPOS</name>
              <description>Transaction position
This field is used to determine whether to send all, first, middle, or last payloads with each OUT transaction.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COMPLSPLT</name>
              <description>Do complete split
The application sets this bit to request the OTG host to perform a complete split transaction.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPLITEN</name>
              <description>Split enable
The application sets this bit to indicate that this channel is enabled to perform split transactions.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINT15</name>
          <displayName>HCINT15</displayName>
          <description>OTG host channel 15 interrupt register</description>
          <addressOffset>0x6E8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed.
Transfer completed normally without any errors.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHH</name>
              <description>Channel halted. 
Indicates the transfer completed abnormally either because of any USB transaction error or in response to disable request by the application.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This error is generated only in Internal DMA mode when an AHB error occurs during an AHB
read/write operation. The application can read the corresponding DMA channel address 
register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL response received interrupt.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK response received interrupt.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACK</name>
              <description>ACK response received/transmitted interrupt.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>Not yet ready response received interrupt.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERR</name>
              <description>Transaction error.
Indicates one of the following errors occurred on the USB.
CRC check failure
Timeout
Bit stuff error
False EOP</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERR</name>
              <description>Babble error.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMOR</name>
              <description>Frame overrun.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERR</name>
              <description>Data toggle error.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCINTMSK15</name>
          <displayName>HCINTMSK15</displayName>
          <description>OTG host channel 15 interrupt mask register</description>
          <addressOffset>0x6EC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRCM</name>
              <description>Transfer completed mask</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHHM</name>
              <description>Channel halted mask</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERRM</name>
              <description>AHB error.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALLM</name>
              <description>STALL response received interrupt mask.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAKM</name>
              <description>NAK response received interrupt mask.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACKM</name>
              <description>ACK response received/transmitted interrupt mask.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>response received interrupt mask.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXERRM</name>
              <description>Transaction error mask.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BBERRM</name>
              <description>Babble error mask.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRMORM</name>
              <description>Frame overrun mask.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTERRM</name>
              <description>Data toggle error mask.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCTSIZ15</name>
          <displayName>HCTSIZ15</displayName>
          <description>OTG host channel 15 transfer size register</description>
          <addressOffset>0x6F0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
For an OUT, this field is the number of data bytes the host sends during the transfer.
For an IN, this field is the buffer size that the application has reserved for the transfer. The application is expected to program this field as an integer multiple of the maximum packet size for IN transactions (periodic and non-periodic).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
This field is programmed by the application with the expected number of packets to be transmitted (OUT) or received (IN).
The host decrements this count on every successful transmission or reception of an OUT/IN packet. Once this count reaches zero, the application is interrupted to indicate normal completion.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Data PID
The application programs this field with the type of PID to use for the initial transaction. The host maintains this field for the rest of the transfer.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DOPNG</name>
              <description>Do Ping
This bit is used only for OUT transfers. Setting this field to 1 directs the host to do PING protocol. 
Note: Do not set this bit for IN transfers. If this bit is set for IN transfers, it disables the channel.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HCDMA15</name>
          <displayName>HCDMA15</displayName>
          <description>OTG host channel 15 DMA address register</description>
          <addressOffset>0x6F4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA address
This field holds the start address in the external memory from which the data for the endpoint must be fetched or to which it must be stored. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DCFG</name>
          <displayName>DCFG</displayName>
          <description>OTG device configuration register</description>
          <addressOffset>0x800</addressOffset>
          <size>0x20</size>
          <resetValue>0x02200000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DSPD</name>
              <description>Device speed
Indicates the speed at which the application requires the core to enumerate, or the maximum speed the application can support. However, the actual bus speed is determined only after the chirp sequence is completed, and is based on the speed of the USB host to which the core is connected.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NZLSOHSK</name>
              <description>Non-zero-length status OUT handshake
The application can use this field to select the handshake the core sends on receiving a nonzero-length data packet during the OUT transaction of a control transfers status stage.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DAD</name>
              <description>Device address
The application must program this field after every SetAddress control command.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PFIVL</name>
              <description>Periodic frame interval
Indicates the time within a frame at which the application must be notified using the end of periodic frame interrupt. This can be used to determine if all the isochronous traffic for that frame is complete.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ERRATIM</name>
              <description>Erratic error interrupt mask</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PERSCHIVL</name>
              <description>Periodic schedule interval
This field specifies the amount of time the Internal DMA engine must allocate for fetching periodic IN endpoint data. Based on the number of periodic endpoints, this value must be specified as 25, 50 or 75% of the (micro) frame.
When any periodic endpoints are active, the internal DMA engine allocates the specified amount of time in fetching periodic IN endpoint data
When no periodic endpoint is active, then the internal DMA engine services nonperiodic endpoints, ignoring this field
After the specified time within a (micro) frame, the DMA switches to fetching nonperiodic endpoints</description>
              <bitOffset>24</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DCTL</name>
          <displayName>DCTL</displayName>
          <description>OTG device control register</description>
          <addressOffset>0x804</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000002</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RWUSIG</name>
              <description>Remote wakeup signaling
When the application sets this bit, the core initiates remote signaling to wake up the USB host. The application must set this bit to instruct the core to exit the suspend state. As specified in the USB 2.0 specification, the application must clear this bit 1 ms to 15 ms after setting it.
If LPM is enabled and the core is in the L1 (sleep) state, when the application sets this bit, the core initiates L1 remote signaling to wake up the USB host. The application must set this bit to instruct the core to exit the sleep state. As specified in the LPM specification, the hardware automatically clears this bit 50  s (T&lt;sub&gt;L1DevDrvResume&lt;/sub&gt;) after being set by the application. The application must not set this bit when bRemoteWake from the previous LPM transaction is zero (refer to REMWAKE bit in GLPMCFG register).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SDIS</name>
              <description>Soft disconnect
The application uses this bit to signal the USB OTG core to perform a soft disconnect. As long as this bit is set, the host does not see that the device is connected, and the device does not receive signals on the USB. The core stays in the disconnected state until the application clears this bit.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GINSTS</name>
              <description>Global IN NAK status</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>GONSTS</name>
              <description>Global OUT NAK status</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TCTL</name>
              <description>Test control
Others: Reserved</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SGINAK</name>
              <description>Set global IN NAK
Writing 1 to this field sets the Global non-periodic IN NAK.The application uses this bit to send a NAK handshake on all non-periodic IN endpoints.
The application must set this bit only after making sure that the Global IN NAK effective bit in the core interrupt register (GINAKEFF bit in OTG_GINTSTS) is cleared.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CGINAK</name>
              <description>Clear global IN NAK
Writing 1 to this field clears the Global IN NAK.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SGONAK</name>
              <description>Set global OUT NAK
Writing 1 to this field sets the Global OUT NAK.
The application uses this bit to send a NAK handshake on all OUT endpoints.
The application must set the this bit only after making sure that the Global OUT NAK effective bit in the core interrupt register (GONAKEFF bit in OTG_GINTSTS) is cleared.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CGONAK</name>
              <description>Clear global OUT NAK
Writing 1 to this field clears the Global OUT NAK.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>POPRGDNE</name>
              <description>Power-on programming done
The application uses this bit to indicate that register programming is completed after a wakeup from power down mode.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DSBESLRJCT</name>
              <description>Deep sleep BESL reject
Core rejects LPM request with BESL value greater than BESL threshold programmed. NYET response is sent for LPM tokens with BESL value greater than BESL threshold. By default, the deep sleep BESL reject feature is disabled.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DSTS</name>
          <displayName>DSTS</displayName>
          <description>OTG device status register</description>
          <addressOffset>0x808</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000010</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SUSPSTS</name>
              <description>Suspend status
In device mode, this bit is set as long as a suspend condition is detected on the USB. The core enters the suspended state when there is no activity on the USB data lines for a period of 3 ms. The core comes out of the suspend:
When there is an activity on the USB data lines
When the application writes to the remote wakeup signaling bit in the OTG_DCTL register (RWUSIG bit in OTG_DCTL).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ENUMSPD</name>
              <description>Enumerated speed
Indicates the speed at which the OTG_HS controller has come up after speed detection through a chirp sequence.
Others: reserved</description>
              <bitOffset>1</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EERR</name>
              <description>Erratic error
The core sets this bit to report any erratic errors.
Due to erratic errors, the OTG_HS controller goes into suspended state and an interrupt is generated to the application with Early suspend bit of the OTG_GINTSTS register (ESUSP bit in OTG_GINTSTS). If the early suspend is asserted due to an erratic error, the application can only perform a soft disconnect recover.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>FNSOF</name>
              <description>Frame number of the received SOF</description>
              <bitOffset>8</bitOffset>
              <bitWidth>14</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DEVLNSTS</name>
              <description>Device line status
Indicates the current logic level USB data lines.
Bit [23]: Logic level of D+
Bit [22]: Logic level of D-</description>
              <bitOffset>22</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPMSK</name>
          <displayName>DIEPMSK</displayName>
          <description>OTG device IN endpoint common interrupt mask register</description>
          <addressOffset>0x810</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRCM</name>
              <description>Transfer completed interrupt mask</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDM</name>
              <description>Endpoint disabled interrupt mask</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TOM</name>
              <description>Timeout condition mask (Non-isochronous endpoints)</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITTXFEMSK</name>
              <description>IN token received when Tx FIFO empty mask</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPNMM</name>
              <description>IN token received with EP mismatch mask</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPNEM</name>
              <description>IN endpoint NAK effective mask</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAKM</name>
              <description>NAK interrupt mask</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPMSK</name>
          <displayName>DOEPMSK</displayName>
          <description>OTG device OUT endpoint common interrupt mask register</description>
          <addressOffset>0x814</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRCM</name>
              <description>Transfer completed interrupt mask</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDM</name>
              <description>Endpoint disabled interrupt mask</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STUPM</name>
              <description>STUPM: SETUP phase done mask. Applies to control endpoints only.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OTEPDM</name>
              <description>OUT token received when endpoint disabled mask. Applies to control OUT endpoints only.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STSPHSRXM</name>
              <description>Status phase received for control write mask</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OUTPKTERRM</name>
              <description>Out packet error mask</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BERRM</name>
              <description>Babble error interrupt mask</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAKMSK</name>
              <description>NAK interrupt mask</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DAINT</name>
          <displayName>DAINT</displayName>
          <description>OTG device all endpoints interrupt register</description>
          <addressOffset>0x818</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IEPINT</name>
              <description>IN endpoint interrupt bits
One bit per IN endpoint: 
Bit 0 for IN endpoint 0, bit 3 for endpoint 3.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OEPINT</name>
              <description>OUT endpoint interrupt bits
One bit per OUT endpoint: 
Bit 16 for OUT endpoint 0, bit 19 for OUT endpoint 3.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DAINTMSK</name>
          <displayName>DAINTMSK</displayName>
          <description>OTG all endpoints interrupt mask register</description>
          <addressOffset>0x81C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IEPM</name>
              <description>IN EP interrupt mask bits
One bit per IN endpoint:
Bit 0 for IN EP 0, bit 3 for IN EP 3</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OEPM</name>
              <description>OUT EP interrupt mask bits
One per OUT endpoint:
Bit 16 for OUT EP 0, bit 19 for OUT EP 3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DTHRCTL</name>
          <displayName>DTHRCTL</displayName>
          <description>OTG device threshold control register</description>
          <addressOffset>0x830</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>NONISOTHREN</name>
              <description>Nonisochronous IN endpoints threshold enable
When this bit is set, the core enables thresholding for nonisochronous IN endpoints.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ISOTHREN</name>
              <description>ISO IN endpoint threshold enable
When this bit is set, the core enables thresholding for isochronous IN endpoints.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXTHRLEN</name>
              <description>Transmit threshold length
This field specifies the transmit thresholding size in 32-bit words. This field specifies the amount of data in bytes to be in the corresponding endpoint transmit FIFO, before the core can start transmitting on the USB. The threshold length has to be at least eight 32-bit words. This field controls both isochronous and nonisochronous IN endpoint thresholds. The recommended value for TXTHRLEN is to be the same as the programmed AHB burst length (HBSTLEN bit in OTG_GAHBCFG).</description>
              <bitOffset>2</bitOffset>
              <bitWidth>9</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXTHREN</name>
              <description>Receive threshold enable
When this bit is set, the core enables thresholding in the receive direction.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXTHRLEN</name>
              <description>Receive threshold length
This field specifies the receive thresholding size in 32-bit words. This field also specifies the amount of data received on the USB before the core can start transmitting on the AHB. The threshold length has to be at least eight 32-bit words. The recommended value for RXTHRLEN is to be the same as the programmed AHB burst length (HBSTLEN bit in OTG_GAHBCFG).</description>
              <bitOffset>17</bitOffset>
              <bitWidth>9</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ARPEN</name>
              <description>Arbiter parking enable
This bit controls internal DMA arbiter parking for IN endpoints. When thresholding is enabled and this bit is set to one, then the arbiter parks on the IN endpoint for which there is a token received on the USB. This is done to avoid getting into underrun conditions. By default parking is enabled.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPEMPMSK</name>
          <displayName>DIEPEMPMSK</displayName>
          <description>OTG device IN endpoint FIFO empty interrupt mask register</description>
          <addressOffset>0x834</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INEPTXFEM</name>
              <description>IN EP Tx FIFO empty interrupt mask bits
These bits act as mask bits for OTG_DIEPINTx.
TXFE interrupt one bit per IN endpoint:
Bit 0 for IN endpoint 0, bit 3 for IN endpoint 3</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPCTL0_INT_BULK</name>
          <displayName>DIEPCTL0_INT_BULK</displayName>
          <description>OTG device IN endpoint 0 control register</description>
          <addressOffset>0x900</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Endpoint data PID
Applies to interrupt/bulk IN endpoints only.
Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The application uses the SD0PID and SD1PID register fields to program either DATA0 or DATA1 PID.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
It indicates the following:
When either the application or the core sets this bit:
For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there are data available in the Tx FIFO.
For isochronous IN endpoints: The core sends out a zero-length data packet, even if there are data available in the Tx FIFO.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous IN endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFNUM</name>
              <description>Tx FIFO number
These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number.
This field is valid only for IN endpoints.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD0PID</name>
              <description>Set DATA0 PID
Applies to interrupt/bulk IN endpoints only.
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA0.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD1PID</name>
              <description>Set DATA1 PID
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA1.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPCTL0_ISO</name>
          <displayName>DIEPCTL0_ISO</displayName>
          <description>OTG device IN endpoint 0 control register</description>
          <alternateRegister>DIEPCTL0_INT_BULK</alternateRegister>
          <addressOffset>0x900</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EONUM</name>
              <description>Even/odd frame
Applies to isochronous IN endpoints only.
Indicates the frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd frame number in which it intends to transmit/receive isochronous data for this endpoint using the SEVNFRM and SODDFRM fields in this register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
It indicates the following:
When either the application or the core sets this bit:
For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there are data available in the Tx FIFO.
For isochronous IN endpoints: The core sends out a zero-length data packet, even if there are data available in the Tx FIFO.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous IN endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFNUM</name>
              <description>Tx FIFO number
These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number.
This field is valid only for IN endpoints.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SEVNFRM</name>
              <description>Set even frame
Applies to isochronous IN endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to even frame.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SODDFRM</name>
              <description>Set odd frame
Applies to isochronous IN and OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to odd frame.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPINT0</name>
          <displayName>DIEPINT0</displayName>
          <description>OTG device IN endpoint 0 interrupt register</description>
          <addressOffset>0x908</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000080</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed interrupt
This field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDISD</name>
              <description>Endpoint disabled interrupt
This bit indicates that the endpoint is disabled per the applications request.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This is generated only in internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TOC</name>
              <description>Timeout condition
Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITTXFE</name>
              <description>IN token received when Tx FIFO is empty
Indicates that an IN token was received when the associated Tx FIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPNM</name>
              <description>IN token received with EP mismatch
Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPNE</name>
              <description>IN endpoint NAK effective
This bit can be cleared when the application clears the IN endpoint NAK by writing to the CNAK bit in OTG_DIEPCTLx.
This interrupt indicates that the core has sampled the NAK bit set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit set by the application has taken effect in the core.
This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFE</name>
              <description>Transmit FIFO empty
This interrupt is asserted when the Tx FIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the Tx FIFO Empty Level bit in the OTG_GAHBCFG register (TXFELVL bit in OTG_GAHBCFG).</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TXFIFOUDRN</name>
              <description>Transmit Fifo Underrun (TxfifoUndrn)
The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. Dependency: This interrupt is valid only when Thresholding is enabled</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTDRPSTS</name>
              <description>Packet dropped status
This bit indicates to the application that an ISOC OUT packet has been dropped. This bit 
does not have an associated mask bit and does not generate an interrupt.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK input
The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is 
transmitted due to unavailability of data in the Tx FIFO.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPTSIZ0</name>
          <displayName>DIEPTSIZ0</displayName>
          <description>OTG device IN endpoint 0 transfer size register</description>
          <addressOffset>0x910</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
Indicates the transfer size in bytes for endpoint 0. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be set to the maximum packet size of the endpoint, to be interrupted at the end of each packet.
The core decrements this field every time a packet from the external memory is written to the Tx FIFO.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
Indicates the total number of USB packets that constitute the transfer size amount of data for endpoint 0.
This field is decremented every time a packet (maximum size or short packet) is read from the Tx FIFO.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPDMA0</name>
          <displayName>DIEPDMA0</displayName>
          <description>OTG device IN endpoint 0 DMA address register</description>
          <addressOffset>0x914</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA Address
This field holds the start address in the external memory from which the data for the endpoint must be fetched. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DTXFSTS0</name>
          <displayName>DTXFSTS0</displayName>
          <description>OTG device IN endpoint transmit FIFO status register</description>
          <addressOffset>0x918</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000200</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INEPTFSAV</name>
              <description>IN endpoint Tx FIFO space available
Indicates the amount of free space available in the endpoint Tx FIFO.
Values are in terms of 32-bit words:
0xn: n words available
Others: Reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPCTL1_INT_BULK</name>
          <displayName>DIEPCTL1_INT_BULK</displayName>
          <description>OTG device IN endpoint 1 control register</description>
          <addressOffset>0x920</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Endpoint data PID
Applies to interrupt/bulk IN endpoints only.
Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The application uses the SD0PID and SD1PID register fields to program either DATA0 or DATA1 PID.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
It indicates the following:
When either the application or the core sets this bit:
For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there are data available in the Tx FIFO.
For isochronous IN endpoints: The core sends out a zero-length data packet, even if there are data available in the Tx FIFO.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous IN endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFNUM</name>
              <description>Tx FIFO number
These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number.
This field is valid only for IN endpoints.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD0PID</name>
              <description>Set DATA0 PID
Applies to interrupt/bulk IN endpoints only.
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA0.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD1PID</name>
              <description>Set DATA1 PID
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA1.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPCTL1_ISO</name>
          <displayName>DIEPCTL1_ISO</displayName>
          <description>OTG device IN endpoint 1 control register</description>
          <alternateRegister>DIEPCTL1_INT_BULK</alternateRegister>
          <addressOffset>0x920</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EONUM</name>
              <description>Even/odd frame
Applies to isochronous IN endpoints only.
Indicates the frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd frame number in which it intends to transmit/receive isochronous data for this endpoint using the SEVNFRM and SODDFRM fields in this register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
It indicates the following:
When either the application or the core sets this bit:
For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there are data available in the Tx FIFO.
For isochronous IN endpoints: The core sends out a zero-length data packet, even if there are data available in the Tx FIFO.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous IN endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFNUM</name>
              <description>Tx FIFO number
These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number.
This field is valid only for IN endpoints.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SEVNFRM</name>
              <description>Set even frame
Applies to isochronous IN endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to even frame.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SODDFRM</name>
              <description>Set odd frame
Applies to isochronous IN and OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to odd frame.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPINT1</name>
          <displayName>DIEPINT1</displayName>
          <description>OTG device IN endpoint 1 interrupt register</description>
          <addressOffset>0x928</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000080</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed interrupt
This field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDISD</name>
              <description>Endpoint disabled interrupt
This bit indicates that the endpoint is disabled per the applications request.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This is generated only in internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TOC</name>
              <description>Timeout condition
Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITTXFE</name>
              <description>IN token received when Tx FIFO is empty
Indicates that an IN token was received when the associated Tx FIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPNM</name>
              <description>IN token received with EP mismatch
Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPNE</name>
              <description>IN endpoint NAK effective
This bit can be cleared when the application clears the IN endpoint NAK by writing to the CNAK bit in OTG_DIEPCTLx.
This interrupt indicates that the core has sampled the NAK bit set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit set by the application has taken effect in the core.
This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFE</name>
              <description>Transmit FIFO empty
This interrupt is asserted when the Tx FIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the Tx FIFO Empty Level bit in the OTG_GAHBCFG register (TXFELVL bit in OTG_GAHBCFG).</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TXFIFOUDRN</name>
              <description>Transmit Fifo Underrun (TxfifoUndrn)
The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. Dependency: This interrupt is valid only when Thresholding is enabled</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTDRPSTS</name>
              <description>Packet dropped status
This bit indicates to the application that an ISOC OUT packet has been dropped. This bit 
does not have an associated mask bit and does not generate an interrupt.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK input
The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is 
transmitted due to unavailability of data in the Tx FIFO.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPTSIZ1</name>
          <displayName>DIEPTSIZ1</displayName>
          <description>OTG device IN endpoint 1 transfer size register</description>
          <addressOffset>0x930</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
This field contains the transfer size in bytes for the current endpoint. The core only interrupts the application after it has exhausted the transfer size amount of data. The transfer size can be set to the maximum packet size of the endpoint, to be interrupted at the end of each packet.
The core decrements this field every time a packet from the external memory is written to the Tx FIFO.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
Indicates the total number of USB packets that constitute the transfer size amount of data for this endpoint. 
This field is decremented every time a packet (maximum size or short packet) is read from the Tx FIFO.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multi count
For periodic IN endpoints, this field indicates the number of packets that must be transmitted per frame on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPDMA1</name>
          <displayName>DIEPDMA1</displayName>
          <description>OTG device IN endpoint 1 DMA address register</description>
          <addressOffset>0x934</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA Address
This field holds the start address in the external memory from which the data for the endpoint must be fetched. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DTXFSTS1</name>
          <displayName>DTXFSTS1</displayName>
          <description>OTG device IN endpoint transmit FIFO status register</description>
          <addressOffset>0x938</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000200</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INEPTFSAV</name>
              <description>IN endpoint Tx FIFO space available
Indicates the amount of free space available in the endpoint Tx FIFO.
Values are in terms of 32-bit words:
0xn: n words available
Others: Reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPCTL2_INT_BULK</name>
          <displayName>DIEPCTL2_INT_BULK</displayName>
          <description>OTG device IN endpoint 2 control register</description>
          <addressOffset>0x940</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Endpoint data PID
Applies to interrupt/bulk IN endpoints only.
Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The application uses the SD0PID and SD1PID register fields to program either DATA0 or DATA1 PID.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
It indicates the following:
When either the application or the core sets this bit:
For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there are data available in the Tx FIFO.
For isochronous IN endpoints: The core sends out a zero-length data packet, even if there are data available in the Tx FIFO.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous IN endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFNUM</name>
              <description>Tx FIFO number
These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number.
This field is valid only for IN endpoints.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD0PID</name>
              <description>Set DATA0 PID
Applies to interrupt/bulk IN endpoints only.
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA0.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD1PID</name>
              <description>Set DATA1 PID
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA1.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPCTL2_ISO</name>
          <displayName>DIEPCTL2_ISO</displayName>
          <description>OTG device IN endpoint 2 control register</description>
          <alternateRegister>DIEPCTL2_INT_BULK</alternateRegister>
          <addressOffset>0x940</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EONUM</name>
              <description>Even/odd frame
Applies to isochronous IN endpoints only.
Indicates the frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd frame number in which it intends to transmit/receive isochronous data for this endpoint using the SEVNFRM and SODDFRM fields in this register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
It indicates the following:
When either the application or the core sets this bit:
For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there are data available in the Tx FIFO.
For isochronous IN endpoints: The core sends out a zero-length data packet, even if there are data available in the Tx FIFO.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous IN endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFNUM</name>
              <description>Tx FIFO number
These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number.
This field is valid only for IN endpoints.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SEVNFRM</name>
              <description>Set even frame
Applies to isochronous IN endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to even frame.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SODDFRM</name>
              <description>Set odd frame
Applies to isochronous IN and OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to odd frame.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPINT2</name>
          <displayName>DIEPINT2</displayName>
          <description>OTG device IN endpoint 2 interrupt register</description>
          <addressOffset>0x948</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000080</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed interrupt
This field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDISD</name>
              <description>Endpoint disabled interrupt
This bit indicates that the endpoint is disabled per the applications request.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This is generated only in internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TOC</name>
              <description>Timeout condition
Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITTXFE</name>
              <description>IN token received when Tx FIFO is empty
Indicates that an IN token was received when the associated Tx FIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPNM</name>
              <description>IN token received with EP mismatch
Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPNE</name>
              <description>IN endpoint NAK effective
This bit can be cleared when the application clears the IN endpoint NAK by writing to the CNAK bit in OTG_DIEPCTLx.
This interrupt indicates that the core has sampled the NAK bit set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit set by the application has taken effect in the core.
This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFE</name>
              <description>Transmit FIFO empty
This interrupt is asserted when the Tx FIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the Tx FIFO Empty Level bit in the OTG_GAHBCFG register (TXFELVL bit in OTG_GAHBCFG).</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TXFIFOUDRN</name>
              <description>Transmit Fifo Underrun (TxfifoUndrn)
The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. Dependency: This interrupt is valid only when Thresholding is enabled</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTDRPSTS</name>
              <description>Packet dropped status
This bit indicates to the application that an ISOC OUT packet has been dropped. This bit 
does not have an associated mask bit and does not generate an interrupt.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK input
The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is 
transmitted due to unavailability of data in the Tx FIFO.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPTSIZ2</name>
          <displayName>DIEPTSIZ2</displayName>
          <description>OTG device IN endpoint 2 transfer size register</description>
          <addressOffset>0x950</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
This field contains the transfer size in bytes for the current endpoint. The core only interrupts the application after it has exhausted the transfer size amount of data. The transfer size can be set to the maximum packet size of the endpoint, to be interrupted at the end of each packet.
The core decrements this field every time a packet from the external memory is written to the Tx FIFO.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
Indicates the total number of USB packets that constitute the transfer size amount of data for this endpoint. 
This field is decremented every time a packet (maximum size or short packet) is read from the Tx FIFO.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multi count
For periodic IN endpoints, this field indicates the number of packets that must be transmitted per frame on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPDMA2</name>
          <displayName>DIEPDMA2</displayName>
          <description>OTG device IN endpoint 2 DMA address register</description>
          <addressOffset>0x954</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA Address
This field holds the start address in the external memory from which the data for the endpoint must be fetched. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DTXFSTS2</name>
          <displayName>DTXFSTS2</displayName>
          <description>OTG device IN endpoint transmit FIFO status register</description>
          <addressOffset>0x958</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000200</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INEPTFSAV</name>
              <description>IN endpoint Tx FIFO space available
Indicates the amount of free space available in the endpoint Tx FIFO.
Values are in terms of 32-bit words:
0xn: n words available
Others: Reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPCTL3_INT_BULK</name>
          <displayName>DIEPCTL3_INT_BULK</displayName>
          <description>OTG device IN endpoint 3 control register</description>
          <addressOffset>0x960</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Endpoint data PID
Applies to interrupt/bulk IN endpoints only.
Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The application uses the SD0PID and SD1PID register fields to program either DATA0 or DATA1 PID.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
It indicates the following:
When either the application or the core sets this bit:
For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there are data available in the Tx FIFO.
For isochronous IN endpoints: The core sends out a zero-length data packet, even if there are data available in the Tx FIFO.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous IN endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFNUM</name>
              <description>Tx FIFO number
These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number.
This field is valid only for IN endpoints.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD0PID</name>
              <description>Set DATA0 PID
Applies to interrupt/bulk IN endpoints only.
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA0.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD1PID</name>
              <description>Set DATA1 PID
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA1.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPCTL3_ISO</name>
          <displayName>DIEPCTL3_ISO</displayName>
          <description>OTG device IN endpoint 3 control register</description>
          <alternateRegister>DIEPCTL3_INT_BULK</alternateRegister>
          <addressOffset>0x960</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EONUM</name>
              <description>Even/odd frame
Applies to isochronous IN endpoints only.
Indicates the frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd frame number in which it intends to transmit/receive isochronous data for this endpoint using the SEVNFRM and SODDFRM fields in this register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
It indicates the following:
When either the application or the core sets this bit:
For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there are data available in the Tx FIFO.
For isochronous IN endpoints: The core sends out a zero-length data packet, even if there are data available in the Tx FIFO.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous IN endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFNUM</name>
              <description>Tx FIFO number
These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number.
This field is valid only for IN endpoints.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SEVNFRM</name>
              <description>Set even frame
Applies to isochronous IN endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to even frame.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SODDFRM</name>
              <description>Set odd frame
Applies to isochronous IN and OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to odd frame.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPINT3</name>
          <displayName>DIEPINT3</displayName>
          <description>OTG device IN endpoint 3 interrupt register</description>
          <addressOffset>0x968</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000080</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed interrupt
This field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDISD</name>
              <description>Endpoint disabled interrupt
This bit indicates that the endpoint is disabled per the applications request.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This is generated only in internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TOC</name>
              <description>Timeout condition
Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITTXFE</name>
              <description>IN token received when Tx FIFO is empty
Indicates that an IN token was received when the associated Tx FIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPNM</name>
              <description>IN token received with EP mismatch
Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPNE</name>
              <description>IN endpoint NAK effective
This bit can be cleared when the application clears the IN endpoint NAK by writing to the CNAK bit in OTG_DIEPCTLx.
This interrupt indicates that the core has sampled the NAK bit set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit set by the application has taken effect in the core.
This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFE</name>
              <description>Transmit FIFO empty
This interrupt is asserted when the Tx FIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the Tx FIFO Empty Level bit in the OTG_GAHBCFG register (TXFELVL bit in OTG_GAHBCFG).</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TXFIFOUDRN</name>
              <description>Transmit Fifo Underrun (TxfifoUndrn)
The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. Dependency: This interrupt is valid only when Thresholding is enabled</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTDRPSTS</name>
              <description>Packet dropped status
This bit indicates to the application that an ISOC OUT packet has been dropped. This bit 
does not have an associated mask bit and does not generate an interrupt.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK input
The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is 
transmitted due to unavailability of data in the Tx FIFO.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPTSIZ3</name>
          <displayName>DIEPTSIZ3</displayName>
          <description>OTG device IN endpoint 3 transfer size register</description>
          <addressOffset>0x970</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
This field contains the transfer size in bytes for the current endpoint. The core only interrupts the application after it has exhausted the transfer size amount of data. The transfer size can be set to the maximum packet size of the endpoint, to be interrupted at the end of each packet.
The core decrements this field every time a packet from the external memory is written to the Tx FIFO.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
Indicates the total number of USB packets that constitute the transfer size amount of data for this endpoint. 
This field is decremented every time a packet (maximum size or short packet) is read from the Tx FIFO.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multi count
For periodic IN endpoints, this field indicates the number of packets that must be transmitted per frame on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPDMA3</name>
          <displayName>DIEPDMA3</displayName>
          <description>OTG device IN endpoint 3 DMA address register</description>
          <addressOffset>0x974</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA Address
This field holds the start address in the external memory from which the data for the endpoint must be fetched. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DTXFSTS3</name>
          <displayName>DTXFSTS3</displayName>
          <description>OTG device IN endpoint transmit FIFO status register</description>
          <addressOffset>0x978</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000200</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INEPTFSAV</name>
              <description>IN endpoint Tx FIFO space available
Indicates the amount of free space available in the endpoint Tx FIFO.
Values are in terms of 32-bit words:
0xn: n words available
Others: Reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPCTL4_INT_BULK</name>
          <displayName>DIEPCTL4_INT_BULK</displayName>
          <description>OTG device IN endpoint 4 control register</description>
          <addressOffset>0x980</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Endpoint data PID
Applies to interrupt/bulk IN endpoints only.
Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The application uses the SD0PID and SD1PID register fields to program either DATA0 or DATA1 PID.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
It indicates the following:
When either the application or the core sets this bit:
For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there are data available in the Tx FIFO.
For isochronous IN endpoints: The core sends out a zero-length data packet, even if there are data available in the Tx FIFO.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous IN endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFNUM</name>
              <description>Tx FIFO number
These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number.
This field is valid only for IN endpoints.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD0PID</name>
              <description>Set DATA0 PID
Applies to interrupt/bulk IN endpoints only.
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA0.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD1PID</name>
              <description>Set DATA1 PID
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA1.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPCTL4_ISO</name>
          <displayName>DIEPCTL4_ISO</displayName>
          <description>OTG device IN endpoint 4 control register</description>
          <alternateRegister>DIEPCTL4_INT_BULK</alternateRegister>
          <addressOffset>0x980</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EONUM</name>
              <description>Even/odd frame
Applies to isochronous IN endpoints only.
Indicates the frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd frame number in which it intends to transmit/receive isochronous data for this endpoint using the SEVNFRM and SODDFRM fields in this register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
It indicates the following:
When either the application or the core sets this bit:
For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there are data available in the Tx FIFO.
For isochronous IN endpoints: The core sends out a zero-length data packet, even if there are data available in the Tx FIFO.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous IN endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFNUM</name>
              <description>Tx FIFO number
These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number.
This field is valid only for IN endpoints.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SEVNFRM</name>
              <description>Set even frame
Applies to isochronous IN endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to even frame.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SODDFRM</name>
              <description>Set odd frame
Applies to isochronous IN and OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to odd frame.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPINT4</name>
          <displayName>DIEPINT4</displayName>
          <description>OTG device IN endpoint 4 interrupt register</description>
          <addressOffset>0x988</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000080</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed interrupt
This field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDISD</name>
              <description>Endpoint disabled interrupt
This bit indicates that the endpoint is disabled per the applications request.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This is generated only in internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TOC</name>
              <description>Timeout condition
Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITTXFE</name>
              <description>IN token received when Tx FIFO is empty
Indicates that an IN token was received when the associated Tx FIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPNM</name>
              <description>IN token received with EP mismatch
Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPNE</name>
              <description>IN endpoint NAK effective
This bit can be cleared when the application clears the IN endpoint NAK by writing to the CNAK bit in OTG_DIEPCTLx.
This interrupt indicates that the core has sampled the NAK bit set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit set by the application has taken effect in the core.
This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFE</name>
              <description>Transmit FIFO empty
This interrupt is asserted when the Tx FIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the Tx FIFO Empty Level bit in the OTG_GAHBCFG register (TXFELVL bit in OTG_GAHBCFG).</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TXFIFOUDRN</name>
              <description>Transmit Fifo Underrun (TxfifoUndrn)
The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. Dependency: This interrupt is valid only when Thresholding is enabled</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTDRPSTS</name>
              <description>Packet dropped status
This bit indicates to the application that an ISOC OUT packet has been dropped. This bit 
does not have an associated mask bit and does not generate an interrupt.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK input
The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is 
transmitted due to unavailability of data in the Tx FIFO.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPTSIZ4</name>
          <displayName>DIEPTSIZ4</displayName>
          <description>OTG device IN endpoint 4 transfer size register</description>
          <addressOffset>0x990</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
This field contains the transfer size in bytes for the current endpoint. The core only interrupts the application after it has exhausted the transfer size amount of data. The transfer size can be set to the maximum packet size of the endpoint, to be interrupted at the end of each packet.
The core decrements this field every time a packet from the external memory is written to the Tx FIFO.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
Indicates the total number of USB packets that constitute the transfer size amount of data for this endpoint. 
This field is decremented every time a packet (maximum size or short packet) is read from the Tx FIFO.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multi count
For periodic IN endpoints, this field indicates the number of packets that must be transmitted per frame on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPDMA4</name>
          <displayName>DIEPDMA4</displayName>
          <description>OTG device IN endpoint 4 DMA address register</description>
          <addressOffset>0x994</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA Address
This field holds the start address in the external memory from which the data for the endpoint must be fetched. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DTXFSTS4</name>
          <displayName>DTXFSTS4</displayName>
          <description>OTG device IN endpoint transmit FIFO status register</description>
          <addressOffset>0x998</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000200</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INEPTFSAV</name>
              <description>IN endpoint Tx FIFO space available
Indicates the amount of free space available in the endpoint Tx FIFO.
Values are in terms of 32-bit words:
0xn: n words available
Others: Reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPCTL5_INT_BULK</name>
          <displayName>DIEPCTL5_INT_BULK</displayName>
          <description>OTG device IN endpoint 5 control register</description>
          <addressOffset>0x9A0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Endpoint data PID
Applies to interrupt/bulk IN endpoints only.
Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The application uses the SD0PID and SD1PID register fields to program either DATA0 or DATA1 PID.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
It indicates the following:
When either the application or the core sets this bit:
For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there are data available in the Tx FIFO.
For isochronous IN endpoints: The core sends out a zero-length data packet, even if there are data available in the Tx FIFO.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous IN endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFNUM</name>
              <description>Tx FIFO number
These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number.
This field is valid only for IN endpoints.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD0PID</name>
              <description>Set DATA0 PID
Applies to interrupt/bulk IN endpoints only.
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA0.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD1PID</name>
              <description>Set DATA1 PID
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA1.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPCTL5_ISO</name>
          <displayName>DIEPCTL5_ISO</displayName>
          <description>OTG device IN endpoint 5 control register</description>
          <alternateRegister>DIEPCTL5_INT_BULK</alternateRegister>
          <addressOffset>0x9A0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EONUM</name>
              <description>Even/odd frame
Applies to isochronous IN endpoints only.
Indicates the frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd frame number in which it intends to transmit/receive isochronous data for this endpoint using the SEVNFRM and SODDFRM fields in this register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
It indicates the following:
When either the application or the core sets this bit:
For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there are data available in the Tx FIFO.
For isochronous IN endpoints: The core sends out a zero-length data packet, even if there are data available in the Tx FIFO.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous IN endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFNUM</name>
              <description>Tx FIFO number
These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number.
This field is valid only for IN endpoints.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SEVNFRM</name>
              <description>Set even frame
Applies to isochronous IN endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to even frame.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SODDFRM</name>
              <description>Set odd frame
Applies to isochronous IN and OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to odd frame.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPINT5</name>
          <displayName>DIEPINT5</displayName>
          <description>OTG device IN endpoint 5 interrupt register</description>
          <addressOffset>0x9A8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000080</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed interrupt
This field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDISD</name>
              <description>Endpoint disabled interrupt
This bit indicates that the endpoint is disabled per the applications request.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This is generated only in internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TOC</name>
              <description>Timeout condition
Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITTXFE</name>
              <description>IN token received when Tx FIFO is empty
Indicates that an IN token was received when the associated Tx FIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPNM</name>
              <description>IN token received with EP mismatch
Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPNE</name>
              <description>IN endpoint NAK effective
This bit can be cleared when the application clears the IN endpoint NAK by writing to the CNAK bit in OTG_DIEPCTLx.
This interrupt indicates that the core has sampled the NAK bit set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit set by the application has taken effect in the core.
This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFE</name>
              <description>Transmit FIFO empty
This interrupt is asserted when the Tx FIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the Tx FIFO Empty Level bit in the OTG_GAHBCFG register (TXFELVL bit in OTG_GAHBCFG).</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TXFIFOUDRN</name>
              <description>Transmit Fifo Underrun (TxfifoUndrn)
The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. Dependency: This interrupt is valid only when Thresholding is enabled</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTDRPSTS</name>
              <description>Packet dropped status
This bit indicates to the application that an ISOC OUT packet has been dropped. This bit 
does not have an associated mask bit and does not generate an interrupt.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK input
The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is 
transmitted due to unavailability of data in the Tx FIFO.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPTSIZ5</name>
          <displayName>DIEPTSIZ5</displayName>
          <description>OTG device IN endpoint 5 transfer size register</description>
          <addressOffset>0x9B0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
This field contains the transfer size in bytes for the current endpoint. The core only interrupts the application after it has exhausted the transfer size amount of data. The transfer size can be set to the maximum packet size of the endpoint, to be interrupted at the end of each packet.
The core decrements this field every time a packet from the external memory is written to the Tx FIFO.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
Indicates the total number of USB packets that constitute the transfer size amount of data for this endpoint. 
This field is decremented every time a packet (maximum size or short packet) is read from the Tx FIFO.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multi count
For periodic IN endpoints, this field indicates the number of packets that must be transmitted per frame on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPDMA5</name>
          <displayName>DIEPDMA5</displayName>
          <description>OTG device IN endpoint 5 DMA address register</description>
          <addressOffset>0x9B4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA Address
This field holds the start address in the external memory from which the data for the endpoint must be fetched. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DTXFSTS5</name>
          <displayName>DTXFSTS5</displayName>
          <description>OTG device IN endpoint transmit FIFO status register</description>
          <addressOffset>0x9B8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000200</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INEPTFSAV</name>
              <description>IN endpoint Tx FIFO space available
Indicates the amount of free space available in the endpoint Tx FIFO.
Values are in terms of 32-bit words:
0xn: n words available
Others: Reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPCTL6_INT_BULK</name>
          <displayName>DIEPCTL6_INT_BULK</displayName>
          <description>OTG device IN endpoint 6 control register</description>
          <addressOffset>0x9C0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Endpoint data PID
Applies to interrupt/bulk IN endpoints only.
Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The application uses the SD0PID and SD1PID register fields to program either DATA0 or DATA1 PID.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
It indicates the following:
When either the application or the core sets this bit:
For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there are data available in the Tx FIFO.
For isochronous IN endpoints: The core sends out a zero-length data packet, even if there are data available in the Tx FIFO.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous IN endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFNUM</name>
              <description>Tx FIFO number
These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number.
This field is valid only for IN endpoints.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD0PID</name>
              <description>Set DATA0 PID
Applies to interrupt/bulk IN endpoints only.
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA0.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD1PID</name>
              <description>Set DATA1 PID
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA1.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPCTL6_ISO</name>
          <displayName>DIEPCTL6_ISO</displayName>
          <description>OTG device IN endpoint 6 control register</description>
          <alternateRegister>DIEPCTL6_INT_BULK</alternateRegister>
          <addressOffset>0x9C0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EONUM</name>
              <description>Even/odd frame
Applies to isochronous IN endpoints only.
Indicates the frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd frame number in which it intends to transmit/receive isochronous data for this endpoint using the SEVNFRM and SODDFRM fields in this register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
It indicates the following:
When either the application or the core sets this bit:
For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there are data available in the Tx FIFO.
For isochronous IN endpoints: The core sends out a zero-length data packet, even if there are data available in the Tx FIFO.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous IN endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFNUM</name>
              <description>Tx FIFO number
These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number.
This field is valid only for IN endpoints.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SEVNFRM</name>
              <description>Set even frame
Applies to isochronous IN endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to even frame.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SODDFRM</name>
              <description>Set odd frame
Applies to isochronous IN and OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to odd frame.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPINT6</name>
          <displayName>DIEPINT6</displayName>
          <description>OTG device IN endpoint 6 interrupt register</description>
          <addressOffset>0x9C8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000080</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed interrupt
This field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDISD</name>
              <description>Endpoint disabled interrupt
This bit indicates that the endpoint is disabled per the applications request.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This is generated only in internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TOC</name>
              <description>Timeout condition
Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITTXFE</name>
              <description>IN token received when Tx FIFO is empty
Indicates that an IN token was received when the associated Tx FIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPNM</name>
              <description>IN token received with EP mismatch
Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPNE</name>
              <description>IN endpoint NAK effective
This bit can be cleared when the application clears the IN endpoint NAK by writing to the CNAK bit in OTG_DIEPCTLx.
This interrupt indicates that the core has sampled the NAK bit set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit set by the application has taken effect in the core.
This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFE</name>
              <description>Transmit FIFO empty
This interrupt is asserted when the Tx FIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the Tx FIFO Empty Level bit in the OTG_GAHBCFG register (TXFELVL bit in OTG_GAHBCFG).</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TXFIFOUDRN</name>
              <description>Transmit Fifo Underrun (TxfifoUndrn)
The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. Dependency: This interrupt is valid only when Thresholding is enabled</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTDRPSTS</name>
              <description>Packet dropped status
This bit indicates to the application that an ISOC OUT packet has been dropped. This bit 
does not have an associated mask bit and does not generate an interrupt.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK input
The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is 
transmitted due to unavailability of data in the Tx FIFO.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPTSIZ6</name>
          <displayName>DIEPTSIZ6</displayName>
          <description>OTG device IN endpoint 6 transfer size register</description>
          <addressOffset>0x9D0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
This field contains the transfer size in bytes for the current endpoint. The core only interrupts the application after it has exhausted the transfer size amount of data. The transfer size can be set to the maximum packet size of the endpoint, to be interrupted at the end of each packet.
The core decrements this field every time a packet from the external memory is written to the Tx FIFO.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
Indicates the total number of USB packets that constitute the transfer size amount of data for this endpoint. 
This field is decremented every time a packet (maximum size or short packet) is read from the Tx FIFO.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multi count
For periodic IN endpoints, this field indicates the number of packets that must be transmitted per frame on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPDMA6</name>
          <displayName>DIEPDMA6</displayName>
          <description>OTG device IN endpoint 6 DMA address register</description>
          <addressOffset>0x9D4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA Address
This field holds the start address in the external memory from which the data for the endpoint must be fetched. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DTXFSTS6</name>
          <displayName>DTXFSTS6</displayName>
          <description>OTG device IN endpoint transmit FIFO status register</description>
          <addressOffset>0x9D8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000200</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INEPTFSAV</name>
              <description>IN endpoint Tx FIFO space available
Indicates the amount of free space available in the endpoint Tx FIFO.
Values are in terms of 32-bit words:
0xn: n words available
Others: Reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPCTL7_INT_BULK</name>
          <displayName>DIEPCTL7_INT_BULK</displayName>
          <description>OTG device IN endpoint 7 control register</description>
          <addressOffset>0x9E0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Endpoint data PID
Applies to interrupt/bulk IN endpoints only.
Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The application uses the SD0PID and SD1PID register fields to program either DATA0 or DATA1 PID.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
It indicates the following:
When either the application or the core sets this bit:
For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there are data available in the Tx FIFO.
For isochronous IN endpoints: The core sends out a zero-length data packet, even if there are data available in the Tx FIFO.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous IN endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFNUM</name>
              <description>Tx FIFO number
These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number.
This field is valid only for IN endpoints.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD0PID</name>
              <description>Set DATA0 PID
Applies to interrupt/bulk IN endpoints only.
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA0.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD1PID</name>
              <description>Set DATA1 PID
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA1.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPCTL7_ISO</name>
          <displayName>DIEPCTL7_ISO</displayName>
          <description>OTG device IN endpoint 7 control register</description>
          <alternateRegister>DIEPCTL7_INT_BULK</alternateRegister>
          <addressOffset>0x9E0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EONUM</name>
              <description>Even/odd frame
Applies to isochronous IN endpoints only.
Indicates the frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd frame number in which it intends to transmit/receive isochronous data for this endpoint using the SEVNFRM and SODDFRM fields in this register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
It indicates the following:
When either the application or the core sets this bit:
For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there are data available in the Tx FIFO.
For isochronous IN endpoints: The core sends out a zero-length data packet, even if there are data available in the Tx FIFO.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous IN endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFNUM</name>
              <description>Tx FIFO number
These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number.
This field is valid only for IN endpoints.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SEVNFRM</name>
              <description>Set even frame
Applies to isochronous IN endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to even frame.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SODDFRM</name>
              <description>Set odd frame
Applies to isochronous IN and OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to odd frame.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPINT7</name>
          <displayName>DIEPINT7</displayName>
          <description>OTG device IN endpoint 7 interrupt register</description>
          <addressOffset>0x9E8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000080</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed interrupt
This field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDISD</name>
              <description>Endpoint disabled interrupt
This bit indicates that the endpoint is disabled per the applications request.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This is generated only in internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TOC</name>
              <description>Timeout condition
Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITTXFE</name>
              <description>IN token received when Tx FIFO is empty
Indicates that an IN token was received when the associated Tx FIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPNM</name>
              <description>IN token received with EP mismatch
Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPNE</name>
              <description>IN endpoint NAK effective
This bit can be cleared when the application clears the IN endpoint NAK by writing to the CNAK bit in OTG_DIEPCTLx.
This interrupt indicates that the core has sampled the NAK bit set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit set by the application has taken effect in the core.
This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFE</name>
              <description>Transmit FIFO empty
This interrupt is asserted when the Tx FIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the Tx FIFO Empty Level bit in the OTG_GAHBCFG register (TXFELVL bit in OTG_GAHBCFG).</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TXFIFOUDRN</name>
              <description>Transmit Fifo Underrun (TxfifoUndrn)
The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. Dependency: This interrupt is valid only when Thresholding is enabled</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTDRPSTS</name>
              <description>Packet dropped status
This bit indicates to the application that an ISOC OUT packet has been dropped. This bit 
does not have an associated mask bit and does not generate an interrupt.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK input
The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is 
transmitted due to unavailability of data in the Tx FIFO.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPTSIZ7</name>
          <displayName>DIEPTSIZ7</displayName>
          <description>OTG device IN endpoint 7 transfer size register</description>
          <addressOffset>0x9F0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
This field contains the transfer size in bytes for the current endpoint. The core only interrupts the application after it has exhausted the transfer size amount of data. The transfer size can be set to the maximum packet size of the endpoint, to be interrupted at the end of each packet.
The core decrements this field every time a packet from the external memory is written to the Tx FIFO.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
Indicates the total number of USB packets that constitute the transfer size amount of data for this endpoint. 
This field is decremented every time a packet (maximum size or short packet) is read from the Tx FIFO.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multi count
For periodic IN endpoints, this field indicates the number of packets that must be transmitted per frame on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPDMA7</name>
          <displayName>DIEPDMA7</displayName>
          <description>OTG device IN endpoint 7 DMA address register</description>
          <addressOffset>0x9F4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA Address
This field holds the start address in the external memory from which the data for the endpoint must be fetched. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DTXFSTS7</name>
          <displayName>DTXFSTS7</displayName>
          <description>OTG device IN endpoint transmit FIFO status register</description>
          <addressOffset>0x9F8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000200</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INEPTFSAV</name>
              <description>IN endpoint Tx FIFO space available
Indicates the amount of free space available in the endpoint Tx FIFO.
Values are in terms of 32-bit words:
0xn: n words available
Others: Reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPCTL8_INT_BULK</name>
          <displayName>DIEPCTL8_INT_BULK</displayName>
          <description>OTG device IN endpoint 8 control register</description>
          <addressOffset>0xA00</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Endpoint data PID
Applies to interrupt/bulk IN endpoints only.
Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The application uses the SD0PID and SD1PID register fields to program either DATA0 or DATA1 PID.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
It indicates the following:
When either the application or the core sets this bit:
For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there are data available in the Tx FIFO.
For isochronous IN endpoints: The core sends out a zero-length data packet, even if there are data available in the Tx FIFO.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous IN endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFNUM</name>
              <description>Tx FIFO number
These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number.
This field is valid only for IN endpoints.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD0PID</name>
              <description>Set DATA0 PID
Applies to interrupt/bulk IN endpoints only.
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA0.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD1PID</name>
              <description>Set DATA1 PID
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA1.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPCTL8_ISO</name>
          <displayName>DIEPCTL8_ISO</displayName>
          <description>OTG device IN endpoint 8 control register</description>
          <alternateRegister>DIEPCTL8_INT_BULK</alternateRegister>
          <addressOffset>0xA00</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EONUM</name>
              <description>Even/odd frame
Applies to isochronous IN endpoints only.
Indicates the frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd frame number in which it intends to transmit/receive isochronous data for this endpoint using the SEVNFRM and SODDFRM fields in this register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
It indicates the following:
When either the application or the core sets this bit:
For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there are data available in the Tx FIFO.
For isochronous IN endpoints: The core sends out a zero-length data packet, even if there are data available in the Tx FIFO.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous IN endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFNUM</name>
              <description>Tx FIFO number
These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number.
This field is valid only for IN endpoints.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SEVNFRM</name>
              <description>Set even frame
Applies to isochronous IN endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to even frame.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SODDFRM</name>
              <description>Set odd frame
Applies to isochronous IN and OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to odd frame.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPINT8</name>
          <displayName>DIEPINT8</displayName>
          <description>OTG device IN endpoint 8 interrupt register</description>
          <addressOffset>0xA08</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000080</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed interrupt
This field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDISD</name>
              <description>Endpoint disabled interrupt
This bit indicates that the endpoint is disabled per the applications request.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This is generated only in internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TOC</name>
              <description>Timeout condition
Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITTXFE</name>
              <description>IN token received when Tx FIFO is empty
Indicates that an IN token was received when the associated Tx FIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPNM</name>
              <description>IN token received with EP mismatch
Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INEPNE</name>
              <description>IN endpoint NAK effective
This bit can be cleared when the application clears the IN endpoint NAK by writing to the CNAK bit in OTG_DIEPCTLx.
This interrupt indicates that the core has sampled the NAK bit set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit set by the application has taken effect in the core.
This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFE</name>
              <description>Transmit FIFO empty
This interrupt is asserted when the Tx FIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the Tx FIFO Empty Level bit in the OTG_GAHBCFG register (TXFELVL bit in OTG_GAHBCFG).</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TXFIFOUDRN</name>
              <description>Transmit Fifo Underrun (TxfifoUndrn)
The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. Dependency: This interrupt is valid only when Thresholding is enabled</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTDRPSTS</name>
              <description>Packet dropped status
This bit indicates to the application that an ISOC OUT packet has been dropped. This bit 
does not have an associated mask bit and does not generate an interrupt.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK input
The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is 
transmitted due to unavailability of data in the Tx FIFO.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPTSIZ8</name>
          <displayName>DIEPTSIZ8</displayName>
          <description>OTG device IN endpoint 8 transfer size register</description>
          <addressOffset>0xA10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
This field contains the transfer size in bytes for the current endpoint. The core only interrupts the application after it has exhausted the transfer size amount of data. The transfer size can be set to the maximum packet size of the endpoint, to be interrupted at the end of each packet.
The core decrements this field every time a packet from the external memory is written to the Tx FIFO.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
Indicates the total number of USB packets that constitute the transfer size amount of data for this endpoint. 
This field is decremented every time a packet (maximum size or short packet) is read from the Tx FIFO.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCNT</name>
              <description>Multi count
For periodic IN endpoints, this field indicates the number of packets that must be transmitted per frame on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIEPDMA8</name>
          <displayName>DIEPDMA8</displayName>
          <description>OTG device IN endpoint 8 DMA address register</description>
          <addressOffset>0xA14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA Address
This field holds the start address in the external memory from which the data for the endpoint must be fetched. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DTXFSTS8</name>
          <displayName>DTXFSTS8</displayName>
          <description>OTG device IN endpoint transmit FIFO status register</description>
          <addressOffset>0xA18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000200</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INEPTFSAV</name>
              <description>IN endpoint Tx FIFO space available
Indicates the amount of free space available in the endpoint Tx FIFO.
Values are in terms of 32-bit words:
0xn: n words available
Others: Reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPCTL0</name>
          <displayName>DOEPCTL0</displayName>
          <description>OTG device control OUT endpoint 0 control register</description>
          <addressOffset>0xB00</addressOffset>
          <size>0x20</size>
          <resetValue>0x00008000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The maximum packet size for control OUT endpoint 0 is the same as what is programmed in control IN endpoint 0.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
This bit is always set to 1, indicating that a control endpoint 0 is always active in all configurations and interfaces.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
Indicates the following:
When either the application or the core sets this bit, the core stops receiving data, even if there is space in the Rx FIFO to accommodate the incoming packet. Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
Hardcoded to 00 for control.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SNPM</name>
              <description>Snoop mode
This bit configures the endpoint to Snoop mode. In Snoop mode, the core does not check the correctness of OUT packets before transferring them to application memory.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application cannot disable control OUT endpoint 0.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
The application sets this bit to start transmitting data on endpoint 0.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPINT0</name>
          <displayName>DOEPINT0</displayName>
          <description>OTG device OUT endpoint 0 interrupt register</description>
          <addressOffset>0xB08</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000080</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed interrupt
This field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDISD</name>
              <description>Endpoint disabled interrupt
This bit indicates that the endpoint is disabled per the applications request.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This is generated only in internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STUP</name>
              <description>SETUP phase done
Applies to control OUT endpoint only.Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OTEPDIS</name>
              <description>OUT token received when endpoint disabled
Applies only to control OUT endpoints.
Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STSPHSRX</name>
              <description>Status phase received for control write
This interrupt is valid only for control OUT endpoints. This interrupt is generated only after OTG_HS has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a control write transfer. The application can use this interrupt to ACK or STALL the status phase, after it has decoded the data phase.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>B2BSTUP</name>
              <description>Back-to-back SETUP packets received
Applies to control OUT endpoint only.
This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OUTPKTERR</name>
              <description>OUT packet error
This interrupt is asserted when the core detects an overflow or a CRC error for an OUT packet. This interrupt is valid only when thresholding is enabled.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BERR</name>
              <description>Babble error interrupt
The core generates this interrupt when babble is received for the endpoint.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK input
The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is 
transmitted due to unavailability of data in the Tx FIFO.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>NYET interrupt
This interrupt is generated when a NYET response is transmitted for a non isochronous OUT endpoint.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STPKTRX</name>
              <description>Setup packet received
Applicable for control OUT endpoints in only in the Buffer DMA Mode. Set by the OTG_HS, this bit indicates that this buffer holds 8 bytes of setup data. There is only one setup packet per buffer. On receiving a setup packet, the OTG_HS closes the buffer and disables the corresponding endpoint after SETUP_COMPLETE status is seen in the Rx FIFO. OTG_HS puts a SETUP_COMPLETE status into the Rx FIFO when it sees the first IN or OUT token after the SETUP packet for that particular endpoint. The application must then re-enable the endpoint to receive any OUT data for the control transfer and reprogram the buffer start address. Because of the above behavior, OTG_HS can receive any number of back to back setup packets and one buffer for every setup packet is used.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPTSIZ0</name>
          <displayName>DOEPTSIZ0</displayName>
          <description>OTG device OUT endpoint 0 transfer size register</description>
          <addressOffset>0xB10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
Indicates the transfer size in bytes for endpoint 0. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be set to the maximum packet size of the endpoint, to be interrupted at the end of each packet.
The core decrements this field every time a packet is read from the Rx FIFO and written to the external memory.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
This field is decremented to zero after a packet is written into the Rx FIFO.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STUPCNT</name>
              <description>SETUP packet count
This field specifies the number of back-to-back SETUP data packets the endpoint can receive.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPDMA0</name>
          <displayName>DOEPDMA0</displayName>
          <description>OTG device OUT endpoint 0 DMA address register</description>
          <addressOffset>0xB14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA Address
This field holds the start address in the external memory from which the data for the endpoint must be fetched. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPCTL1_INT_BULK</name>
          <displayName>DOEPCTL1_INT_BULK</displayName>
          <description>OTG device OUT endpoint 1 control register</description>
          <addressOffset>0xB20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Endpoint data PID
Applies to interrupt/bulk OUT endpoints only.
Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The application uses the SD0PID and SD1PID register fields to program either DATA0 or DATA1 PID.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
Indicates the following:
When either the application or the core sets this bit:
The core stops receiving any data on an OUT endpoint, even if there is space in the Rx FIFO to accommodate the incoming packet.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SNPM</name>
              <description>Snoop mode
This bit configures the endpoint to Snoop mode. In Snoop mode, the core does not check the correctness of OUT packets before transferring them to application memory.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous OUT endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.
Applies to control endpoints only (access type is rs).
The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD0PID</name>
              <description>Set DATA0 PID
Applies to interrupt/bulk OUT endpoints only.
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA0.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD1PID</name>
              <description>Set DATA1 PID
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA1.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
Applies to IN and OUT endpoints.
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPCTL1_ISO</name>
          <displayName>DOEPCTL1_ISO</displayName>
          <description>OTG device OUT endpoint 1 control register</description>
          <alternateRegister>DOEPCTL1_INT_BULK</alternateRegister>
          <addressOffset>0xB20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EONUM</name>
              <description>Even/odd frame
Applies to isochronous OUT endpoints only.
Indicates the frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd frame number in which it intends to transmit/receive isochronous data for this endpoint using the SEVNFRM and SODDFRM fields in this register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
Indicates the following:
When either the application or the core sets this bit:
The core stops receiving any data on an OUT endpoint, even if there is space in the Rx FIFO to accommodate the incoming packet.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SNPM</name>
              <description>Snoop mode
This bit configures the endpoint to Snoop mode. In Snoop mode, the core does not check the correctness of OUT packets before transferring them to application memory.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous OUT endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.
Applies to control endpoints only (access type is rs).
The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SEVNFRM</name>
              <description>Set even frame
Applies to isochronous OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to even frame.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SODDFRM</name>
              <description>Set odd frame
Applies to isochronous IN and OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to odd frame.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
Applies to IN and OUT endpoints.
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPINT1</name>
          <displayName>DOEPINT1</displayName>
          <description>OTG device OUT endpoint 1 interrupt register</description>
          <addressOffset>0xB28</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000080</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed interrupt
This field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDISD</name>
              <description>Endpoint disabled interrupt
This bit indicates that the endpoint is disabled per the applications request.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This is generated only in internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STUP</name>
              <description>SETUP phase done
Applies to control OUT endpoint only.Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OTEPDIS</name>
              <description>OUT token received when endpoint disabled
Applies only to control OUT endpoints.
Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STSPHSRX</name>
              <description>Status phase received for control write
This interrupt is valid only for control OUT endpoints. This interrupt is generated only after OTG_HS has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a control write transfer. The application can use this interrupt to ACK or STALL the status phase, after it has decoded the data phase.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>B2BSTUP</name>
              <description>Back-to-back SETUP packets received
Applies to control OUT endpoint only.
This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OUTPKTERR</name>
              <description>OUT packet error
This interrupt is asserted when the core detects an overflow or a CRC error for an OUT packet. This interrupt is valid only when thresholding is enabled.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BERR</name>
              <description>Babble error interrupt
The core generates this interrupt when babble is received for the endpoint.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK input
The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is 
transmitted due to unavailability of data in the Tx FIFO.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>NYET interrupt
This interrupt is generated when a NYET response is transmitted for a non isochronous OUT endpoint.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STPKTRX</name>
              <description>Setup packet received
Applicable for control OUT endpoints in only in the Buffer DMA Mode. Set by the OTG_HS, this bit indicates that this buffer holds 8 bytes of setup data. There is only one setup packet per buffer. On receiving a setup packet, the OTG_HS closes the buffer and disables the corresponding endpoint after SETUP_COMPLETE status is seen in the Rx FIFO. OTG_HS puts a SETUP_COMPLETE status into the Rx FIFO when it sees the first IN or OUT token after the SETUP packet for that particular endpoint. The application must then re-enable the endpoint to receive any OUT data for the control transfer and reprogram the buffer start address. Because of the above behavior, OTG_HS can receive any number of back to back setup packets and one buffer for every setup packet is used.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPTSIZ1</name>
          <displayName>DOEPTSIZ1</displayName>
          <description>OTG device OUT endpoint 1 transfer size register</description>
          <addressOffset>0xB30</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
This field contains the transfer size in bytes for the current endpoint. The core only interrupts the application after it has exhausted the transfer size amount of data. The transfer size can be set to the maximum packet size of the endpoint, to be interrupted at the end of each packet.
The core decrements this field every time a packet is read from the Rx FIFO and written to the external memory.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
Indicates the total number of USB packets that constitute the transfer size amount of data for this endpoint.
This field is decremented every time a packet (maximum size or short packet) is written to the Rx FIFO.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXDPID</name>
              <description>Received data PID
This is the data PID received in the last packet for this endpoint.
STUPCNT[1:0]: SETUP packet count
This field specifies the number of back-to-back SETUP data packets the endpoint can receive.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPDMA1</name>
          <displayName>DOEPDMA1</displayName>
          <description>OTG device OUT endpoint 1 DMA address register</description>
          <addressOffset>0xB34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA Address
This field holds the start address in the external memory from which the data for the endpoint must be fetched. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPCTL2_INT_BULK</name>
          <displayName>DOEPCTL2_INT_BULK</displayName>
          <description>OTG device OUT endpoint 2 control register</description>
          <addressOffset>0xB40</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Endpoint data PID
Applies to interrupt/bulk OUT endpoints only.
Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The application uses the SD0PID and SD1PID register fields to program either DATA0 or DATA1 PID.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
Indicates the following:
When either the application or the core sets this bit:
The core stops receiving any data on an OUT endpoint, even if there is space in the Rx FIFO to accommodate the incoming packet.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SNPM</name>
              <description>Snoop mode
This bit configures the endpoint to Snoop mode. In Snoop mode, the core does not check the correctness of OUT packets before transferring them to application memory.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous OUT endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.
Applies to control endpoints only (access type is rs).
The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD0PID</name>
              <description>Set DATA0 PID
Applies to interrupt/bulk OUT endpoints only.
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA0.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD1PID</name>
              <description>Set DATA1 PID
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA1.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
Applies to IN and OUT endpoints.
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPCTL2_ISO</name>
          <displayName>DOEPCTL2_ISO</displayName>
          <description>OTG device OUT endpoint 2 control register</description>
          <alternateRegister>DOEPCTL2_INT_BULK</alternateRegister>
          <addressOffset>0xB40</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EONUM</name>
              <description>Even/odd frame
Applies to isochronous OUT endpoints only.
Indicates the frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd frame number in which it intends to transmit/receive isochronous data for this endpoint using the SEVNFRM and SODDFRM fields in this register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
Indicates the following:
When either the application or the core sets this bit:
The core stops receiving any data on an OUT endpoint, even if there is space in the Rx FIFO to accommodate the incoming packet.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SNPM</name>
              <description>Snoop mode
This bit configures the endpoint to Snoop mode. In Snoop mode, the core does not check the correctness of OUT packets before transferring them to application memory.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous OUT endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.
Applies to control endpoints only (access type is rs).
The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SEVNFRM</name>
              <description>Set even frame
Applies to isochronous OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to even frame.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SODDFRM</name>
              <description>Set odd frame
Applies to isochronous IN and OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to odd frame.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
Applies to IN and OUT endpoints.
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPINT2</name>
          <displayName>DOEPINT2</displayName>
          <description>OTG device OUT endpoint 2 interrupt register</description>
          <addressOffset>0xB48</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000080</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed interrupt
This field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDISD</name>
              <description>Endpoint disabled interrupt
This bit indicates that the endpoint is disabled per the applications request.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This is generated only in internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STUP</name>
              <description>SETUP phase done
Applies to control OUT endpoint only.Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OTEPDIS</name>
              <description>OUT token received when endpoint disabled
Applies only to control OUT endpoints.
Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STSPHSRX</name>
              <description>Status phase received for control write
This interrupt is valid only for control OUT endpoints. This interrupt is generated only after OTG_HS has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a control write transfer. The application can use this interrupt to ACK or STALL the status phase, after it has decoded the data phase.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>B2BSTUP</name>
              <description>Back-to-back SETUP packets received
Applies to control OUT endpoint only.
This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OUTPKTERR</name>
              <description>OUT packet error
This interrupt is asserted when the core detects an overflow or a CRC error for an OUT packet. This interrupt is valid only when thresholding is enabled.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BERR</name>
              <description>Babble error interrupt
The core generates this interrupt when babble is received for the endpoint.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK input
The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is 
transmitted due to unavailability of data in the Tx FIFO.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>NYET interrupt
This interrupt is generated when a NYET response is transmitted for a non isochronous OUT endpoint.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STPKTRX</name>
              <description>Setup packet received
Applicable for control OUT endpoints in only in the Buffer DMA Mode. Set by the OTG_HS, this bit indicates that this buffer holds 8 bytes of setup data. There is only one setup packet per buffer. On receiving a setup packet, the OTG_HS closes the buffer and disables the corresponding endpoint after SETUP_COMPLETE status is seen in the Rx FIFO. OTG_HS puts a SETUP_COMPLETE status into the Rx FIFO when it sees the first IN or OUT token after the SETUP packet for that particular endpoint. The application must then re-enable the endpoint to receive any OUT data for the control transfer and reprogram the buffer start address. Because of the above behavior, OTG_HS can receive any number of back to back setup packets and one buffer for every setup packet is used.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPTSIZ2</name>
          <displayName>DOEPTSIZ2</displayName>
          <description>OTG device OUT endpoint 2 transfer size register</description>
          <addressOffset>0xB50</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
This field contains the transfer size in bytes for the current endpoint. The core only interrupts the application after it has exhausted the transfer size amount of data. The transfer size can be set to the maximum packet size of the endpoint, to be interrupted at the end of each packet.
The core decrements this field every time a packet is read from the Rx FIFO and written to the external memory.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
Indicates the total number of USB packets that constitute the transfer size amount of data for this endpoint.
This field is decremented every time a packet (maximum size or short packet) is written to the Rx FIFO.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXDPID</name>
              <description>Received data PID
This is the data PID received in the last packet for this endpoint.
STUPCNT[1:0]: SETUP packet count
This field specifies the number of back-to-back SETUP data packets the endpoint can receive.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPDMA2</name>
          <displayName>DOEPDMA2</displayName>
          <description>OTG device OUT endpoint 2 DMA address register</description>
          <addressOffset>0xB54</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA Address
This field holds the start address in the external memory from which the data for the endpoint must be fetched. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPCTL3_INT_BULK</name>
          <displayName>DOEPCTL3_INT_BULK</displayName>
          <description>OTG device OUT endpoint 3 control register</description>
          <addressOffset>0xB60</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Endpoint data PID
Applies to interrupt/bulk OUT endpoints only.
Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The application uses the SD0PID and SD1PID register fields to program either DATA0 or DATA1 PID.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
Indicates the following:
When either the application or the core sets this bit:
The core stops receiving any data on an OUT endpoint, even if there is space in the Rx FIFO to accommodate the incoming packet.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SNPM</name>
              <description>Snoop mode
This bit configures the endpoint to Snoop mode. In Snoop mode, the core does not check the correctness of OUT packets before transferring them to application memory.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous OUT endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.
Applies to control endpoints only (access type is rs).
The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD0PID</name>
              <description>Set DATA0 PID
Applies to interrupt/bulk OUT endpoints only.
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA0.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD1PID</name>
              <description>Set DATA1 PID
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA1.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
Applies to IN and OUT endpoints.
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPCTL3_ISO</name>
          <displayName>DOEPCTL3_ISO</displayName>
          <description>OTG device OUT endpoint 3 control register</description>
          <alternateRegister>DOEPCTL3_INT_BULK</alternateRegister>
          <addressOffset>0xB60</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EONUM</name>
              <description>Even/odd frame
Applies to isochronous OUT endpoints only.
Indicates the frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd frame number in which it intends to transmit/receive isochronous data for this endpoint using the SEVNFRM and SODDFRM fields in this register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
Indicates the following:
When either the application or the core sets this bit:
The core stops receiving any data on an OUT endpoint, even if there is space in the Rx FIFO to accommodate the incoming packet.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SNPM</name>
              <description>Snoop mode
This bit configures the endpoint to Snoop mode. In Snoop mode, the core does not check the correctness of OUT packets before transferring them to application memory.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous OUT endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.
Applies to control endpoints only (access type is rs).
The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SEVNFRM</name>
              <description>Set even frame
Applies to isochronous OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to even frame.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SODDFRM</name>
              <description>Set odd frame
Applies to isochronous IN and OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to odd frame.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
Applies to IN and OUT endpoints.
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPINT3</name>
          <displayName>DOEPINT3</displayName>
          <description>OTG device OUT endpoint 3 interrupt register</description>
          <addressOffset>0xB68</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000080</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed interrupt
This field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDISD</name>
              <description>Endpoint disabled interrupt
This bit indicates that the endpoint is disabled per the applications request.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This is generated only in internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STUP</name>
              <description>SETUP phase done
Applies to control OUT endpoint only.Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OTEPDIS</name>
              <description>OUT token received when endpoint disabled
Applies only to control OUT endpoints.
Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STSPHSRX</name>
              <description>Status phase received for control write
This interrupt is valid only for control OUT endpoints. This interrupt is generated only after OTG_HS has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a control write transfer. The application can use this interrupt to ACK or STALL the status phase, after it has decoded the data phase.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>B2BSTUP</name>
              <description>Back-to-back SETUP packets received
Applies to control OUT endpoint only.
This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OUTPKTERR</name>
              <description>OUT packet error
This interrupt is asserted when the core detects an overflow or a CRC error for an OUT packet. This interrupt is valid only when thresholding is enabled.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BERR</name>
              <description>Babble error interrupt
The core generates this interrupt when babble is received for the endpoint.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK input
The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is 
transmitted due to unavailability of data in the Tx FIFO.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>NYET interrupt
This interrupt is generated when a NYET response is transmitted for a non isochronous OUT endpoint.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STPKTRX</name>
              <description>Setup packet received
Applicable for control OUT endpoints in only in the Buffer DMA Mode. Set by the OTG_HS, this bit indicates that this buffer holds 8 bytes of setup data. There is only one setup packet per buffer. On receiving a setup packet, the OTG_HS closes the buffer and disables the corresponding endpoint after SETUP_COMPLETE status is seen in the Rx FIFO. OTG_HS puts a SETUP_COMPLETE status into the Rx FIFO when it sees the first IN or OUT token after the SETUP packet for that particular endpoint. The application must then re-enable the endpoint to receive any OUT data for the control transfer and reprogram the buffer start address. Because of the above behavior, OTG_HS can receive any number of back to back setup packets and one buffer for every setup packet is used.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPTSIZ3</name>
          <displayName>DOEPTSIZ3</displayName>
          <description>OTG device OUT endpoint 3 transfer size register</description>
          <addressOffset>0xB70</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
This field contains the transfer size in bytes for the current endpoint. The core only interrupts the application after it has exhausted the transfer size amount of data. The transfer size can be set to the maximum packet size of the endpoint, to be interrupted at the end of each packet.
The core decrements this field every time a packet is read from the Rx FIFO and written to the external memory.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
Indicates the total number of USB packets that constitute the transfer size amount of data for this endpoint.
This field is decremented every time a packet (maximum size or short packet) is written to the Rx FIFO.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXDPID</name>
              <description>Received data PID
This is the data PID received in the last packet for this endpoint.
STUPCNT[1:0]: SETUP packet count
This field specifies the number of back-to-back SETUP data packets the endpoint can receive.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPDMA3</name>
          <displayName>DOEPDMA3</displayName>
          <description>OTG device OUT endpoint 3 DMA address register</description>
          <addressOffset>0xB74</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA Address
This field holds the start address in the external memory from which the data for the endpoint must be fetched. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPCTL4_INT_BULK</name>
          <displayName>DOEPCTL4_INT_BULK</displayName>
          <description>OTG device OUT endpoint 4 control register</description>
          <addressOffset>0xB80</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Endpoint data PID
Applies to interrupt/bulk OUT endpoints only.
Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The application uses the SD0PID and SD1PID register fields to program either DATA0 or DATA1 PID.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
Indicates the following:
When either the application or the core sets this bit:
The core stops receiving any data on an OUT endpoint, even if there is space in the Rx FIFO to accommodate the incoming packet.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SNPM</name>
              <description>Snoop mode
This bit configures the endpoint to Snoop mode. In Snoop mode, the core does not check the correctness of OUT packets before transferring them to application memory.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous OUT endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.
Applies to control endpoints only (access type is rs).
The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD0PID</name>
              <description>Set DATA0 PID
Applies to interrupt/bulk OUT endpoints only.
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA0.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD1PID</name>
              <description>Set DATA1 PID
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA1.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
Applies to IN and OUT endpoints.
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPCTL4_ISO</name>
          <displayName>DOEPCTL4_ISO</displayName>
          <description>OTG device OUT endpoint 4 control register</description>
          <alternateRegister>DOEPCTL4_INT_BULK</alternateRegister>
          <addressOffset>0xB80</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EONUM</name>
              <description>Even/odd frame
Applies to isochronous OUT endpoints only.
Indicates the frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd frame number in which it intends to transmit/receive isochronous data for this endpoint using the SEVNFRM and SODDFRM fields in this register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
Indicates the following:
When either the application or the core sets this bit:
The core stops receiving any data on an OUT endpoint, even if there is space in the Rx FIFO to accommodate the incoming packet.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SNPM</name>
              <description>Snoop mode
This bit configures the endpoint to Snoop mode. In Snoop mode, the core does not check the correctness of OUT packets before transferring them to application memory.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous OUT endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.
Applies to control endpoints only (access type is rs).
The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SEVNFRM</name>
              <description>Set even frame
Applies to isochronous OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to even frame.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SODDFRM</name>
              <description>Set odd frame
Applies to isochronous IN and OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to odd frame.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
Applies to IN and OUT endpoints.
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPINT4</name>
          <displayName>DOEPINT4</displayName>
          <description>OTG device OUT endpoint 4 interrupt register</description>
          <addressOffset>0xB88</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000080</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed interrupt
This field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDISD</name>
              <description>Endpoint disabled interrupt
This bit indicates that the endpoint is disabled per the applications request.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This is generated only in internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STUP</name>
              <description>SETUP phase done
Applies to control OUT endpoint only.Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OTEPDIS</name>
              <description>OUT token received when endpoint disabled
Applies only to control OUT endpoints.
Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STSPHSRX</name>
              <description>Status phase received for control write
This interrupt is valid only for control OUT endpoints. This interrupt is generated only after OTG_HS has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a control write transfer. The application can use this interrupt to ACK or STALL the status phase, after it has decoded the data phase.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>B2BSTUP</name>
              <description>Back-to-back SETUP packets received
Applies to control OUT endpoint only.
This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OUTPKTERR</name>
              <description>OUT packet error
This interrupt is asserted when the core detects an overflow or a CRC error for an OUT packet. This interrupt is valid only when thresholding is enabled.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BERR</name>
              <description>Babble error interrupt
The core generates this interrupt when babble is received for the endpoint.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK input
The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is 
transmitted due to unavailability of data in the Tx FIFO.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>NYET interrupt
This interrupt is generated when a NYET response is transmitted for a non isochronous OUT endpoint.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STPKTRX</name>
              <description>Setup packet received
Applicable for control OUT endpoints in only in the Buffer DMA Mode. Set by the OTG_HS, this bit indicates that this buffer holds 8 bytes of setup data. There is only one setup packet per buffer. On receiving a setup packet, the OTG_HS closes the buffer and disables the corresponding endpoint after SETUP_COMPLETE status is seen in the Rx FIFO. OTG_HS puts a SETUP_COMPLETE status into the Rx FIFO when it sees the first IN or OUT token after the SETUP packet for that particular endpoint. The application must then re-enable the endpoint to receive any OUT data for the control transfer and reprogram the buffer start address. Because of the above behavior, OTG_HS can receive any number of back to back setup packets and one buffer for every setup packet is used.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPTSIZ4</name>
          <displayName>DOEPTSIZ4</displayName>
          <description>OTG device OUT endpoint 4 transfer size register</description>
          <addressOffset>0xB90</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
This field contains the transfer size in bytes for the current endpoint. The core only interrupts the application after it has exhausted the transfer size amount of data. The transfer size can be set to the maximum packet size of the endpoint, to be interrupted at the end of each packet.
The core decrements this field every time a packet is read from the Rx FIFO and written to the external memory.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
Indicates the total number of USB packets that constitute the transfer size amount of data for this endpoint.
This field is decremented every time a packet (maximum size or short packet) is written to the Rx FIFO.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXDPID</name>
              <description>Received data PID
This is the data PID received in the last packet for this endpoint.
STUPCNT[1:0]: SETUP packet count
This field specifies the number of back-to-back SETUP data packets the endpoint can receive.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPDMA4</name>
          <displayName>DOEPDMA4</displayName>
          <description>OTG device OUT endpoint 4 DMA address register</description>
          <addressOffset>0xB94</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA Address
This field holds the start address in the external memory from which the data for the endpoint must be fetched. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPCTL5_INT_BULK</name>
          <displayName>DOEPCTL5_INT_BULK</displayName>
          <description>OTG device OUT endpoint 5 control register</description>
          <addressOffset>0xBA0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Endpoint data PID
Applies to interrupt/bulk OUT endpoints only.
Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The application uses the SD0PID and SD1PID register fields to program either DATA0 or DATA1 PID.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
Indicates the following:
When either the application or the core sets this bit:
The core stops receiving any data on an OUT endpoint, even if there is space in the Rx FIFO to accommodate the incoming packet.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SNPM</name>
              <description>Snoop mode
This bit configures the endpoint to Snoop mode. In Snoop mode, the core does not check the correctness of OUT packets before transferring them to application memory.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous OUT endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.
Applies to control endpoints only (access type is rs).
The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD0PID</name>
              <description>Set DATA0 PID
Applies to interrupt/bulk OUT endpoints only.
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA0.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD1PID</name>
              <description>Set DATA1 PID
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA1.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
Applies to IN and OUT endpoints.
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPCTL5_ISO</name>
          <displayName>DOEPCTL5_ISO</displayName>
          <description>OTG device OUT endpoint 5 control register</description>
          <alternateRegister>DOEPCTL5_INT_BULK</alternateRegister>
          <addressOffset>0xBA0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EONUM</name>
              <description>Even/odd frame
Applies to isochronous OUT endpoints only.
Indicates the frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd frame number in which it intends to transmit/receive isochronous data for this endpoint using the SEVNFRM and SODDFRM fields in this register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
Indicates the following:
When either the application or the core sets this bit:
The core stops receiving any data on an OUT endpoint, even if there is space in the Rx FIFO to accommodate the incoming packet.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SNPM</name>
              <description>Snoop mode
This bit configures the endpoint to Snoop mode. In Snoop mode, the core does not check the correctness of OUT packets before transferring them to application memory.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous OUT endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.
Applies to control endpoints only (access type is rs).
The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SEVNFRM</name>
              <description>Set even frame
Applies to isochronous OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to even frame.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SODDFRM</name>
              <description>Set odd frame
Applies to isochronous IN and OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to odd frame.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
Applies to IN and OUT endpoints.
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPINT5</name>
          <displayName>DOEPINT5</displayName>
          <description>OTG device OUT endpoint 5 interrupt register</description>
          <addressOffset>0xBA8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000080</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed interrupt
This field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDISD</name>
              <description>Endpoint disabled interrupt
This bit indicates that the endpoint is disabled per the applications request.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This is generated only in internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STUP</name>
              <description>SETUP phase done
Applies to control OUT endpoint only.Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OTEPDIS</name>
              <description>OUT token received when endpoint disabled
Applies only to control OUT endpoints.
Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STSPHSRX</name>
              <description>Status phase received for control write
This interrupt is valid only for control OUT endpoints. This interrupt is generated only after OTG_HS has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a control write transfer. The application can use this interrupt to ACK or STALL the status phase, after it has decoded the data phase.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>B2BSTUP</name>
              <description>Back-to-back SETUP packets received
Applies to control OUT endpoint only.
This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OUTPKTERR</name>
              <description>OUT packet error
This interrupt is asserted when the core detects an overflow or a CRC error for an OUT packet. This interrupt is valid only when thresholding is enabled.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BERR</name>
              <description>Babble error interrupt
The core generates this interrupt when babble is received for the endpoint.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK input
The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is 
transmitted due to unavailability of data in the Tx FIFO.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>NYET interrupt
This interrupt is generated when a NYET response is transmitted for a non isochronous OUT endpoint.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STPKTRX</name>
              <description>Setup packet received
Applicable for control OUT endpoints in only in the Buffer DMA Mode. Set by the OTG_HS, this bit indicates that this buffer holds 8 bytes of setup data. There is only one setup packet per buffer. On receiving a setup packet, the OTG_HS closes the buffer and disables the corresponding endpoint after SETUP_COMPLETE status is seen in the Rx FIFO. OTG_HS puts a SETUP_COMPLETE status into the Rx FIFO when it sees the first IN or OUT token after the SETUP packet for that particular endpoint. The application must then re-enable the endpoint to receive any OUT data for the control transfer and reprogram the buffer start address. Because of the above behavior, OTG_HS can receive any number of back to back setup packets and one buffer for every setup packet is used.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPTSIZ5</name>
          <displayName>DOEPTSIZ5</displayName>
          <description>OTG device OUT endpoint 5 transfer size register</description>
          <addressOffset>0xBB0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
This field contains the transfer size in bytes for the current endpoint. The core only interrupts the application after it has exhausted the transfer size amount of data. The transfer size can be set to the maximum packet size of the endpoint, to be interrupted at the end of each packet.
The core decrements this field every time a packet is read from the Rx FIFO and written to the external memory.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
Indicates the total number of USB packets that constitute the transfer size amount of data for this endpoint.
This field is decremented every time a packet (maximum size or short packet) is written to the Rx FIFO.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXDPID</name>
              <description>Received data PID
This is the data PID received in the last packet for this endpoint.
STUPCNT[1:0]: SETUP packet count
This field specifies the number of back-to-back SETUP data packets the endpoint can receive.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPDMA5</name>
          <displayName>DOEPDMA5</displayName>
          <description>OTG device OUT endpoint 5 DMA address register</description>
          <addressOffset>0xBB4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA Address
This field holds the start address in the external memory from which the data for the endpoint must be fetched. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPCTL6_INT_BULK</name>
          <displayName>DOEPCTL6_INT_BULK</displayName>
          <description>OTG device OUT endpoint 6 control register</description>
          <addressOffset>0xBC0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Endpoint data PID
Applies to interrupt/bulk OUT endpoints only.
Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The application uses the SD0PID and SD1PID register fields to program either DATA0 or DATA1 PID.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
Indicates the following:
When either the application or the core sets this bit:
The core stops receiving any data on an OUT endpoint, even if there is space in the Rx FIFO to accommodate the incoming packet.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SNPM</name>
              <description>Snoop mode
This bit configures the endpoint to Snoop mode. In Snoop mode, the core does not check the correctness of OUT packets before transferring them to application memory.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous OUT endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.
Applies to control endpoints only (access type is rs).
The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD0PID</name>
              <description>Set DATA0 PID
Applies to interrupt/bulk OUT endpoints only.
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA0.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD1PID</name>
              <description>Set DATA1 PID
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA1.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
Applies to IN and OUT endpoints.
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPCTL6_ISO</name>
          <displayName>DOEPCTL6_ISO</displayName>
          <description>OTG device OUT endpoint 6 control register</description>
          <alternateRegister>DOEPCTL6_INT_BULK</alternateRegister>
          <addressOffset>0xBC0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EONUM</name>
              <description>Even/odd frame
Applies to isochronous OUT endpoints only.
Indicates the frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd frame number in which it intends to transmit/receive isochronous data for this endpoint using the SEVNFRM and SODDFRM fields in this register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
Indicates the following:
When either the application or the core sets this bit:
The core stops receiving any data on an OUT endpoint, even if there is space in the Rx FIFO to accommodate the incoming packet.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SNPM</name>
              <description>Snoop mode
This bit configures the endpoint to Snoop mode. In Snoop mode, the core does not check the correctness of OUT packets before transferring them to application memory.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous OUT endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.
Applies to control endpoints only (access type is rs).
The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SEVNFRM</name>
              <description>Set even frame
Applies to isochronous OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to even frame.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SODDFRM</name>
              <description>Set odd frame
Applies to isochronous IN and OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to odd frame.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
Applies to IN and OUT endpoints.
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPINT6</name>
          <displayName>DOEPINT6</displayName>
          <description>OTG device OUT endpoint 6 interrupt register</description>
          <addressOffset>0xBC8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000080</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed interrupt
This field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDISD</name>
              <description>Endpoint disabled interrupt
This bit indicates that the endpoint is disabled per the applications request.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This is generated only in internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STUP</name>
              <description>SETUP phase done
Applies to control OUT endpoint only.Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OTEPDIS</name>
              <description>OUT token received when endpoint disabled
Applies only to control OUT endpoints.
Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STSPHSRX</name>
              <description>Status phase received for control write
This interrupt is valid only for control OUT endpoints. This interrupt is generated only after OTG_HS has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a control write transfer. The application can use this interrupt to ACK or STALL the status phase, after it has decoded the data phase.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>B2BSTUP</name>
              <description>Back-to-back SETUP packets received
Applies to control OUT endpoint only.
This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OUTPKTERR</name>
              <description>OUT packet error
This interrupt is asserted when the core detects an overflow or a CRC error for an OUT packet. This interrupt is valid only when thresholding is enabled.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BERR</name>
              <description>Babble error interrupt
The core generates this interrupt when babble is received for the endpoint.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK input
The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is 
transmitted due to unavailability of data in the Tx FIFO.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>NYET interrupt
This interrupt is generated when a NYET response is transmitted for a non isochronous OUT endpoint.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STPKTRX</name>
              <description>Setup packet received
Applicable for control OUT endpoints in only in the Buffer DMA Mode. Set by the OTG_HS, this bit indicates that this buffer holds 8 bytes of setup data. There is only one setup packet per buffer. On receiving a setup packet, the OTG_HS closes the buffer and disables the corresponding endpoint after SETUP_COMPLETE status is seen in the Rx FIFO. OTG_HS puts a SETUP_COMPLETE status into the Rx FIFO when it sees the first IN or OUT token after the SETUP packet for that particular endpoint. The application must then re-enable the endpoint to receive any OUT data for the control transfer and reprogram the buffer start address. Because of the above behavior, OTG_HS can receive any number of back to back setup packets and one buffer for every setup packet is used.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPTSIZ6</name>
          <displayName>DOEPTSIZ6</displayName>
          <description>OTG device OUT endpoint 6 transfer size register</description>
          <addressOffset>0xBD0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
This field contains the transfer size in bytes for the current endpoint. The core only interrupts the application after it has exhausted the transfer size amount of data. The transfer size can be set to the maximum packet size of the endpoint, to be interrupted at the end of each packet.
The core decrements this field every time a packet is read from the Rx FIFO and written to the external memory.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
Indicates the total number of USB packets that constitute the transfer size amount of data for this endpoint.
This field is decremented every time a packet (maximum size or short packet) is written to the Rx FIFO.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXDPID</name>
              <description>Received data PID
This is the data PID received in the last packet for this endpoint.
STUPCNT[1:0]: SETUP packet count
This field specifies the number of back-to-back SETUP data packets the endpoint can receive.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPDMA6</name>
          <displayName>DOEPDMA6</displayName>
          <description>OTG device OUT endpoint 6 DMA address register</description>
          <addressOffset>0xBD4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA Address
This field holds the start address in the external memory from which the data for the endpoint must be fetched. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPCTL7_INT_BULK</name>
          <displayName>DOEPCTL7_INT_BULK</displayName>
          <description>OTG device OUT endpoint 7 control register</description>
          <addressOffset>0xBE0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Endpoint data PID
Applies to interrupt/bulk OUT endpoints only.
Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The application uses the SD0PID and SD1PID register fields to program either DATA0 or DATA1 PID.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
Indicates the following:
When either the application or the core sets this bit:
The core stops receiving any data on an OUT endpoint, even if there is space in the Rx FIFO to accommodate the incoming packet.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SNPM</name>
              <description>Snoop mode
This bit configures the endpoint to Snoop mode. In Snoop mode, the core does not check the correctness of OUT packets before transferring them to application memory.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous OUT endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.
Applies to control endpoints only (access type is rs).
The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD0PID</name>
              <description>Set DATA0 PID
Applies to interrupt/bulk OUT endpoints only.
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA0.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD1PID</name>
              <description>Set DATA1 PID
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA1.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
Applies to IN and OUT endpoints.
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPCTL7_ISO</name>
          <displayName>DOEPCTL7_ISO</displayName>
          <description>OTG device OUT endpoint 7 control register</description>
          <alternateRegister>DOEPCTL7_INT_BULK</alternateRegister>
          <addressOffset>0xBE0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EONUM</name>
              <description>Even/odd frame
Applies to isochronous OUT endpoints only.
Indicates the frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd frame number in which it intends to transmit/receive isochronous data for this endpoint using the SEVNFRM and SODDFRM fields in this register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
Indicates the following:
When either the application or the core sets this bit:
The core stops receiving any data on an OUT endpoint, even if there is space in the Rx FIFO to accommodate the incoming packet.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SNPM</name>
              <description>Snoop mode
This bit configures the endpoint to Snoop mode. In Snoop mode, the core does not check the correctness of OUT packets before transferring them to application memory.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous OUT endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.
Applies to control endpoints only (access type is rs).
The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SEVNFRM</name>
              <description>Set even frame
Applies to isochronous OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to even frame.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SODDFRM</name>
              <description>Set odd frame
Applies to isochronous IN and OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to odd frame.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
Applies to IN and OUT endpoints.
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPINT7</name>
          <displayName>DOEPINT7</displayName>
          <description>OTG device OUT endpoint 7 interrupt register</description>
          <addressOffset>0xBE8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000080</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed interrupt
This field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDISD</name>
              <description>Endpoint disabled interrupt
This bit indicates that the endpoint is disabled per the applications request.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This is generated only in internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STUP</name>
              <description>SETUP phase done
Applies to control OUT endpoint only.Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OTEPDIS</name>
              <description>OUT token received when endpoint disabled
Applies only to control OUT endpoints.
Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STSPHSRX</name>
              <description>Status phase received for control write
This interrupt is valid only for control OUT endpoints. This interrupt is generated only after OTG_HS has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a control write transfer. The application can use this interrupt to ACK or STALL the status phase, after it has decoded the data phase.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>B2BSTUP</name>
              <description>Back-to-back SETUP packets received
Applies to control OUT endpoint only.
This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OUTPKTERR</name>
              <description>OUT packet error
This interrupt is asserted when the core detects an overflow or a CRC error for an OUT packet. This interrupt is valid only when thresholding is enabled.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BERR</name>
              <description>Babble error interrupt
The core generates this interrupt when babble is received for the endpoint.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK input
The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is 
transmitted due to unavailability of data in the Tx FIFO.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>NYET interrupt
This interrupt is generated when a NYET response is transmitted for a non isochronous OUT endpoint.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STPKTRX</name>
              <description>Setup packet received
Applicable for control OUT endpoints in only in the Buffer DMA Mode. Set by the OTG_HS, this bit indicates that this buffer holds 8 bytes of setup data. There is only one setup packet per buffer. On receiving a setup packet, the OTG_HS closes the buffer and disables the corresponding endpoint after SETUP_COMPLETE status is seen in the Rx FIFO. OTG_HS puts a SETUP_COMPLETE status into the Rx FIFO when it sees the first IN or OUT token after the SETUP packet for that particular endpoint. The application must then re-enable the endpoint to receive any OUT data for the control transfer and reprogram the buffer start address. Because of the above behavior, OTG_HS can receive any number of back to back setup packets and one buffer for every setup packet is used.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPTSIZ7</name>
          <displayName>DOEPTSIZ7</displayName>
          <description>OTG device OUT endpoint 7 transfer size register</description>
          <addressOffset>0xBF0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
This field contains the transfer size in bytes for the current endpoint. The core only interrupts the application after it has exhausted the transfer size amount of data. The transfer size can be set to the maximum packet size of the endpoint, to be interrupted at the end of each packet.
The core decrements this field every time a packet is read from the Rx FIFO and written to the external memory.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
Indicates the total number of USB packets that constitute the transfer size amount of data for this endpoint.
This field is decremented every time a packet (maximum size or short packet) is written to the Rx FIFO.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXDPID</name>
              <description>Received data PID
This is the data PID received in the last packet for this endpoint.
STUPCNT[1:0]: SETUP packet count
This field specifies the number of back-to-back SETUP data packets the endpoint can receive.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPDMA7</name>
          <displayName>DOEPDMA7</displayName>
          <description>OTG device OUT endpoint 7 DMA address register</description>
          <addressOffset>0xBF4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA Address
This field holds the start address in the external memory from which the data for the endpoint must be fetched. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPCTL8_INT_BULK</name>
          <displayName>DOEPCTL8_INT_BULK</displayName>
          <description>OTG device OUT endpoint 8 control register</description>
          <addressOffset>0xC00</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DPID</name>
              <description>Endpoint data PID
Applies to interrupt/bulk OUT endpoints only.
Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The application uses the SD0PID and SD1PID register fields to program either DATA0 or DATA1 PID.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
Indicates the following:
When either the application or the core sets this bit:
The core stops receiving any data on an OUT endpoint, even if there is space in the Rx FIFO to accommodate the incoming packet.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SNPM</name>
              <description>Snoop mode
This bit configures the endpoint to Snoop mode. In Snoop mode, the core does not check the correctness of OUT packets before transferring them to application memory.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous OUT endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.
Applies to control endpoints only (access type is rs).
The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD0PID</name>
              <description>Set DATA0 PID
Applies to interrupt/bulk OUT endpoints only.
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA0.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SD1PID</name>
              <description>Set DATA1 PID
Writing to this field sets the endpoint data PID (DPID) field in this register to DATA1.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
Applies to IN and OUT endpoints.
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPCTL8_ISO</name>
          <displayName>DOEPCTL8_ISO</displayName>
          <description>OTG device OUT endpoint 8 control register</description>
          <alternateRegister>DOEPCTL8_INT_BULK</alternateRegister>
          <addressOffset>0xC00</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MPSIZ</name>
              <description>Maximum packet size
The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>11</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBAEP</name>
              <description>USB active endpoint
Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EONUM</name>
              <description>Even/odd frame
Applies to isochronous OUT endpoints only.
Indicates the frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd frame number in which it intends to transmit/receive isochronous data for this endpoint using the SEVNFRM and SODDFRM fields in this register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>NAKSTS</name>
              <description>NAK status
Indicates the following:
When either the application or the core sets this bit:
The core stops receiving any data on an OUT endpoint, even if there is space in the Rx FIFO to accommodate the incoming packet.
Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>EPTYP</name>
              <description>Endpoint type
This is the transfer type supported by this logical endpoint.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SNPM</name>
              <description>Snoop mode
This bit configures the endpoint to Snoop mode. In Snoop mode, the core does not check the correctness of OUT packets before transferring them to application memory.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STALL</name>
              <description>STALL handshake
Applies to non-control, non-isochronous OUT endpoints only (access type is rw).
The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core.
Applies to control endpoints only (access type is rs).
The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bits setting, the core always responds to SETUP data packets with an ACK handshake.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNAK</name>
              <description>Clear NAK
A write to this bit clears the NAK bit for the endpoint.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SNAK</name>
              <description>Set NAK
A write to this bit sets the NAK bit for the endpoint.
Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for OUT endpoints on a transfer completed interrupt, or after a SETUP is received on the endpoint.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SEVNFRM</name>
              <description>Set even frame
Applies to isochronous OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to even frame.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SODDFRM</name>
              <description>Set odd frame
Applies to isochronous IN and OUT endpoints only.
Writing to this field sets the Even/Odd frame (EONUM) field to odd frame.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>EPDIS</name>
              <description>Endpoint disable
The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the endpoint disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the endpoint disabled interrupt. The application must set this bit only if endpoint enable is already set for this endpoint.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPENA</name>
              <description>Endpoint enable
Applies to IN and OUT endpoints.
The application sets this bit to start transmitting data on an endpoint.
The core clears this bit before setting any of the following interrupts on this endpoint:
SETUP phase done
Endpoint disabled
Transfer completed</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPINT8</name>
          <displayName>DOEPINT8</displayName>
          <description>OTG device OUT endpoint 8 interrupt register</description>
          <addressOffset>0xC08</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000080</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRC</name>
              <description>Transfer completed interrupt
This field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EPDISD</name>
              <description>Endpoint disabled interrupt
This bit indicates that the endpoint is disabled per the applications request.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBERR</name>
              <description>AHB error
This is generated only in internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STUP</name>
              <description>SETUP phase done
Applies to control OUT endpoint only.Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OTEPDIS</name>
              <description>OUT token received when endpoint disabled
Applies only to control OUT endpoints.
Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STSPHSRX</name>
              <description>Status phase received for control write
This interrupt is valid only for control OUT endpoints. This interrupt is generated only after OTG_HS has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a control write transfer. The application can use this interrupt to ACK or STALL the status phase, after it has decoded the data phase.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>B2BSTUP</name>
              <description>Back-to-back SETUP packets received
Applies to control OUT endpoint only.
This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OUTPKTERR</name>
              <description>OUT packet error
This interrupt is asserted when the core detects an overflow or a CRC error for an OUT packet. This interrupt is valid only when thresholding is enabled.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BERR</name>
              <description>Babble error interrupt
The core generates this interrupt when babble is received for the endpoint.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NAK</name>
              <description>NAK input
The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is 
transmitted due to unavailability of data in the Tx FIFO.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NYET</name>
              <description>NYET interrupt
This interrupt is generated when a NYET response is transmitted for a non isochronous OUT endpoint.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STPKTRX</name>
              <description>Setup packet received
Applicable for control OUT endpoints in only in the Buffer DMA Mode. Set by the OTG_HS, this bit indicates that this buffer holds 8 bytes of setup data. There is only one setup packet per buffer. On receiving a setup packet, the OTG_HS closes the buffer and disables the corresponding endpoint after SETUP_COMPLETE status is seen in the Rx FIFO. OTG_HS puts a SETUP_COMPLETE status into the Rx FIFO when it sees the first IN or OUT token after the SETUP packet for that particular endpoint. The application must then re-enable the endpoint to receive any OUT data for the control transfer and reprogram the buffer start address. Because of the above behavior, OTG_HS can receive any number of back to back setup packets and one buffer for every setup packet is used.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPTSIZ8</name>
          <displayName>DOEPTSIZ8</displayName>
          <description>OTG device OUT endpoint 8 transfer size register</description>
          <addressOffset>0xC10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XFRSIZ</name>
              <description>Transfer size
This field contains the transfer size in bytes for the current endpoint. The core only interrupts the application after it has exhausted the transfer size amount of data. The transfer size can be set to the maximum packet size of the endpoint, to be interrupted at the end of each packet.
The core decrements this field every time a packet is read from the Rx FIFO and written to the external memory.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>19</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PKTCNT</name>
              <description>Packet count
Indicates the total number of USB packets that constitute the transfer size amount of data for this endpoint.
This field is decremented every time a packet (maximum size or short packet) is written to the Rx FIFO.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXDPID</name>
              <description>Received data PID
This is the data PID received in the last packet for this endpoint.
STUPCNT[1:0]: SETUP packet count
This field specifies the number of back-to-back SETUP data packets the endpoint can receive.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOEPDMA8</name>
          <displayName>DOEPDMA8</displayName>
          <description>OTG device OUT endpoint 8 DMA address register</description>
          <addressOffset>0xC14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAADDR</name>
              <description>DMA Address
This field holds the start address in the external memory from which the data for the endpoint must be fetched. This register is incremented on every AHB transaction.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PCGCCTL</name>
          <displayName>PCGCCTL</displayName>
          <description>OTG power and clock gating control register</description>
          <addressOffset>0xE00</addressOffset>
          <size>0x20</size>
          <resetValue>0x200B8000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>STPPCLK</name>
              <description>Stop PHY clock
The application sets this bit to stop the PHY clock when the USB is suspended, the session is not valid, or the device is disconnected. The application clears this bit when the USB is resumed or a new session starts.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GATEHCLK</name>
              <description>Gate HCLK
The application sets this bit to gate HCLK to modules other than the AHB Slave and Master and wakeup logic when the USB is suspended or the session is not valid. The application clears this bit when the USB is resumed or a new session starts.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PHYSUSP</name>
              <description>PHY suspended
Indicates that the PHY has been suspended. This bit is updated once the PHY is suspended after the application has set the STPPCLK bit.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ENL1GTG</name>
              <description>Enable sleep clock gating
When this bit is set, core internal clock gating is enabled in Sleep state if the core cannot assert utmi_l1_suspend_n. When this bit is not set, the PHY clock is not gated in Sleep state.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PHYSLEEP</name>
              <description>PHY in Sleep
This bit indicates that the PHY is in the Sleep state.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SUSP</name>
              <description>Deep Sleep
This bit indicates that the PHY is in Deep Sleep when in L1 state.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PCGCCTL1</name>
          <displayName>PCGCCTL1</displayName>
          <description>OTG power and clock gating control register 1</description>
          <addressOffset>0xE04</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>GATEEN</name>
              <description>Enable active clock gating
The application programs GATEEN to enable Active Clock Gating feature for the PHY and AHB clocks.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNTGATECLK</name>
              <description>Counter for clock gating
Indicates to the controller how many PHY Clock cycles and AHB Clock cycles of 'IDLE' (no activity) the controller waits for before Gating the respective PHY and AHB clocks internal to the controller.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RAMGATEEN</name>
              <description>Enable RAM clock gating
Enable gating of the FIFO RAM.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="OTG_HS">
      <name>OTG_FS</name>
      <baseAddress>0x40080000</baseAddress>
      <interrupt>
        <name>OTG_FS</name>
        <description>USB OTG FS global interrupt</description>
        <value>112</value>
      </interrupt>
    </peripheral>
    <peripheral>
      <name>PKA</name>
      <description>Public key accelerator</description>
      <groupName>PKA</groupName>
      <baseAddress>0x48022000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x4000</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>PKA</name>
        <description>PKA global interrupt</description>
        <value>35</value>
      </interrupt>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>PKA control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>EN</name>
              <description>PKA enable.
When an illegal operation is selected while EN=1 OPERRF bit is set in PKA_SR. See PKA_CR.MODE bitfield for details.
Note: When EN=0 PKA RAM can still be accessed by the application.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>START</name>
              <description>start the operation
Writing 1 to this bit starts the operation which is selected by MODE[5:0], using the operands and data already written to the PKA RAM. This bit is always read as 0.
When an illegal operation is selected while START bit is set no operation is started, and OPERRF bit is set in PKA_SR.
Note: START is ignored if PKA is busy.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MODE</name>
              <description>PKA operation code
When an operation not listed here is written by the application with EN bit set, OPERRF bit is set in PKA_SR register, and the write to MODE bitfield is ignored. When PKA is configured in limited mode (LMF = 1 in PKA_SR), writing a MODE different from 0x26 with EN bit to 1 triggers OPERRF bit to be set and write to MODE bit is ignored.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PROCENDIE</name>
              <description>End of operation interrupt enable</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RAMERRIE</name>
              <description>RAM error interrupt enable</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADDRERRIE</name>
              <description>Address error interrupt enable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OPERRIE</name>
              <description>Operation error interrupt enable</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>PKA status register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INITOK</name>
              <description>PKA initialization OK
This bit is asserted when PKA initialization is complete. When RNG is not able to output proper random numbers INITOK stays at 0.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>LMF</name>
              <description>Limited mode flag
This bit is updated when EN bit in PKA_CR is set</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>BUSY</name>
              <description>PKA operation is in progress
This bit is set to 1 whenever START bit in the PKA_CR is set. It is automatically cleared when the computation is complete, meaning that PKA RAM can be safely accessed and a new operation can be started.
If PKA is started with a wrong opcode, it is busy for a couple of cycles, then it aborts automatically the operation and go back to ready (BUSY bit is set to 0).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PROCENDF</name>
              <description>PKA End of Operation flag</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RAMERRF</name>
              <description>PKA RAM error flag
This bit is cleared using RAMERRFC bit in PKA_CLRFR.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ADDRERRF</name>
              <description>Address error flag
This bit is cleared using ADDRERRFC bit in PKA_CLRFR.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OPERRF</name>
              <description>Operation error flag
This bit is cleared using OPERRFC bit in PKA_CLRFR.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CLRFR</name>
          <displayName>CLRFR</displayName>
          <description>PKA clear flag register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PROCENDFC</name>
              <description>Clear PKA End of Operation flag</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>RAMERRFC</name>
              <description>Clear PKA RAM error flag</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>ADDRERRFC</name>
              <description>Clear address error flag</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>OPERRFC</name>
              <description>Clear operation error flag</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>PSSI</name>
      <description>Parallel synchronous slave interface</description>
      <groupName>PSSI</groupName>
      <baseAddress>0x48000400</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>PSSI</name>
        <description>PSSI global interrupt</description>
        <value>130</value>
      </interrupt>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>PSSI control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x40000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CKPOL</name>
              <description>Parallel data clock polarity
This bit configures the capture edge of the parallel clock or the edge used for driving outputs, depending on OUTEN.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>CKPOL</name>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>Falling edge active for inputs or rising edge active for outputs</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>Rising edge active for inputs or falling edge active for outputs</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DEPOL</name>
              <description>Data enable (PSSI_DE) polarity
This bit indicates the level on the PSSI_DE pin when the data are not valid on the parallel interface.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>DEPOL</name>
                <enumeratedValue>
                  <name>ActiveLow</name>
                  <description>PSSI_DE active low (0 indicates that data is valid)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveHigh</name>
                  <description>PSSI_DE active high (1 indicates that data is valid)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RDYPOL</name>
              <description>Ready (PSSI_RDY) polarity
This bit indicates the level on the PSSI_RDY pin when the data are not valid on the parallel interface.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RDYPOL</name>
                <enumeratedValue>
                  <name>ActiveLow</name>
                  <description>PSSI_RDY active low (0 indicates that the receiver is ready to receive)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveHigh</name>
                  <description>PSSI_RDY active high (1 indicates that the receiver is ready to receive)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EDM</name>
              <description>Extended data mode</description>
              <bitOffset>10</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>EDM</name>
                <enumeratedValue>
                  <name>BitWidth8</name>
                  <description>Interface captures 8-bit data on every parallel data clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>BitWidth16</name>
                  <description>The interface captures 16-bit data on every parallel data clock</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ENABLE</name>
              <description>PSSI enable
The contents of the FIFO are flushed when ENABLE is cleared to 0.
Note: When ENABLE=1, the content of PSSI_CR must not be changed, except for the ENABLE bit itself. All configuration bits can change as soon as ENABLE changes from 0 to 1.
Note: The DMA controller and all PSSI configuration registers must be programmed correctly before setting the ENABLE bit to 1.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>ENABLE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>PSSI disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>PSSI enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DERDYCFG</name>
              <description>Data enable and ready configuration
When the PSSI_RDY function is mapped to the PSSI_DE pin (settings 101 or 111), it is still the RDYPOL bit which determines its polarity. Similarly, when the PSSI_DE function is mapped to the PSSI_RDY pin (settings 110 or 111), it is still the DEPOL bit which determines its polarity.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>DERDYCFG</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>PSSI_DE and PSSI_RDY both disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Rdy</name>
                  <description>Only PSSI_RDY enabled</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>De</name>
                  <description>Only PSSI_DE enabled</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>RdyDeAlt</name>
                  <description>Both PSSI_RDY and PSSI_DE alternate functions enabled</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>RdyDe</name>
                  <description>Both PSSI_RDY and PSSI_DE features enabled - bidirectional on PSSI_RDY pin</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>RdyRemapped</name>
                  <description>Only PSSI_RDY function enabled, but mapped to PSSI_DE pin</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DeRemapped</name>
                  <description>Only PSSI_DE function enabled, but mapped to PSSI_RDY pin</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>RdyDeBidi</name>
                  <description>Both PSSI_RDY and PSSI_DE features enabled - bidirectional on PSSI_DE pin</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CKSRC</name>
              <description>Clock source
This bit configures the clock source of the PSSI_PDCK.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DMAEN</name>
              <description>DMA enable bit</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>DMAEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DMA transfers are disabled. The user application can directly access the PSSI_DR register when DMA transfers are disabled.</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DMA transfers are enabled (default configuration). A DMA channel in the general-purpose DMA controller must be configured to perform transfers from/to PSSI_DR</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OUTEN</name>
              <description>Data direction selection bit</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>OUTEN</name>
                <enumeratedValue>
                  <name>ReceiveMode</name>
                  <description>Data is input synchronously with PSSI_PDCK</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TransmitMode</name>
                  <description>Data is output synchronously with PSSI_PDCK</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>PSSI status register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RTT4B</name>
              <description>FIFO is ready to transfer four bytes</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RTT4B</name>
                <enumeratedValue>
                  <name>NotReady</name>
                  <description>FIFO is not ready for a four-byte transfer</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ready</name>
                  <description>FIFO is ready for a four-byte (32-bit) transfer. In receive mode, this means that at least four valid data bytes are in the FIFO. In transmit mode, this means that there are at least four bytes free in the FIFO</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RTT1B</name>
              <description>FIFO is ready to transfer one byte</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RTT1B</name>
                <enumeratedValue>
                  <name>NotReady</name>
                  <description>FIFO is not ready for a 1-byte transfer</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ready</name>
                  <description>FIFO is ready for a one byte (32-bit) transfer. In receive mode, this means that at least one valid data byte is in the FIFO. In transmit mode, this means that there is at least one byte free in the FIFO</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>RIS</name>
          <displayName>RIS</displayName>
          <description>PSSI raw interrupt status register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OVR_RIS</name>
              <description>Data buffer overrun/underrun raw interrupt status
This bit is cleared by writing a 1 to the OVR_ISC bit in PSSI_ICR.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>OVR_RIS</name>
                <enumeratedValue>
                  <name>Cleared</name>
                  <description>No overrun/underrun occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Occurred</name>
                  <description>An overrun/underrun occurred: overrun in receive mode, underrun in transmit mode. This bit is cleared by writing a 1 to the OVR_ISC bit in PSSI_ICR</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>IER</name>
          <displayName>IER</displayName>
          <description>PSSI interrupt enable register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OVR_IE</name>
              <description>Data buffer overrun/underrun interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>OVR_IE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>No interrupt generation</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>An interrupt is generated if either an overrun or an underrun error occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>MIS</name>
          <displayName>MIS</displayName>
          <description>PSSI masked interrupt status register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OVR_MIS</name>
              <description>Data buffer overrun/underrun masked interrupt status
This bit is set to 1 only when PSSI_IER/OVR_IE and PSSI_RIS/OVR_RIS are both set to 1.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>OVR_MIS</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>No interrupt is generated when an overrun/underrun error occurs</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>An interrupt is generated if there is either an overrun or an underrun error and the OVR_IE bit is set in PSSI_IER</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ICR</name>
          <displayName>ICR</displayName>
          <description>PSSI interrupt clear register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OVR_ISC</name>
              <description>Data buffer overrun/underrun interrupt status clear
Writing this bit to 1 clears the OVR_RIS bit in PSSI_RIS.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues>
                <name>OVR_ISC</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Writing this bit to 1 clears the OVR_RIS bit in PSSI_RIS</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>DR</name>
          <displayName>DR</displayName>
          <description>PSSI data register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BYTE0</name>
              <description>Data byte 0</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>BYTE1</name>
              <description>Data byte 1</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>BYTE2</name>
              <description>Data byte 2</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>BYTE3</name>
              <description>Data byte 3</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>PWR</name>
      <description>Power control</description>
      <groupName>PWR</groupName>
      <baseAddress>0x58024800</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x54</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>PWR control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000001</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SVOS</name>
              <description>System Stop mode voltage scaling selection.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PVDE</name>
              <description>Programmable voltage detector enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PLS</name>
              <description>Programmable voltage detector level selection
These bits select the voltage threshold detected by the PVD.
Note: Refer to Section Electrical characteristics of the product datasheet for more details.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBP</name>
              <description>Disable backup domain write protection 
In reset state, the RCC_BDCR register, the RTC registers (including the backup registers),
BREN and MOEN bits in the PWR_CSR1 register, are protected against parasitic write access.
This bit must be set to enable write access to these registers.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FLPS</name>
              <description>Flash low-power mode in Stop mode
This bit allows to obtain the best trade-off between low-power consumption and restart time
when exiting from Stop mode.
When it is set, the Flash memory enters low-power mode when device is in Stop
mode.
consumption).</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RLPSN</name>
              <description>RAM low power mode disable in STOP.
When set the RAMs will not enter to low power mode when the system enters to STOP.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BOOSTE</name>
              <description>analog switch VBoost control
This bit enables the booster to guarantee the analog switch AC performance when the VDD 
supply voltage is below 2.7 V (reduction of the total harmonic distortion to have the same 
switch performance over the full supply voltage range)
The VDD supply voltage can be monitored through the PVD and the PLS bits.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AVDREADY</name>
              <description>analog voltage ready
This bit is only used when the analog switch boost needs to be enabled (see BOOSTE bit).
It must be set by software when the expected VDDA analog supply level is available.
The correct analog supply level is indicated by the AVDO bit (PWR_CSR1 register) after 
setting the AVDEN bit and selecting the supply level to be monitored (ALS bits).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AVDEN</name>
              <description>Peripheral voltage monitor on VDDA enable</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ALS</name>
              <description>Analog voltage detector level selection
These bits select the voltage threshold detected by the AVD.
Note: Refer to Section Electrical characteristics of the product datasheet for more details.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SR1</name>
          <displayName>SR1</displayName>
          <description>PWR control status register 1</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ACTVOS</name>
              <description>VOS currently applied for V&lt;sub&gt;CORE&lt;/sub&gt; voltage scaling selection.
These bit reflect the last VOS value applied to the PMU.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ACTVOSRDY</name>
              <description>Voltage levels ready bit for currently used ACTVOS and SDHILEVEL
This bit is set to 1 by hardware when the voltage regulator and the SMPS step-down
converter are both disabled and Bypass mode is selected in PWR control register 2
(PWR_CSR2).</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PVDO</name>
              <description>Programmable voltage detect output
This bit is set and cleared by hardware. It is valid only if the PVD has been enabled by the
PVDE bit.
PLS[2:0] bits.
bits.
Note: Since the PVD is disabled in Standby mode, this bit is equal to 0 after Standby or reset until the PVDE bit is set.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>AVDO</name>
              <description>Analog voltage detector output on VDDA
This bit is set and cleared by hardware. It is valid only if AVD on VDDA is enabled by the
AVDEN bit.
Note: Since the AVD is disabled in Standby mode, this bit is equal to 0 after Standby or reset until the AVDEN bit is set</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CSR1</name>
          <displayName>CSR1</displayName>
          <description>PWR control status register 1</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BREN</name>
              <description>Backup regulator enable
When set, the backup regulator (used to maintain the backup RAM content in Standby and V&lt;sub&gt;BAT&lt;/sub&gt; modes) is enabled. 
If BREN is reset, the backup regulator is switched off. The backup RAM can still be used in Run and Stop modes. However, its content will be lost in Standby and V&lt;sub&gt;BAT&lt;/sub&gt; modes. 
If BREN is set, the application must wait till the backup regulator ready flag (BRRDY) is set to indicate that the data written into the SRAM will be maintained in Standby and V&lt;sub&gt;BAT&lt;/sub&gt; modes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MONEN</name>
              <description>V&lt;sub&gt;BAT&lt;/sub&gt; and temperature monitoring enable
When set, the V&lt;sub&gt;BAT&lt;/sub&gt; supply and temperature monitoring is enabled.
Note: V&lt;sub&gt;BAT&lt;/sub&gt; and temperature monitoring are only available when the backup regulator is enabled (BREN bit set to 1).</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BRRDY</name>
              <description>Backup regulator ready
This bit is set by hardware to indicate that the backup regulator is ready.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>VBATL</name>
              <description>V&lt;sub&gt;BAT&lt;/sub&gt; level monitoring versus low threshold</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>VBATH</name>
              <description>V&lt;sub&gt;BAT&lt;/sub&gt; level monitoring versus high threshold</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TEMPL</name>
              <description>Temperature level monitoring versus low threshold</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TEMPH</name>
              <description>Temperature level monitoring versus high threshold</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CSR2</name>
          <displayName>CSR2</displayName>
          <description>PWR control register 2</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000006</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BYPASS</name>
              <description>Power management unit bypass
Note: Illegal combinations of SDHILEVEL, SMPSEXTHP, SDEN, LDOEN and BYPASS are described in Table 41.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-writeOnce</access>
            </field>
            <field>
              <name>LDOEN</name>
              <description>Low drop-out regulator enable
Note: Illegal combinations of SDHILEVEL, SMPSEXTHP, SDEN, LDOEN and BYPASS are described in Table 41.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-writeOnce</access>
            </field>
            <field>
              <name>SDEN</name>
              <description>SMPS step-down converter enable
Note: Illegal combinations of SDHILEVEL, SMPSEXTHP, SDEN, LDOEN and BYPASS are described in Table 41.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-writeOnce</access>
            </field>
            <field>
              <name>SMPSEXTHP</name>
              <description>SMPS external power delivery selection
Note: Illegal combinations of SDHILEVEL, SMPSEXTHP, SDEN, LDOEN and BYPASS are described in Table 41.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-writeOnce</access>
            </field>
            <field>
              <name>SDHILEVEL</name>
              <description>SMPS step-down converter voltage output for LDO or external supply
 This bit is used when both the LDO and SMPS step-down converter are enabled with SDEN and LDOEN enabled or when SMPSEXTHP is enabled. In this case SDHILEVEL has to be set to 1 to confirm the regulator settings</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-writeOnce</access>
            </field>
            <field>
              <name>VBE</name>
              <description>VBAT charging enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VBRS</name>
              <description>VBAT charging resistor selection</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>XSPICAP1</name>
              <description>XSPI port 1 capacitor control bits 
 see the product datasheet for more details</description>
              <bitOffset>10</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>XSPICAP2</name>
              <description>XSPI port 2 capacitor control bits 
 see the product datasheet for more details</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EN_XSPIM1</name>
              <description>EN_XSPIM1: this bit allow the SW to enable the XSPI interface. The XSPIM_P1 
supply must be stable prior to setting this bit.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EN_XSPIM2</name>
              <description>EN_XSPIM2: this bit allows the SW to enable the XSPI interface, when 
available. The XSPIM_P2 supply must be stable prior to setting this bit. It should also be set 
when FMC is used.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SDEXTRDY</name>
              <description>SMPS step-down converter external supply ready
 This bit is set by hardware to indicate that the external supply from the SMPS step-down converter 
 is ready.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>USB33DEN</name>
              <description>VDD33_USB voltage level detector enable</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USBREGEN</name>
              <description>USB regulator enable.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USB33RDY</name>
              <description>USB supply ready.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>USBHSREGEN</name>
              <description>USB HS regulator enable.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CSR3</name>
          <displayName>CSR3</displayName>
          <description>PWR CPU control register 3</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PDDS</name>
              <description>Power Down Deepsleep.
This bit allows CPU to define the Deepsleep mode</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CSSF</name>
              <description>Clear Standby and Stop flags (always read as 0)
This bit is cleared to 0 by hardware.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>STOPF</name>
              <description>STOP flag 
This bit is set by hardware and cleared only by any reset or by setting the CPU CSSF bit.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SBF</name>
              <description>System Standby flag 
This bit is set by hardware and cleared only by a POR (Power-on Reset) or by setting the 
CPU CSSF bit</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CSR4</name>
          <displayName>CSR4</displayName>
          <description>PWR control status register 4</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000002</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>VOS</name>
              <description>Voltage scaling selection according to performance
These bits control the V&lt;sub&gt;CORE&lt;/sub&gt; voltage level and allow to obtains the best trade-off between
power consumption and performance:
  When increasing the performance, the voltage scaling must be changed before increasing
the system frequency.
  When decreasing performance, the system frequency must first be decreased before
changing the voltage scaling.
Note: Refer to Section Electrical characteristics of the product datasheet for more details.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VOSRDY</name>
              <description>VOS Ready bit</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>WKUPCR</name>
          <displayName>WKUPCR</displayName>
          <description>PWR wakeup clear register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>WKUPC1</name>
              <description>Clear Wakeup pin flag for WKUP1
These bits are always read as 0.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WKUPC2</name>
              <description>Clear Wakeup pin flag for WKUP2
These bits are always read as 0.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WKUPC3</name>
              <description>Clear Wakeup pin flag for WKUP3
These bits are always read as 0.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WKUPC4</name>
              <description>Clear Wakeup pin flag for WKUP4
These bits are always read as 0.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>WKUPFR</name>
          <displayName>WKUPFR</displayName>
          <description>PWR wakeup flag register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>WKUPF1</name>
              <description>Wakeup pin WKUP1 flag.
This bit is set by hardware and cleared only by a Reset pin or by setting the WKUPC1 bit in the         
PWR wakeup clear register (PWR_WKUPCR).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>WKUPF2</name>
              <description>Wakeup pin WKUP2 flag.
This bit is set by hardware and cleared only by a Reset pin or by setting the WKUPC2 bit in the         
PWR wakeup clear register (PWR_WKUPCR).</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>WKUPF3</name>
              <description>Wakeup pin WKUP3 flag.
This bit is set by hardware and cleared only by a Reset pin or by setting the WKUPC3 bit in the         
PWR wakeup clear register (PWR_WKUPCR).</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>WKUPF4</name>
              <description>Wakeup pin WKUP4 flag.
This bit is set by hardware and cleared only by a Reset pin or by setting the WKUPC4 bit in the         
PWR wakeup clear register (PWR_WKUPCR).</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>WKUPEPR</name>
          <displayName>WKUPEPR</displayName>
          <description>PWR wakeup enable and polarity register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>WKUPEN1</name>
              <description>Enable Wakeup Pin WKUPn, (n = 4, 3, 2, 1)
Each bit is set and cleared by software.
Note: An additional wakeup event is detected if WKUPn+1 pin is enabled (by setting the WKUPENn         
bit) when WKUPn pin level is already high when WKUPPn+1 selects rising edge, or low when         
WKUPPn selects falling edge.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WKUPEN2</name>
              <description>Enable Wakeup Pin WKUPn, (n = 4, 3, 2, 1)
Each bit is set and cleared by software.
Note: An additional wakeup event is detected if WKUPn+1 pin is enabled (by setting the WKUPENn         
bit) when WKUPn pin level is already high when WKUPPn+1 selects rising edge, or low when         
WKUPPn selects falling edge.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WKUPEN3</name>
              <description>Enable Wakeup Pin WKUPn, (n = 4, 3, 2, 1)
Each bit is set and cleared by software.
Note: An additional wakeup event is detected if WKUPn+1 pin is enabled (by setting the WKUPENn         
bit) when WKUPn pin level is already high when WKUPPn+1 selects rising edge, or low when         
WKUPPn selects falling edge.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WKUPEN4</name>
              <description>Enable Wakeup Pin WKUPn, (n = 4, 3, 2, 1)
Each bit is set and cleared by software.
Note: An additional wakeup event is detected if WKUPn+1 pin is enabled (by setting the WKUPENn         
bit) when WKUPn pin level is already high when WKUPPn+1 selects rising edge, or low when         
WKUPPn selects falling edge.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WKUPP1</name>
              <description>Wakeup pin polarity bit for WKUPn, (n = 4, 3, 2, 1)
These bits define the polarity used for event detection on WKUPn external wakeup pin.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WKUPP2</name>
              <description>Wakeup pin polarity bit for WKUPn, (n = 4, 3, 2, 1)
These bits define the polarity used for event detection on WKUPn external wakeup pin.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WKUPP3</name>
              <description>Wakeup pin polarity bit for WKUPn, (n = 4, 3, 2, 1)
These bits define the polarity used for event detection on WKUPn external wakeup pin.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WKUPP4</name>
              <description>Wakeup pin polarity bit for WKUPn, (n = 4, 3, 2, 1)
These bits define the polarity used for event detection on WKUPn external wakeup pin.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WKUPPUPD1</name>
              <description>Wakeup pin pull configuration for WKUPn,
These bits define the I/O pad pull configuration used when WKUPENn = 1. The associated GPIO         
port pull configuration must be set to the same value or to 00.
The Wakeup pin pull configuration is kept in Standby mode.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WKUPPUPD2</name>
              <description>Wakeup pin pull configuration for WKUPn,
These bits define the I/O pad pull configuration used when WKUPENn = 1. The associated GPIO         
port pull configuration must be set to the same value or to 00.
The Wakeup pin pull configuration is kept in Standby mode.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WKUPPUPD3</name>
              <description>Wakeup pin pull configuration for WKUPn,
These bits define the I/O pad pull configuration used when WKUPENn = 1. The associated GPIO         
port pull configuration must be set to the same value or to 00.
The Wakeup pin pull configuration is kept in Standby mode.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WKUPPUPD4</name>
              <description>Wakeup pin pull configuration for WKUPn,
These bits define the I/O pad pull configuration used when WKUPENn = 1. The associated GPIO         
port pull configuration must be set to the same value or to 00.
The Wakeup pin pull configuration is kept in Standby mode.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>UCPDR</name>
          <displayName>UCPDR</displayName>
          <description>PWR USB Type-C and Power Delivery register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000002</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>UCPD_DBDIS</name>
              <description>UCPD dead battery disable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UCPD_STBY</name>
              <description>UCPD Standby mode
When set, this bit is used to memorize the UCPD configuration in Standby mode. 
This bit must be written to 1 just before entering Standby mode when using UCPD.
It must be written to 0 after exiting the Standby mode and before writing any UCPD registers.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>APCR</name>
          <displayName>APCR</displayName>
          <description>PWR apply pull configuration register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <resetValue>0x00030000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>APC</name>
              <description>Apply pull-up and pull-down configuration
When this bit is set, the I/O pull-up and pull-down configurations defined in PO5_PUPD, PN7_PUPD bits and PUCRx, PDCRx registers are applied in Standby mode even after wakeup until APC bit is reset to 0.
When this bit is cleared,  the I/O pull-up or pull-down configurations defined in PO5_PUPD, PN7_PUPD bits and PUCRx and PDCRx registers are not applied in Standby mode and IO becomes Hi-Z.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PN7_PUPD</name>
              <description>Port N bit 7 pull-up/down configuration
When this bit is set, a weak pull-up or pull-down resistor is applied on PN7 following inverse logic applied on PN6.
If the PUN6 bit in PWR_PUCRN register is set and APC bit is set the week pull-down is applied on PN7.
If the PDN6 bit in PWR_PDCRN register is set and APC bit is set the week pull-up is applied on PN7.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PO5_PUPD</name>
              <description>Port O bit 5 pull-up/down configuration
When this bit is set, a weak pull-up or pull down resistor is applied on PO5 following inverse logic applied on PO4.
If the PUO4 bit in PWR_PUCRO register is set and APC bit is set the week pull-down is applied on PO5.
If the PDO4 bit in PWR_PDCRO register is set and APC bit is set the week pull-up is applied on PO5..</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>I3CPB6_PU</name>
              <description>Port PB6 I3C pull-up bit 
When I3C is used on PB6, when set, this bit activates the pull-up on I3C1_SCL (PB6) in standby mode.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>I3CPB7_PU</name>
              <description>Port PB7 I3C pull-up bit 
When I3C is used on PB7, when set, this bit activates the pull-up on I3C1_SDA (PB7) in standby mode.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>I3CPB8_PU</name>
              <description>Port PB8 I3C pull-up bit 
When I3C is used on PB8, when set, this bit activates the pull-up on I3C1_SCL (PB8) in standby mode.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>I3CPB9_PU</name>
              <description>Port PB9 I3C pull-up bit 
When I3C is used on PB9, when set, this bit activates the pull-up on I3C1_SDA (PB9) in standby mode.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PUCRN</name>
          <displayName>PUCRN</displayName>
          <description>PWR port N pull-up control register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PUN1</name>
              <description>Port N pull-up bit 1
When set, each bit activates the pull-up on PN1 when the APC bit is set in PWR_APCR. The pull-up is not activated if the corresponding PD1 bit is also set.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PUN6</name>
              <description>Port N pull-up bit 6 
When set activates the pull-up on PN6 when the APC bit is set in PWR_APCR. The pull-up is not activated if the corresponding PDN6 bit is also set.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PUN12</name>
              <description>Port N pull-up bit 12 
When set, each bit activates the pull-up on PN12 when the APC bit is set in PWR_APCR. The pull-up is not activated if the corresponding PD12 bit is also set.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PDCRN</name>
          <displayName>PDCRN</displayName>
          <description>PWR port N pull-down control register</description>
          <addressOffset>0x38</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PDN0</name>
              <description>Port N pull-down bit 0
When set activates the pull-down on PN0 when the APC bit is set in PWR_APCR.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PDN1</name>
              <description>Port N pull-down bit 1
When set activates the pull-down on PN1 when the APC bit is set in PWR_APCR.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PDN2N5</name>
              <description>Port N PN2 to PN5 pull-down activation
When set, four pull-down resistors are activated on PN2 to PN5 when the APC bit is set in PWR_APCR.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PDN6</name>
              <description>Port N pull-down bit 6
When set activates the pull-down on PN6 when the APC bit is set in PWR_APCR.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PDN8N11</name>
              <description>Port N - PN8 to PN11 pull-down activation
When set, four pull-down resistors are activated on PN8 to PN11 when the APC bit is set in PWR_APCR.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PDN12</name>
              <description>Port N pull-down bit 12
When set activates the pull-down on PN12 when the APC bit is set in PWR_APCR.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PUCRO</name>
          <displayName>PUCRO</displayName>
          <description>PWR port O pull-up control register</description>
          <addressOffset>0x3C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PUO0</name>
              <description>(n = 1 to 0) Port O pull-up bits 
When set, each bit activates the pull-up on POy when the APC bit is set in PWR_APCR. The pull-up is not activated if the corresponding bits in PWR_PDCRO is also set.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PUO1</name>
              <description>(n = 1 to 0) Port O pull-up bits 
When set, each bit activates the pull-up on POy when the APC bit is set in PWR_APCR. The pull-up is not activated if the corresponding bits in PWR_PDCRO is also set.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PUO4</name>
              <description>Port O pull-up bit 4
When set activates the pull-up on PO4 when the APC bit is set in PWR_APCR. The pull-up is not activated if the corresponding bits PDO4 in PWR_PDCRO is also set.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PDCRO</name>
          <displayName>PDCRO</displayName>
          <description>PWR port O pull-down control register</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PDO0</name>
              <description>Port O pull-down bit y 
When set, each bit activates the pull-down on POy when the APC bit is set in PWR_APCR.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PDO1</name>
              <description>Port O pull-down bit y 
When set, each bit activates the pull-down on POy when the APC bit is set in PWR_APCR.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PDO2</name>
              <description>Port O pull-down bit y 
When set, each bit activates the pull-down on POy when the APC bit is set in PWR_APCR.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PDO3</name>
              <description>Port O pull-down bit y 
When set, each bit activates the pull-down on POy when the APC bit is set in PWR_APCR.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PDO4</name>
              <description>Port O pull-down bit y 
When set, each bit activates the pull-down on POy when the APC bit is set in PWR_APCR.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PDCRP</name>
          <displayName>PDCRP</displayName>
          <description>PWR port P pull-down control register</description>
          <addressOffset>0x44</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PDP0P3</name>
              <description>Port P0-P3 pull-down activation
When set, four pull-down resistors are activated on P0 to P3 when the APC bit is set in PWR_APCR.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PDP4P7</name>
              <description>Port P4-P7 pull-down activation
When set, four pull-down resitors are activated on P4 to P7 when the APC bit is set in PWR_APCR.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PDP8P11</name>
              <description>Port P8-P11 pull-down activation
When set, four pull-down resistors are activated on P8 to P11 when the APC bit is set in PWR_APCR.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PDP12P15</name>
              <description>Port P12-P15 pull-down activation
 When set, four pull-down resistors are activated on P8 to P11 when the APC bit is set in PWR_APCR.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PDR1</name>
          <displayName>PDR1</displayName>
          <description>PWR debug register 1</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>UNLOCKED</name>
              <description>Debug Register Unlocked.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SDFPWMEN</name>
              <description>Step down converter force PWM mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SYNC_ADC</name>
              <description>(Non-User bit)</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>RAMCFG</name>
      <description>RAMs configuration controller</description>
      <groupName>RAMCFG</groupName>
      <baseAddress>0x58027000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x1000</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>IER</name>
          <displayName>IER</displayName>
          <description>RAMECC interrupt enable register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>GIE</name>
              <description>Global interrupt enable
When GIE bit is set to 1, an interrupt is generated when an enabled global ECC error (GECCDEBWIE, GECCDEIE or GECCSEIE) occurs.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GECCSEIE</name>
              <description>Global ECC single error interrupt enable
When GECCSEIE bit is set to 1, an interrupt is generated when an ECC single error occurs during a read operation from RAM.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GECCDEIE</name>
              <description>Global ECC double error interrupt enable
When GECCDEIE bit is set to 1, an interrupt is generated when an ECC double detection error occurs during a read operation from RAM.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GECCDEBWIE</name>
              <description>Global ECC double error on byte write (BW) interrupt enable
When GECCDEBWIE bit is set to 1, an interrupt is generated when an ECC double detection error occurs during a byte write operation to RAM (incomplete word write).</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M1CR</name>
          <displayName>M1CR</displayName>
          <description>RAMECC monitor 1 configuration register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ECCSEIE</name>
              <description>ECC single error interrupt enable
When ECCSEIE bit is set to 1, monitor x generates an interrupt when an ECC single error occurs during a read operation from RAM.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCDEIE</name>
              <description>ECC double error interrupt enable
When ECCDEIE bit is set to 1, monitor x generates an interrupt when an ECC double detection error occurs during a read operation from RAM.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCDEBWIE</name>
              <description>ECC double error on byte write (BW) interrupt enable 
When ECCDEBWIE bit is set to 1, monitor x generates an interrupt when an ECC double detection error occurs during a byte write operation to RAM.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCELEN</name>
              <description>ECC error latching enable
When ECCELEN bit is set to 1, if an ECC error occurs (both for single error correction or double detection) during a read operation, the context (address, data and ECC code) that generated the error are latched to their respective registers.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCSECEN</name>
              <description>ECC single error counter enable
When ECCSECEN bit is set to 1, the occurrence counter is incremented when an ECC single error occurs during a read operation from RAM.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCDECEN</name>
              <description>ECC double error counter enable
When ECCDECEN bit is set to 1, the occurrence counter is incremented when an ECC double detection error occurs during a read operation from RAM.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCDEBWCEN</name>
              <description>ECC double error on byte write (BW) counter enable
When ECCDEBWCEN bit is set to 1, the occurrence counter is incremented when an ECC double detection error occurs during a byte write operation to RAM.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCTEA</name>
              <description>ECC Test ECC access</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M1SR</name>
          <displayName>M1SR</displayName>
          <description>RAMECC monitor 1 status register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SEDCF</name>
              <description>ECC single error detected and corrected flag
This bit is set by hardware. It is cleared by software by writing a 0</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DEDF</name>
              <description>ECC double error detected flag
This bit is set by hardware. It is cleared by software by writing a 0</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DEBWDF</name>
              <description>ECC double error on byte write (BW) detected flag 
This bit is set by hardware. It is cleared by software by writing a 0</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M1FAR</name>
          <displayName>M1FAR</displayName>
          <description>RAMECC monitor 1 failing address register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FADD</name>
              <description>ECC error failing address 
When an ECC error occurs the FADD bitfield contains the address that generated the ECC error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M1FDRL</name>
          <displayName>M1FDRL</displayName>
          <description>RAMECC monitor 1 failing data low register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FDATAL</name>
              <description>Failing data low
When an ECC error occurs the FDATAL bitfield contains the LSB part of the data that generated the error. For 32-bit word SRAM, this bitfield contains the full memory word that generated the error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M1FDRH</name>
          <displayName>M1FDRH</displayName>
          <description>RAMECC monitor 1 failing data high register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FDATAH</name>
              <description>Failing data high (64-bit memory)
When an ECC error occurs the FDATAH bitfield contains the MSB part of the data that generated the error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M1FECR</name>
          <displayName>M1FECR</displayName>
          <description>RAMECC monitor 1 failing ECC error code register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FEC</name>
              <description>Failing error code
When an ECC error occurs the FEC bitfield contains the ECC failing code that generated the error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M2CR</name>
          <displayName>M2CR</displayName>
          <description>RAMECC monitor 2 configuration register</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ECCSEIE</name>
              <description>ECC single error interrupt enable
When ECCSEIE bit is set to 1, monitor x generates an interrupt when an ECC single error occurs during a read operation from RAM.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCDEIE</name>
              <description>ECC double error interrupt enable
When ECCDEIE bit is set to 1, monitor x generates an interrupt when an ECC double detection error occurs during a read operation from RAM.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCDEBWIE</name>
              <description>ECC double error on byte write (BW) interrupt enable 
When ECCDEBWIE bit is set to 1, monitor x generates an interrupt when an ECC double detection error occurs during a byte write operation to RAM.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCELEN</name>
              <description>ECC error latching enable
When ECCELEN bit is set to 1, if an ECC error occurs (both for single error correction or double detection) during a read operation, the context (address, data and ECC code) that generated the error are latched to their respective registers.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCSECEN</name>
              <description>ECC single error counter enable
When ECCSECEN bit is set to 1, the occurrence counter is incremented when an ECC single error occurs during a read operation from RAM.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCDECEN</name>
              <description>ECC double error counter enable
When ECCDECEN bit is set to 1, the occurrence counter is incremented when an ECC double detection error occurs during a read operation from RAM.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCDEBWCEN</name>
              <description>ECC double error on byte write (BW) counter enable
When ECCDEBWCEN bit is set to 1, the occurrence counter is incremented when an ECC double detection error occurs during a byte write operation to RAM.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCTEA</name>
              <description>ECC Test ECC access</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M2SR</name>
          <displayName>M2SR</displayName>
          <description>RAMECC monitor 2 status register</description>
          <addressOffset>0x44</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SEDCF</name>
              <description>ECC single error detected and corrected flag
This bit is set by hardware. It is cleared by software by writing a 0</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DEDF</name>
              <description>ECC double error detected flag
This bit is set by hardware. It is cleared by software by writing a 0</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DEBWDF</name>
              <description>ECC double error on byte write (BW) detected flag 
This bit is set by hardware. It is cleared by software by writing a 0</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M2FAR</name>
          <displayName>M2FAR</displayName>
          <description>RAMECC monitor 2 failing address register</description>
          <addressOffset>0x48</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FADD</name>
              <description>ECC error failing address 
When an ECC error occurs the FADD bitfield contains the address that generated the ECC error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M2FDRL</name>
          <displayName>M2FDRL</displayName>
          <description>RAMECC monitor 2 failing data low register</description>
          <addressOffset>0x4C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FDATAL</name>
              <description>Failing data low
When an ECC error occurs the FDATAL bitfield contains the LSB part of the data that generated the error. For 32-bit word SRAM, this bitfield contains the full memory word that generated the error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M2FDRH</name>
          <displayName>M2FDRH</displayName>
          <description>RAMECC monitor 2 failing data high register</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FDATAH</name>
              <description>Failing data high (64-bit memory)
When an ECC error occurs the FDATAH bitfield contains the MSB part of the data that generated the error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M2FECR</name>
          <displayName>M2FECR</displayName>
          <description>RAMECC monitor 2 failing ECC error code register</description>
          <addressOffset>0x54</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FEC</name>
              <description>Failing error code
When an ECC error occurs the FEC bitfield contains the ECC failing code that generated the error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M3CR</name>
          <displayName>M3CR</displayName>
          <description>RAMECC monitor 3 configuration register</description>
          <addressOffset>0x60</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ECCSEIE</name>
              <description>ECC single error interrupt enable
When ECCSEIE bit is set to 1, monitor x generates an interrupt when an ECC single error occurs during a read operation from RAM.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCDEIE</name>
              <description>ECC double error interrupt enable
When ECCDEIE bit is set to 1, monitor x generates an interrupt when an ECC double detection error occurs during a read operation from RAM.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCDEBWIE</name>
              <description>ECC double error on byte write (BW) interrupt enable 
When ECCDEBWIE bit is set to 1, monitor x generates an interrupt when an ECC double detection error occurs during a byte write operation to RAM.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCELEN</name>
              <description>ECC error latching enable
When ECCELEN bit is set to 1, if an ECC error occurs (both for single error correction or double detection) during a read operation, the context (address, data and ECC code) that generated the error are latched to their respective registers.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCSECEN</name>
              <description>ECC single error counter enable
When ECCSECEN bit is set to 1, the occurrence counter is incremented when an ECC single error occurs during a read operation from RAM.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCDECEN</name>
              <description>ECC double error counter enable
When ECCDECEN bit is set to 1, the occurrence counter is incremented when an ECC double detection error occurs during a read operation from RAM.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCDEBWCEN</name>
              <description>ECC double error on byte write (BW) counter enable
When ECCDEBWCEN bit is set to 1, the occurrence counter is incremented when an ECC double detection error occurs during a byte write operation to RAM.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCTEA</name>
              <description>ECC Test ECC access</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M3SR</name>
          <displayName>M3SR</displayName>
          <description>RAMECC monitor 3 status register</description>
          <addressOffset>0x64</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SEDCF</name>
              <description>ECC single error detected and corrected flag
This bit is set by hardware. It is cleared by software by writing a 0</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DEDF</name>
              <description>ECC double error detected flag
This bit is set by hardware. It is cleared by software by writing a 0</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DEBWDF</name>
              <description>ECC double error on byte write (BW) detected flag 
This bit is set by hardware. It is cleared by software by writing a 0</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M3FAR</name>
          <displayName>M3FAR</displayName>
          <description>RAMECC monitor 3 failing address register</description>
          <addressOffset>0x68</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FADD</name>
              <description>ECC error failing address 
When an ECC error occurs the FADD bitfield contains the address that generated the ECC error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M3FDRL</name>
          <displayName>M3FDRL</displayName>
          <description>RAMECC monitor 3 failing data low register</description>
          <addressOffset>0x6C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FDATAL</name>
              <description>Failing data low
When an ECC error occurs the FDATAL bitfield contains the LSB part of the data that generated the error. For 32-bit word SRAM, this bitfield contains the full memory word that generated the error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M3FDRH</name>
          <displayName>M3FDRH</displayName>
          <description>RAMECC monitor 3 failing data high register</description>
          <addressOffset>0x70</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FDATAH</name>
              <description>Failing data high (64-bit memory)
When an ECC error occurs the FDATAH bitfield contains the MSB part of the data that generated the error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M3FECR</name>
          <displayName>M3FECR</displayName>
          <description>RAMECC monitor 3 failing ECC error code register</description>
          <addressOffset>0x74</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FEC</name>
              <description>Failing error code
When an ECC error occurs the FEC bitfield contains the ECC failing code that generated the error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M4CR</name>
          <displayName>M4CR</displayName>
          <description>RAMECC monitor 4 configuration register</description>
          <addressOffset>0x80</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ECCSEIE</name>
              <description>ECC single error interrupt enable
When ECCSEIE bit is set to 1, monitor x generates an interrupt when an ECC single error occurs during a read operation from RAM.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCDEIE</name>
              <description>ECC double error interrupt enable
When ECCDEIE bit is set to 1, monitor x generates an interrupt when an ECC double detection error occurs during a read operation from RAM.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCDEBWIE</name>
              <description>ECC double error on byte write (BW) interrupt enable 
When ECCDEBWIE bit is set to 1, monitor x generates an interrupt when an ECC double detection error occurs during a byte write operation to RAM.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCELEN</name>
              <description>ECC error latching enable
When ECCELEN bit is set to 1, if an ECC error occurs (both for single error correction or double detection) during a read operation, the context (address, data and ECC code) that generated the error are latched to their respective registers.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCSECEN</name>
              <description>ECC single error counter enable
When ECCSECEN bit is set to 1, the occurrence counter is incremented when an ECC single error occurs during a read operation from RAM.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCDECEN</name>
              <description>ECC double error counter enable
When ECCDECEN bit is set to 1, the occurrence counter is incremented when an ECC double detection error occurs during a read operation from RAM.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCDEBWCEN</name>
              <description>ECC double error on byte write (BW) counter enable
When ECCDEBWCEN bit is set to 1, the occurrence counter is incremented when an ECC double detection error occurs during a byte write operation to RAM.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCTEA</name>
              <description>ECC Test ECC access</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M4SR</name>
          <displayName>M4SR</displayName>
          <description>RAMECC monitor 4 status register</description>
          <addressOffset>0x84</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SEDCF</name>
              <description>ECC single error detected and corrected flag
This bit is set by hardware. It is cleared by software by writing a 0</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DEDF</name>
              <description>ECC double error detected flag
This bit is set by hardware. It is cleared by software by writing a 0</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DEBWDF</name>
              <description>ECC double error on byte write (BW) detected flag 
This bit is set by hardware. It is cleared by software by writing a 0</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M4FAR</name>
          <displayName>M4FAR</displayName>
          <description>RAMECC monitor 4 failing address register</description>
          <addressOffset>0x88</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FADD</name>
              <description>ECC error failing address 
When an ECC error occurs the FADD bitfield contains the address that generated the ECC error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M4FDRL</name>
          <displayName>M4FDRL</displayName>
          <description>RAMECC monitor 4 failing data low register</description>
          <addressOffset>0x8C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FDATAL</name>
              <description>Failing data low
When an ECC error occurs the FDATAL bitfield contains the LSB part of the data that generated the error. For 32-bit word SRAM, this bitfield contains the full memory word that generated the error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M4FDRH</name>
          <displayName>M4FDRH</displayName>
          <description>RAMECC monitor 4 failing data high register</description>
          <addressOffset>0x90</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FDATAH</name>
              <description>Failing data high (64-bit memory)
When an ECC error occurs the FDATAH bitfield contains the MSB part of the data that generated the error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M4FECR</name>
          <displayName>M4FECR</displayName>
          <description>RAMECC monitor 4 failing ECC error code register</description>
          <addressOffset>0x94</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FEC</name>
              <description>Failing error code
When an ECC error occurs the FEC bitfield contains the ECC failing code that generated the error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M5CR</name>
          <displayName>M5CR</displayName>
          <description>RAMECC monitor 5 configuration register</description>
          <addressOffset>0xA0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ECCSEIE</name>
              <description>ECC single error interrupt enable
When ECCSEIE bit is set to 1, monitor x generates an interrupt when an ECC single error occurs during a read operation from RAM.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCDEIE</name>
              <description>ECC double error interrupt enable
When ECCDEIE bit is set to 1, monitor x generates an interrupt when an ECC double detection error occurs during a read operation from RAM.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCDEBWIE</name>
              <description>ECC double error on byte write (BW) interrupt enable 
When ECCDEBWIE bit is set to 1, monitor x generates an interrupt when an ECC double detection error occurs during a byte write operation to RAM.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCELEN</name>
              <description>ECC error latching enable
When ECCELEN bit is set to 1, if an ECC error occurs (both for single error correction or double detection) during a read operation, the context (address, data and ECC code) that generated the error are latched to their respective registers.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCSECEN</name>
              <description>ECC single error counter enable
When ECCSECEN bit is set to 1, the occurrence counter is incremented when an ECC single error occurs during a read operation from RAM.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCDECEN</name>
              <description>ECC double error counter enable
When ECCDECEN bit is set to 1, the occurrence counter is incremented when an ECC double detection error occurs during a read operation from RAM.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCDEBWCEN</name>
              <description>ECC double error on byte write (BW) counter enable
When ECCDEBWCEN bit is set to 1, the occurrence counter is incremented when an ECC double detection error occurs during a byte write operation to RAM.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ECCTEA</name>
              <description>ECC Test ECC access</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M5SR</name>
          <displayName>M5SR</displayName>
          <description>RAMECC monitor 5 status register</description>
          <addressOffset>0xA4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SEDCF</name>
              <description>ECC single error detected and corrected flag
This bit is set by hardware. It is cleared by software by writing a 0</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DEDF</name>
              <description>ECC double error detected flag
This bit is set by hardware. It is cleared by software by writing a 0</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DEBWDF</name>
              <description>ECC double error on byte write (BW) detected flag 
This bit is set by hardware. It is cleared by software by writing a 0</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M5FAR</name>
          <displayName>M5FAR</displayName>
          <description>RAMECC monitor 5 failing address register</description>
          <addressOffset>0xA8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FADD</name>
              <description>ECC error failing address 
When an ECC error occurs the FADD bitfield contains the address that generated the ECC error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M5FDRL</name>
          <displayName>M5FDRL</displayName>
          <description>RAMECC monitor 5 failing data low register</description>
          <addressOffset>0xAC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FDATAL</name>
              <description>Failing data low
When an ECC error occurs the FDATAL bitfield contains the LSB part of the data that generated the error. For 32-bit word SRAM, this bitfield contains the full memory word that generated the error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M5FDRH</name>
          <displayName>M5FDRH</displayName>
          <description>RAMECC monitor 5 failing data high register</description>
          <addressOffset>0xB0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FDATAH</name>
              <description>Failing data high (64-bit memory)
When an ECC error occurs the FDATAH bitfield contains the MSB part of the data that generated the error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>M5FECR</name>
          <displayName>M5FECR</displayName>
          <description>RAMECC monitor 5 failing ECC error code register</description>
          <addressOffset>0xB4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FEC</name>
              <description>Failing error code
When an ECC error occurs the FEC bitfield contains the ECC failing code that generated the error.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>RCC</name>
      <description>RCC register block</description>
      <groupName>RCC</groupName>
      <baseAddress>0x58024400</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x184</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>RCC</name>
        <description>RCC global interrupt</description>
        <value>5</value>
      </interrupt>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>RCC source control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000025</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>HSION</name>
              <description>HSI clock enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>HSION</name>
                <enumeratedValue>
                  <name>Off</name>
                  <description>Clock Off</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>On</name>
                  <description>Clock On</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HSIKERON</name>
              <description>HSI clock enable in Stop mode</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HSION"/>
            </field>
            <field>
              <name>HSIRDY</name>
              <description>HSI clock ready flag</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>HSIRDYR</name>
                <enumeratedValue>
                  <name>NotReady</name>
                  <description>Clock not ready</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ready</name>
                  <description>Clock ready</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HSIDIV</name>
              <description>HSI clock divider</description>
              <bitOffset>3</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>HSIDIV</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>No division</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>Division by 2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>Division by 4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>Division by 8</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HSIDIVF</name>
              <description>HSI divider flag</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>HSIDIVFR</name>
                <enumeratedValue>
                  <name>NotPropagated</name>
                  <description>New HSIDIV ratio has not yet propagated to hsi_ck</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Propagated</name>
                  <description>HSIDIV ratio has propagated to hsi_ck</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CSION</name>
              <description>CSI clock enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HSION"/>
            </field>
            <field>
              <name>CSIRDY</name>
              <description>CSI clock ready flag</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="HSIRDYR"/>
            </field>
            <field>
              <name>CSIKERON</name>
              <description>CSI clock enable in Stop mode</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HSION"/>
            </field>
            <field>
              <name>HSI48ON</name>
              <description>HSI48 clock enable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HSION"/>
            </field>
            <field>
              <name>HSI48RDY</name>
              <description>HSI48 clock ready flag</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="HSIRDYR"/>
            </field>
            <field>
              <name>HSEON</name>
              <description>HSE clock enable</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HSION"/>
            </field>
            <field>
              <name>HSERDY</name>
              <description>HSE clock ready flag</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="HSIRDYR"/>
            </field>
            <field>
              <name>HSEBYP</name>
              <description>HSE clock bypass</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>HSEBYP</name>
                <enumeratedValue>
                  <name>NotBypassed</name>
                  <description>HSE crystal oscillator not bypassed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bypassed</name>
                  <description>HSE crystal oscillator bypassed with external clock</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HSEEXT</name>
              <description>external high speed clock type in Bypass mode</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HSECSSON</name>
              <description>HSE clock security system enable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HSION"/>
            </field>
            <field>
              <name>PLL1ON</name>
              <description>PLL1 enable</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HSION"/>
            </field>
            <field>
              <name>PLL1RDY</name>
              <description>PLL1 clock ready flag</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="HSIRDYR"/>
            </field>
            <field>
              <name>PLL2ON</name>
              <description>PLL2 enable</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HSION"/>
            </field>
            <field>
              <name>PLL2RDY</name>
              <description>PLL2 clock ready flag</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="HSIRDYR"/>
            </field>
            <field>
              <name>PLL3ON</name>
              <description>PLL3 enable</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HSION"/>
            </field>
            <field>
              <name>PLL3RDY</name>
              <description>PLL3 clock ready flag</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="HSIRDYR"/>
            </field>
          </fields>
        </register>
        <register>
          <name>HSICFGR</name>
          <displayName>HSICFGR</displayName>
          <description>RCC HSI calibration register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x40000000</resetValue>
          <resetMask>0xFFFFF000</resetMask>
          <fields>
            <field>
              <name>HSICAL</name>
              <description>HSI clock calibration</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>HSITRIM</name>
              <description>HSI clock trimming</description>
              <bitOffset>24</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CRRCR</name>
          <displayName>CRRCR</displayName>
          <description>RCC clock recovery RC register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFF000</resetMask>
          <fields>
            <field>
              <name>HSI48CAL</name>
              <description>Internal RC 48 MHz clock calibration</description>
              <bitOffset>0</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CSICFGR</name>
          <displayName>CSICFGR</displayName>
          <description>RCC CSI calibration register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x20000000</resetValue>
          <resetMask>0xFFFFF000</resetMask>
          <fields>
            <field>
              <name>CSICAL</name>
              <description>CSI clock calibration</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CSITRIM</name>
              <description>CSI clock trimming</description>
              <bitOffset>24</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CFGR</name>
          <displayName>CFGR</displayName>
          <description>RCC clock configuration register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <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>HSI</name>
                  <description>HSI selected as system clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CSI</name>
                  <description>CSI selected as system clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE</name>
                  <description>HSE selected as system clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL1</name>
                  <description>PLL1 selected as system clock</description>
                  <value>3</value>
                </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>SWSR</name>
                <enumeratedValue>
                  <name>HSI</name>
                  <description>HSI oscillator used as system clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CSI</name>
                  <description>CSI oscillator used as system clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE</name>
                  <description>HSE oscillator used as system clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL1</name>
                  <description>PLL1 used as system clock</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>STOPWUCK</name>
              <description>system clock selection after a wake up from system Stop</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>STOPWUCK</name>
                <enumeratedValue>
                  <name>HSI</name>
                  <description>HSI selected as wake up clock from system Stop</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CSI</name>
                  <description>CSI selected as wake up clock from system Stop</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>STOPKERWUCK</name>
              <description>kernel clock selection after a wake up from system Stop</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="STOPWUCK"/>
            </field>
            <field>
              <name>RTCPRE</name>
              <description>HSE division factor for RTC clock</description>
              <bitOffset>8</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>63</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>TIMPRE</name>
              <description>timers clocks prescaler selection</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>TIMPRE</name>
                <enumeratedValue>
                  <name>DefaultX2</name>
                  <description>Timer kernel clock equal to 2x pclk by default</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DefaultX4</name>
                  <description>Timer kernel clock equal to 4x pclk by default</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MCO1PRE</name>
              <description>MCO1 prescaler</description>
              <bitOffset>18</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MCO1</name>
              <description>Microcontroller clock output 1</description>
              <bitOffset>22</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>MCO1</name>
                <enumeratedValue>
                  <name>HSI</name>
                  <description>HSI selected for micro-controller clock output</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSE</name>
                  <description>LSE selected for micro-controller clock output</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE</name>
                  <description>HSE selected for micro-controller clock output</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL1_Q</name>
                  <description>pll1_q selected for micro-controller clock output</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI48</name>
                  <description>HSI48 selected for micro-controller clock output</description>
                  <value>4</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MCO2PRE</name>
              <description>MCO2 prescaler</description>
              <bitOffset>25</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MCO2</name>
              <description>microcontroller clock output 2</description>
              <bitOffset>29</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>MCO2</name>
                <enumeratedValue>
                  <name>SYSCLK</name>
                  <description>System clock selected for micro-controller clock output</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_P</name>
                  <description>pll2_p selected for micro-controller clock output</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE</name>
                  <description>HSE selected for micro-controller clock output</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL1_P</name>
                  <description>pll1_p selected for micro-controller clock output</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CSI</name>
                  <description>CSI selected for micro-controller clock output</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSI</name>
                  <description>LSI selected for micro-controller clock output</description>
                  <value>5</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CDCFGR</name>
          <displayName>CDCFGR</displayName>
          <description>RCC CPU domain clock configuration register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CPRE</name>
              <description>CPU domain core prescaler</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>BMCFGR</name>
          <displayName>BMCFGR</displayName>
          <description>RCC AHB clock configuration register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>HPRE</name>
              <description>Bus matrix clock prescaler</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>HPRE</name>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>sys_ck divided by 2</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>sys_ck divided by 4</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>sys_ck divided by 8</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>sys_ck divided by 16</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div64</name>
                  <description>sys_ck divided by 64</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div128</name>
                  <description>sys_ck divided by 128</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div256</name>
                  <description>sys_ck divided by 256</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div512</name>
                  <description>sys_ck divided by 512</description>
                  <value>15</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>sys_ck not divided</description>
                  <isDefault>true</isDefault>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>APBCFGR</name>
          <displayName>APBCFGR</displayName>
          <description>RCC APB clocks configuration register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PPRE1</name>
              <description>CPU domain APB1 prescaler</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PPRE2</name>
              <description>CPU domain APB2 prescaler</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PPRE4</name>
              <description>CPU domain APB4 prescaler</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PPRE5</name>
              <description>CPU domain APB5 prescaler</description>
              <bitOffset>12</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PLLCKSELR</name>
          <displayName>PLLCKSELR</displayName>
          <description>RCC PLLs clock source selection register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x02020200</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PLLSRC</name>
              <description>DIVMx and PLLs clock source selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PLLSRC</name>
                <enumeratedValue>
                  <name>HSI</name>
                  <description>HSI selected as PLL clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CSI</name>
                  <description>CSI selected as PLL clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE</name>
                  <description>HSE selected as PLL clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>None</name>
                  <description>No clock sent to DIVMx dividers and PLLs</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DIVM1</name>
              <description>prescaler for PLL1</description>
              <bitOffset>4</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>63</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DIVM2</name>
              <description>prescaler for PLL2</description>
              <bitOffset>12</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>63</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DIVM3</name>
              <description>prescaler for PLL3</description>
              <bitOffset>20</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>63</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>PLLCFGR</name>
          <displayName>PLLCFGR</displayName>
          <description>RCC PLLs configuration register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PLL1FRACEN</name>
              <description>PLL1 fractional latch enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PLL1FRACEN</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset latch to tranfer FRACN to the Sigma-Delta modulator</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Set</name>
                  <description>Set latch to tranfer FRACN to the Sigma-Delta modulator</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PLL1VCOSEL</name>
              <description>PLL1 VCO selection</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PLL1VCOSEL</name>
                <enumeratedValue>
                  <name>WideVCO</name>
                  <description>VCO frequency range 192 to 836 MHz</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MediumVCO</name>
                  <description>VCO frequency range 150 to 420 MHz</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PLL1SSCGEN</name>
              <description>PLL1 SSCG enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PLL1RGE</name>
              <description>PLL1 input frequency range</description>
              <bitOffset>3</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PLL1RGE</name>
                <enumeratedValue>
                  <name>Range1</name>
                  <description>Frequency is between 1 and 2 MHz</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Range2</name>
                  <description>Frequency is between 2 and 4 MHz</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Range4</name>
                  <description>Frequency is between 4 and 8 MHz</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Range8</name>
                  <description>Frequency is between 8 and 16 MHz</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PLL1PEN</name>
              <description>PLL1 DIVP divider output enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PLL1PEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Clock ouput is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Clock output is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PLL1QEN</name>
              <description>PLL1 DIVQ divider output enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PLL1PEN"/>
            </field>
            <field>
              <name>PLL1SEN</name>
              <description>PLL1 DIVS divider output enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PLL1PEN"/>
            </field>
            <field>
              <name>PLL2FRACLEN</name>
              <description>PLL2 fractional latch enable</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PLL2VCOSEL</name>
              <description>PLL2 VCO selection</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PLL1VCOSEL"/>
            </field>
            <field>
              <name>PLL2SSCGEN</name>
              <description>PLL2 SSCG enable</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PLL2RGE</name>
              <description>PLL2 input frequency range</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PLL1RGE"/>
            </field>
            <field>
              <name>PLL2PEN</name>
              <description>PLL2 DIVP divider output enable</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PLL1PEN"/>
            </field>
            <field>
              <name>PLL2QEN</name>
              <description>PLL2 DIVQ divider output enable</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PLL1PEN"/>
            </field>
            <field>
              <name>PLL2REN</name>
              <description>PLL2 DIVR divider output enable</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PLL1PEN"/>
            </field>
            <field>
              <name>PLL2SEN</name>
              <description>PLL2 DIVS divider output enable</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PLL1PEN"/>
            </field>
            <field>
              <name>PLL2TEN</name>
              <description>PLL2 DIVT divider output enable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PLL1PEN"/>
            </field>
            <field>
              <name>PLL3FRACEN</name>
              <description>PLL3 fractional latch enable</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PLL1FRACEN"/>
            </field>
            <field>
              <name>PLL3VCOSEL</name>
              <description>PLL3 VCO selection</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PLL1VCOSEL"/>
            </field>
            <field>
              <name>PLL3SSCGEN</name>
              <description>PLL3 SSCG enable</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PLL3RGE</name>
              <description>PLL3 input frequency range</description>
              <bitOffset>25</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PLL1RGE"/>
            </field>
            <field>
              <name>PLL3PEN</name>
              <description>PLL3 DIVP divider output enable</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PLL1PEN"/>
            </field>
            <field>
              <name>PLL3QEN</name>
              <description>PLL3 DIVQ divider output enable</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PLL1PEN"/>
            </field>
            <field>
              <name>PLL3REN</name>
              <description>PLL3 DIVR divider output enable</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PLL1PEN"/>
            </field>
            <field>
              <name>PLL3SEN</name>
              <description>PLL3 DIVS divider output enable</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PLL1PEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>PLL1DIVR1</name>
          <displayName>PLL1DIVR1</displayName>
          <description>RCC PLL1 dividers configuration register 1</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x01010280</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIVN</name>
              <description>multiplication factor for PLL1 VCO</description>
              <bitOffset>0</bitOffset>
              <bitWidth>9</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DIVP</name>
              <description>PLL1 DIVP division factor</description>
              <bitOffset>9</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DIVQ</name>
              <description>PLL1 DIVQ division factor</description>
              <bitOffset>16</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PLL1FRACR</name>
          <displayName>PLL1FRACR</displayName>
          <description>RCC PLL1 fractional divider register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FRACN</name>
              <description>fractional part of the multiplication factor for PLL1 VCO</description>
              <bitOffset>3</bitOffset>
              <bitWidth>13</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PLL2DIVR1</name>
          <displayName>PLL2DIVR1</displayName>
          <description>RCC PLL2 dividers configuration register 1</description>
          <addressOffset>0x38</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x01010280</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIVN</name>
              <description>multiplication factor for PLL2 VCO</description>
              <bitOffset>0</bitOffset>
              <bitWidth>9</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DIVP</name>
              <description>PLL2 DIVP division factor</description>
              <bitOffset>9</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DIVQ</name>
              <description>PLL2 DIVQ division factor</description>
              <bitOffset>16</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DIVR</name>
              <description>PLL2 DIVR division factor</description>
              <bitOffset>24</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PLL2FRACR</name>
          <displayName>PLL2FRACR</displayName>
          <description>RCC PLL2 fractional divider register</description>
          <addressOffset>0x3C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FRACN</name>
              <description>fractional part of the multiplication factor for PLL2 VCO</description>
              <bitOffset>3</bitOffset>
              <bitWidth>13</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PLL3DIVR1</name>
          <displayName>PLL3DIVR1</displayName>
          <description>RCC PLL3 dividers configuration register 1</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x01010280</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIVN</name>
              <description>Multiplication factor for PLL3 VCO</description>
              <bitOffset>0</bitOffset>
              <bitWidth>9</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DIVP</name>
              <description>PLL3 DIVP division factor</description>
              <bitOffset>9</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DIVQ</name>
              <description>PLL3 DIVQ division factor</description>
              <bitOffset>16</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DIVR</name>
              <description>PLL3 DIVR division factor</description>
              <bitOffset>24</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PLL3FRACR</name>
          <displayName>PLL3FRACR</displayName>
          <description>RCC PLL3 fractional divider register</description>
          <addressOffset>0x44</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FRACN</name>
              <description>fractional part of the multiplication factor for PLL3 VCO</description>
              <bitOffset>3</bitOffset>
              <bitWidth>13</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CCIPR1</name>
          <displayName>CCIPR1</displayName>
          <description>RCC AHB peripheral kernel clock selection register</description>
          <addressOffset>0x4C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000A00</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FMCSEL</name>
              <description>FMC kernel clock source selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>FMCSEL</name>
                <enumeratedValue>
                  <name>RCC_HCLK5</name>
                  <description>hclk5 selected as peripheral clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL1_Q</name>
                  <description>pll1_q selected as peripheral clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_R</name>
                  <description>pll2_r selected as peripheral clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI_KER</name>
                  <description>hsi_ker selected as peripheral clock</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SDMMC12SEL</name>
              <description>SDMMC1 and SDMMC2 kernel clock source selection</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SDMMC12SEL</name>
                <enumeratedValue>
                  <name>PLL2_S</name>
                  <description>pll1_s selected as peripheral clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_T</name>
                  <description>pll2_t selected as peripheral clock</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>XSPI1SEL</name>
              <description>XSPI1 kernel clock source selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>XSPI1SEL</name>
                <enumeratedValue>
                  <name>RCC_HCLK5</name>
                  <description>hclk5 selected as peripheral clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_S</name>
                  <description>pll2_s_ck selected as peripheral clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_T</name>
                  <description>pll2_t_ck selected as peripheral clock</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>XSPI2SEL</name>
              <description>XSPI2 kernel clock source selection</description>
              <bitOffset>6</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>XSPI2SEL</name>
                <enumeratedValue>
                  <name>RCC_HCLK5</name>
                  <description>hclk5 selected as peripheral clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_S</name>
                  <description>pll2_s_ck selected as peripheral clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_T</name>
                  <description>pll2_t_ck selected as peripheral clock</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>USBREFCKSEL</name>
              <description>USBPHYC kernel clock frequency selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>USBREFCKSEL</name>
                <enumeratedValue>
                  <name>MHz16</name>
                  <description>The clock frequency provided to the USBPHYC is 16 MHz</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MHz19</name>
                  <description>The clock frequency provided to the USBPHYC is 19.2 MHz</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MHz20</name>
                  <description>The clock frequency provided to the USBPHYC is 20MHz</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MHz24</name>
                  <description>The clock frequency provided to the USBPHYC is 24 MHz</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MHz32</name>
                  <description>The clock frequency provided to the USBPHYC is 32 MHz</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MHz26</name>
                  <description>The clock frequency provided to the USBPHYC is 26 MHz</description>
                  <value>14</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>USBPHYCSEL</name>
              <description>USBPHYC kernel clock source selection</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>USBPHYCSEL</name>
                <enumeratedValue>
                  <name>HSE_KER</name>
                  <description>hse_ker_ck</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE_KER_DIV2</name>
                  <description>hse_ker_ck / 2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL3_Q</name>
                  <description>pll3_q_ck</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OTGFSSEL</name>
              <description>OTGFS kernel clock source selection</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>OTGFSSEL</name>
                <enumeratedValue>
                  <name>HSI48_KER</name>
                  <description>hsi48_ker_ck</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL3_Q</name>
                  <description>pll3_q_ck</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE_KER</name>
                  <description>hse_ker_ck</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CLK48</name>
                  <description>clk48mohci</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ETH1REFCKSEL</name>
              <description>Ethernet reference clock source selection</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>ETH1REFCKSEL</name>
                <enumeratedValue>
                  <name>ETH_RMII_REF</name>
                  <description>ETH_RMII_REF selected as peripheral clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE_KER</name>
                  <description>hse_ker selected as peripheral clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ETH_CLK_FB</name>
                  <description>eth_clk_fb selected as peripheral clock</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ETH1PHYCKSEL</name>
              <description>Clock source selection for external Ethernet PHY</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>ETH1PHYCKSEL</name>
                <enumeratedValue>
                  <name>HSE_KER</name>
                  <description>hse_ker selected as clock source</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL3_S</name>
                  <description>pll3_s selected clock source</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADF1SEL</name>
              <description>ADF kernel clock source selection</description>
              <bitOffset>20</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>ADF1SEL</name>
                <enumeratedValue>
                  <name>HCLK1</name>
                  <description>hclk1 selected as ADF clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_p</name>
                  <description>pll2_p_ck selected as ADF clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL3_P</name>
                  <description>pll3_p_ck selected as ADF clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>I2S_CLKIN</name>
                  <description>I2S_CKIN selected as ADF clock</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CSI_KER</name>
                  <description>csi_ker_ck selected as ADF clock</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI_KER</name>
                  <description>hsi_ker_ck selected as ADF clock</description>
                  <value>5</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADCSEL</name>
              <description>SAR ADC kernel clock source selection</description>
              <bitOffset>24</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>ADCSEL</name>
                <enumeratedValue>
                  <name>PLL2_P</name>
                  <description>pll2_p selected as peripheral clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL3_R</name>
                  <description>pll3_r selected as peripheral clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PER</name>
                  <description>per selected as peripheral clock</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PSSISEL</name>
              <description>PSSI kernel clock source selection</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PSSISEL</name>
                <enumeratedValue>
                  <name>PLL3_R</name>
                  <description>pll3_r selected as peripheral clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PER</name>
                  <description>per selected as kernel peripheral clock</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CKPERSEL</name>
              <description>per_ck clock source selection</description>
              <bitOffset>28</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>CKPERSEL</name>
                <enumeratedValue>
                  <name>HSI</name>
                  <description>HSI selected as peripheral clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CSI</name>
                  <description>CSI selected as peripheral clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE</name>
                  <description>HSE selected as peripheral clock</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCIPR2</name>
          <displayName>CCIPR2</displayName>
          <description>RCC APB1 peripherals kernel clock selection register</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>UART234578SEL</name>
              <description>USART2,3, UART4,5,7,8 (APB1) kernel clock source selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>UART234578SEL</name>
                <enumeratedValue>
                  <name>PCLK1</name>
                  <description>pclk1 selected as clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_Q</name>
                  <description>pll2_q selected as clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL3_Q</name>
                  <description>pll3_q selected as clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI_KER</name>
                  <description>hsi_ker selected as clock</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CSI_KER</name>
                  <description>csi_ker selected as clock</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSE</name>
                  <description>lse selected as clock</description>
                  <value>5</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SPI23SEL</name>
              <description>SPI/I2S2 and SPI/I2S3 kernel clock source selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SPI23SEL</name>
                <enumeratedValue>
                  <name>PLL1_Q</name>
                  <description>pll1_q selected as clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_P</name>
                  <description>pll2_p selected as clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL3_P</name>
                  <description>pll3_p selected as clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>I2S_CKIN</name>
                  <description>I2S_CKIN selected as clock</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PER</name>
                  <description>per selected as clock</description>
                  <value>4</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2C23SEL</name>
              <description>I2C2, I2C3 kernel clock source selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>I2C23SEL</name>
                <enumeratedValue>
                  <name>PCLK1</name>
                  <description>pclk1 selected as clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL3_R</name>
                  <description>pll3_r selected as clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI_KER</name>
                  <description>hsi_ker selected as clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CSI_KER</name>
                  <description>csi_ker selected as clock</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2C1I3C1SEL</name>
              <description>I2C1 or I3C1 kernel clock source selection</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>I2C1I3C1SEL</name>
                <enumeratedValue>
                  <name>PCLK1</name>
                  <description>pclk1 selected as peripheral clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL3_R</name>
                  <description>pll3_r selected as peripheral clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI_KER</name>
                  <description>hsi_ker selected as peripheral clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CSI_KER</name>
                  <description>csi_ker selected as peripheral clock</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LPTIM1SEL</name>
              <description>LPTIM1 kernel clock source selection</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>LPTIM1SEL</name>
                <enumeratedValue>
                  <name>PCLK1</name>
                  <description>pclk1 selected as peripheral clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_P</name>
                  <description>pll2_p selected as peripheral clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL3_R</name>
                  <description>pll3_r selected as peripheral clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSE</name>
                  <description>lse selected as peripheral clock</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSI</name>
                  <description>lsi selected as peripheral clock</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PER</name>
                  <description>per selected as peripheral clock</description>
                  <value>5</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FDCANSEL</name>
              <description>FDCAN kernel clock source selection</description>
              <bitOffset>22</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>FDCANSEL</name>
                <enumeratedValue>
                  <name>HSE_KER</name>
                  <description>hse_ker selected as clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL1_Q</name>
                  <description>pll1_q selected as clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_P</name>
                  <description>pll2_p selected as clock</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SPDIFRXSEL</name>
              <description>SPDIFRX kernel clock source selection</description>
              <bitOffset>24</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SPDIFRXSEL</name>
                <enumeratedValue>
                  <name>PLL1_Q</name>
                  <description>pll1_q selected as clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_R</name>
                  <description>pll2_r selected as clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL3_R</name>
                  <description>pll3_r selected as clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI_KER</name>
                  <description>hsi_ker selected as clock</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CECSEL</name>
              <description>HDMI-CEC kernel clock source selection</description>
              <bitOffset>28</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>CECSEL</name>
                <enumeratedValue>
                  <name>LSE</name>
                  <description>lse selected as clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSI</name>
                  <description>lsi selected as clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CSI_KER</name>
                  <description>csi_ker divided by 122 selected as clock</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCIPR3</name>
          <displayName>CCIPR3</displayName>
          <description>RCC APB2 peripherals kernel clock selection register</description>
          <addressOffset>0x54</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>USART1SEL</name>
              <description>USART1 kernel clock source selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>USART1SEL</name>
                <enumeratedValue>
                  <name>PCLK2</name>
                  <description>pclk2 selected as clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_Q</name>
                  <description>pll2_q selected as clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL3_Q</name>
                  <description>pll3_q selected as clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI_KER</name>
                  <description>hsi_ker selected as clock</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CSI_KER</name>
                  <description>csi_ker selected as clock</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSE</name>
                  <description>lse selected as clock</description>
                  <value>5</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SPI45SEL</name>
              <description>SPI4 and 5 kernel clock source selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SPI45SEL</name>
                <enumeratedValue>
                  <name>PCLK2</name>
                  <description>pclk2 selected as clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_Q</name>
                  <description>pll2_q is selected as clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL3_Q</name>
                  <description>pll3_q is selected as clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI_KER</name>
                  <description>hsi_ker is selected as clock</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CSI_KER</name>
                  <description>csi_ker is selected as clock</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE_KER</name>
                  <description>hse_ker is selected as clock</description>
                  <value>5</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SPI1SEL</name>
              <description>SPI/I2S1 kernel clock source selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SPI1SEL</name>
                <enumeratedValue>
                  <name>PLL1_Q</name>
                  <description>pll1_q selected as SPI/I2S1 and 7 clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_P</name>
                  <description>pll2_p selected as SPI/I2S1 and 7 clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL3_P</name>
                  <description>pll3_p selected as SPI/I2S1 and 7 clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>I2S_CKIN</name>
                  <description>I2S_CKIN selected as SPI/I2S1 and 7 clock</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PER</name>
                  <description>per selected as SPI/I2S1,and 7 clock</description>
                  <value>4</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SAI1SEL</name>
              <description>SAI1 kernel clock source selection</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SAI1SEL</name>
                <enumeratedValue>
                  <name>PLL1_Q</name>
                  <description>pll1_q selected as clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_P</name>
                  <description>pll2_p selected as clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL3_P</name>
                  <description>pll3_p selected as clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>I2S_CKIN</name>
                  <description>I2S_CKIN selected as clock</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PER</name>
                  <description>per selected as clock</description>
                  <value>4</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SAI2SEL</name>
              <description>SAI2 kernel clock source selection</description>
              <bitOffset>20</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SAI2SEL</name>
                <enumeratedValue>
                  <name>PLL1_Q</name>
                  <description>pll1_q selected as clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_P</name>
                  <description>pll2_p selected as clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL3_P</name>
                  <description>pll3_p selected as clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>I2S_CKIN</name>
                  <description>I2S_CKIN selected as clock</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PER</name>
                  <description>per selected as clock</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SPDIFRX_SYMB</name>
                  <description>spdifrx_symb selected as clock</description>
                  <value>5</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCIPR4</name>
          <displayName>CCIPR4</displayName>
          <description>RCC APB4,5 peripherals kernel clock selection register</description>
          <addressOffset>0x58</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LPUART1SEL</name>
              <description>LPUART1 kernel clock source selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>LPUART1SEL</name>
                <enumeratedValue>
                  <name>PCLK4</name>
                  <description>pclk4 selected as peripheral clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_Q</name>
                  <description>pll2_q selected as peripheral clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL3_Q</name>
                  <description>pll3_q selected as peripheral clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI_KER</name>
                  <description>hsi_ker selected as peripheral clock</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CSI_KER</name>
                  <description>csi_ker selected as peripheral clock</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSE</name>
                  <description>lse selected as peripheral clock</description>
                  <value>5</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SPI6SEL</name>
              <description>SPI/I2S6 kernel clock source selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SPI6SEL</name>
                <enumeratedValue>
                  <name>PCLK4</name>
                  <description>pclk4 selected as peripheral clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_Q</name>
                  <description>pll2_q selected as peripheral clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL3_Q</name>
                  <description>pll3_q selected as peripheral clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI_KER</name>
                  <description>hsi_ker selected as peripheral clock</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CSI_KER</name>
                  <description>csi_ker selected as peripheral clock</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE_KER</name>
                  <description>hse_ker selected as peripheral clock</description>
                  <value>5</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LPTIM23SEL</name>
              <description>LPTIM2 and LPTIM3 kernel clock source selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>LPTIM23SEL</name>
                <enumeratedValue>
                  <name>PCLK4</name>
                  <description>pclk4 selected as peripheral clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_P</name>
                  <description>pll2_p selected as peripheral clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL3_R</name>
                  <description>pll3_r selected as peripheral clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSE</name>
                  <description>lse selected as peripheral clock</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSI</name>
                  <description>lsi selected as peripheral clock</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PER</name>
                  <description>per selected as peripheral clock</description>
                  <value>5</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LPTIM45SEL</name>
              <description>LPTIM4, and LPTIM5 kernel clock source selection</description>
              <bitOffset>12</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>LPTIM45SEL</name>
                <enumeratedValue>
                  <name>PCLK4</name>
                  <description>pclk4 selected as peripheral clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL2_P</name>
                  <description>pll2_p selected as peripheral clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL3_R</name>
                  <description>pll3_r selected as peripheral clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSE</name>
                  <description>lse selected as peripheral clock</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSI</name>
                  <description>lsi selected as peripheral clock</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PER</name>
                  <description>per selected as peripheral clock</description>
                  <value>5</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CIER</name>
          <displayName>CIER</displayName>
          <description>RCC clock source interrupt enable register</description>
          <addressOffset>0x60</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LSIRDYIE</name>
              <description>LSI ready interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYIE"/>
            </field>
            <field>
              <name>HSIRDYIE</name>
              <description>HSI ready interrupt enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYIE"/>
            </field>
            <field>
              <name>HSERDYIE</name>
              <description>HSE ready interrupt enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYIE"/>
            </field>
            <field>
              <name>CSIRDYIE</name>
              <description>CSI ready interrupt enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYIE"/>
            </field>
            <field>
              <name>HSI48RDYIE</name>
              <description>HSI48 ready interrupt enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYIE"/>
            </field>
            <field>
              <name>PLL1RDYIE</name>
              <description>PLL1 ready interrupt enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYIE"/>
            </field>
            <field>
              <name>PLL2RDYIE</name>
              <description>PLL2 ready interrupt enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYIE"/>
            </field>
            <field>
              <name>PLL3RDYIE</name>
              <description>PLL3 ready interrupt enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYIE"/>
            </field>
            <field>
              <name>LSECSSIE</name>
              <description>LSE clock security system interrupt enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYIE"/>
            </field>
          </fields>
        </register>
        <register>
          <name>CIFR</name>
          <displayName>CIFR</displayName>
          <description>RCC clock source interrupt flag register</description>
          <addressOffset>0x64</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LSIRDYF</name>
              <description>LSI ready interrupt flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>LSIRDYFR</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>No clock ready interrupt</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Clock ready interrupt</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSERDYF</name>
              <description>LSE ready interrupt flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="LSIRDYFR"/>
            </field>
            <field>
              <name>HSIRDYF</name>
              <description>HSI ready interrupt flag</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="LSIRDYFR"/>
            </field>
            <field>
              <name>HSERDYF</name>
              <description>HSE ready interrupt flag</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="LSIRDYFR"/>
            </field>
            <field>
              <name>CSIRDYF</name>
              <description>CSI ready interrupt flag</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="LSIRDYFR"/>
            </field>
            <field>
              <name>HSI48RDYF</name>
              <description>HSI48 ready interrupt flag</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="LSIRDYFR"/>
            </field>
            <field>
              <name>PLL1RDYF</name>
              <description>PLL1 ready interrupt flag</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="LSIRDYFR"/>
            </field>
            <field>
              <name>PLL2RDYF</name>
              <description>PLL2 ready interrupt flag</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="LSIRDYFR"/>
            </field>
            <field>
              <name>PLL3RDYF</name>
              <description>PLL3 ready interrupt flag</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="LSIRDYFR"/>
            </field>
            <field>
              <name>LSECSSF</name>
              <description>LSE clock security system interrupt flag</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>HSECSSF</name>
              <description>HSE clock security system interrupt flag</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CICR</name>
          <displayName>CICR</displayName>
          <description>RCC clock source interrupt clear register</description>
          <addressOffset>0x68</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LSIRDYC</name>
              <description>LSI ready interrupt clear</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYC"/>
            </field>
            <field>
              <name>HSIRDYC</name>
              <description>HSI ready interrupt clear</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYC"/>
            </field>
            <field>
              <name>HSERDYC</name>
              <description>HSE ready interrupt clear</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYC"/>
            </field>
            <field>
              <name>CSIRDYC</name>
              <description>CSI ready interrupt clear</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYC"/>
            </field>
            <field>
              <name>HSI48RDYC</name>
              <description>HSI48 ready interrupt clear</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYC"/>
            </field>
            <field>
              <name>PLL1RDYC</name>
              <description>PLL1 ready interrupt clear</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYC"/>
            </field>
            <field>
              <name>PLL2RDYC</name>
              <description>PLL2 ready interrupt clear</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYC"/>
            </field>
            <field>
              <name>PLL3RDYC</name>
              <description>PLL3 ready interrupt clear</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYC"/>
            </field>
            <field>
              <name>LSECSSC</name>
              <description>LSE clock security system interrupt clear</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYC"/>
            </field>
            <field>
              <name>HSECSSC</name>
              <description>HSE clock security system interrupt clear</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYC"/>
            </field>
          </fields>
        </register>
        <register>
          <name>BDCR</name>
          <displayName>BDCR</displayName>
          <description>RCC Backup domain control register</description>
          <addressOffset>0x70</addressOffset>
          <size>0x20</size>
          <access>read-writeOnce</access>
          <resetValue>0x00000010</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LSEON</name>
              <description>LSE oscillator enabled</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>LSEON</name>
                <enumeratedValue>
                  <name>Off</name>
                  <description>LSE oscillator Off</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>On</name>
                  <description>LSE oscillator On</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSERDY</name>
              <description>LSE oscillator ready</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>LSERDYR</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>
              <access>read-write</access>
              <enumeratedValues>
                <name>LSEBYP</name>
                <enumeratedValue>
                  <name>NotBypassed</name>
                  <description>LSE crystal oscillator not bypassed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bypassed</name>
                  <description>LSE crystal oscillator bypassed with external clock</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSEDRV</name>
              <description>LSE oscillator driving capability</description>
              <bitOffset>3</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>LSEDRV</name>
                <enumeratedValue>
                  <name>Lowest</name>
                  <description>Lowest LSE oscillator driving capability</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MediumLow</name>
                  <description>Medium low LSE oscillator driving capability</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MediumHigh</name>
                  <description>Medium high LSE oscillator driving capability</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Highest</name>
                  <description>Highest LSE oscillator driving capability</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSECSSON</name>
              <description>LSE clock security system enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>LSECSSON</name>
                <enumeratedValue>
                  <name>SecurityOff</name>
                  <description>Clock security system on 32 kHz oscillator off</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SecurityOn</name>
                  <description>Clock security system on 32 kHz oscillator on</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSECSSD</name>
              <description>LSE clock security system failure detection</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>LSECSSDR</name>
                <enumeratedValue>
                  <name>NoFailure</name>
                  <description>No failure detected on 32 kHz oscillator</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Failure</name>
                  <description>Failure detected on 32 kHz oscillator</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSEEXT</name>
              <description>low-speed external clock type in Bypass mode</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RTCSEL</name>
              <description>RTC clock source selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-writeOnce</access>
              <enumeratedValues>
                <name>RTCSEL</name>
                <enumeratedValue>
                  <name>NoClock</name>
                  <description>No clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSE</name>
                  <description>LSE oscillator clock used as RTC clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSI</name>
                  <description>LSI oscillator clock used as RTC clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE</name>
                  <description>HSE oscillator clock divided by a prescaler used as RTC clock</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSECSSRA</name>
              <description>Re-Arm the LSECSS function</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RTCEN</name>
              <description>RTC clock enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RTCEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>RTC clock disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>RTC clock enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>VSWRST</name>
              <description>VSwitch domain software reset</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>VSWRST</name>
                <enumeratedValue>
                  <name>NotActivated</name>
                  <description>Reset not activated</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Resets the entire VSW domain</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CSR</name>
          <displayName>CSR</displayName>
          <description>RCC clock control and status register</description>
          <addressOffset>0x74</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LSION</name>
              <description>LSI oscillator enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>LSION</name>
                <enumeratedValue>
                  <name>Off</name>
                  <description>LSI oscillator Off</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>On</name>
                  <description>LSI oscillator On</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSIRDY</name>
              <description>LSI oscillator ready</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>LSIRDYR</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>
          </fields>
        </register>
        <register>
          <name>AHB5RSTR</name>
          <displayName>AHB5RSTR</displayName>
          <description>RCC AHB5 peripheral reset register</description>
          <addressOffset>0x7C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>HPDMA1RST</name>
              <description>HPDMA1 block reset</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>HPDMA1RST</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset the selected module</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DMA2DRST</name>
              <description>DMA2D block reset</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1RST"/>
            </field>
            <field>
              <name>JPEGRST</name>
              <description>JPEG block reset</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1RST"/>
            </field>
            <field>
              <name>FMCRST</name>
              <description>FMC and MCE3 blocks reset</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1RST"/>
            </field>
            <field>
              <name>XSPI1RST</name>
              <description>XSPI1 and MCE1 blocks reset</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1RST"/>
            </field>
            <field>
              <name>SDMMC1RST</name>
              <description>SDMMC1 and DB_SDMMC1 blocks reset</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1RST"/>
            </field>
            <field>
              <name>XSPI2RST</name>
              <description>XSPI2 and MCE2 blocks reset</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1RST"/>
            </field>
            <field>
              <name>XSPIMRST</name>
              <description>XSPIM reset</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1RST"/>
            </field>
            <field>
              <name>GFXMMURST</name>
              <description>GFXMMU block reset</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1RST"/>
            </field>
            <field>
              <name>GPU2DRST</name>
              <description>GPU2D block reset</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1RST"/>
            </field>
          </fields>
        </register>
        <register>
          <name>AHB1RSTR</name>
          <displayName>AHB1RSTR</displayName>
          <description>RCC AHB1 peripheral reset register</description>
          <addressOffset>0x80</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>GPDMA1RST</name>
              <description>GPDMA1 blocks reset</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>GPDMA1RST</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset the selected module</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADC12RST</name>
              <description>ADC1 and 2 blocks reset</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1RST"/>
            </field>
            <field>
              <name>ETH1MACRST</name>
              <description>ETH1 block reset</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1RST"/>
            </field>
            <field>
              <name>OTGHSRST</name>
              <description>OTGHS block reset</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1RST"/>
            </field>
            <field>
              <name>USBPHYCRST</name>
              <description>USBPHYC block reset</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1RST"/>
            </field>
            <field>
              <name>OTGFSRST</name>
              <description>OTGFS block reset</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1RST"/>
            </field>
            <field>
              <name>ADF1RST</name>
              <description>ADF block reset</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1RST"/>
            </field>
          </fields>
        </register>
        <register>
          <name>AHB2RSTR</name>
          <displayName>AHB2RSTR</displayName>
          <description>RCC AHB2 peripheral reset register</description>
          <addressOffset>0x84</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PSSIRST</name>
              <description>PSSI block reset</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PSSIRST</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset the selected module</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SDMMC2RST</name>
              <description>SDMMC2 and SDMMC2 delay blocks reset</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PSSIRST"/>
            </field>
            <field>
              <name>CORDICRST</name>
              <description>CORDIC reset</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PSSIRST"/>
            </field>
          </fields>
        </register>
        <register>
          <name>AHB4RSTR</name>
          <displayName>AHB4RSTR</displayName>
          <description>RCC AHB4 peripheral reset register</description>
          <addressOffset>0x88</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>GPIOARST</name>
              <description>GPIOA block reset</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>GPIOARST</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset the selected module</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>GPIOBRST</name>
              <description>GPIOB block reset</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOARST"/>
            </field>
            <field>
              <name>GPIOCRST</name>
              <description>GPIOC block reset</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOARST"/>
            </field>
            <field>
              <name>GPIODRST</name>
              <description>GPIOD block reset</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOARST"/>
            </field>
            <field>
              <name>GPIOERST</name>
              <description>GPIOE block reset</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOARST"/>
            </field>
            <field>
              <name>GPIOFRST</name>
              <description>GPIOF block reset</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOARST"/>
            </field>
            <field>
              <name>GPIOGRST</name>
              <description>GPIOG block reset</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOARST"/>
            </field>
            <field>
              <name>GPIOHRST</name>
              <description>GPIOH block reset</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOARST"/>
            </field>
            <field>
              <name>GPIOMRST</name>
              <description>GPIOM block reset</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOARST"/>
            </field>
            <field>
              <name>GPIONRST</name>
              <description>GPION block reset</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOARST"/>
            </field>
            <field>
              <name>GPIOORST</name>
              <description>GPIOO block reset</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOARST"/>
            </field>
            <field>
              <name>GPIOPRST</name>
              <description>GPIOP block reset</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOARST"/>
            </field>
            <field>
              <name>CRCRST</name>
              <description>CRC block reset</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOARST"/>
            </field>
          </fields>
        </register>
        <register>
          <name>APB5RSTR</name>
          <displayName>APB5RSTR</displayName>
          <description>RCC APB5 peripheral reset register</description>
          <addressOffset>0x8C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LTDCRST</name>
              <description>LTDC block reset</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>LTDCRST</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset the selected module</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DCMIPPRST</name>
              <description>DCMIPP block reset</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LTDCRST"/>
            </field>
            <field>
              <name>GFXTIMRST</name>
              <description>GFXTIM block reset</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LTDCRST"/>
            </field>
          </fields>
        </register>
        <register>
          <name>APB1RSTR1</name>
          <displayName>APB1RSTR1</displayName>
          <description>RCC APB1 peripheral reset register 1</description>
          <addressOffset>0x90</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TIM2RST</name>
              <description>TIM2 block reset</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM3RST</name>
              <description>TIM3 block reset</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM4RST</name>
              <description>TIM4 block reset</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM5RST</name>
              <description>TIM5 block reset</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM6RST</name>
              <description>TIM6 block reset</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM7RST</name>
              <description>TIM7 block reset</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM12RST</name>
              <description>TIM12 block reset</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM13RST</name>
              <description>TIM13 block reset</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM14RST</name>
              <description>TIM14 block reset</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LPTIM1RST</name>
              <description>LPTIM1 block reset</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPI2RST</name>
              <description>SPI2S2 block reset</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPI3RST</name>
              <description>SPI2S3 block reset</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPDIFRXRST</name>
              <description>SPDIFRX block reset</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USART2RST</name>
              <description>USART2 block reset</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USART3RST</name>
              <description>USART3 block reset</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UART4RST</name>
              <description>UART4 block reset</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UART5RST</name>
              <description>UART5 block reset</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>I2C1_I3C1RST</name>
              <description>I2C1/I3C1 block reset</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>I2C2RST</name>
              <description>I2C2 block reset</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>I2C3RST</name>
              <description>I2C3 block reset</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CECRST</name>
              <description>HDMI-CEC block reset</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UART7RST</name>
              <description>UART7 block reset</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UART8RST</name>
              <description>UART8 block reset</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>APB1RSTR2</name>
          <displayName>APB1RSTR2</displayName>
          <description>RCC APB1 peripheral reset register 2</description>
          <addressOffset>0x94</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CRSRST</name>
              <description>clock recovery system reset</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MDIOSRST</name>
              <description>MDIOS block reset</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FDCANRST</name>
              <description>FDCAN block reset</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UCPD1RST</name>
              <description>UCPD block reset</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>APB2RSTR</name>
          <displayName>APB2RSTR</displayName>
          <description>RCC APB2 peripheral reset register</description>
          <addressOffset>0x98</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TIM1RST</name>
              <description>TIM1 block reset</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>TIM1RST</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset the selected module</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>USART1RST</name>
              <description>USART1 block reset</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1RST"/>
            </field>
            <field>
              <name>SPI1RST</name>
              <description>SPI2S1 block reset</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1RST"/>
            </field>
            <field>
              <name>SPI4RST</name>
              <description>SPI4 block reset</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1RST"/>
            </field>
            <field>
              <name>TIM15RST</name>
              <description>TIM15 block reset</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1RST"/>
            </field>
            <field>
              <name>TIM16RST</name>
              <description>TIM16 block reset</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1RST"/>
            </field>
            <field>
              <name>TIM17RST</name>
              <description>TIM17 block reset</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1RST"/>
            </field>
            <field>
              <name>TIM9RST</name>
              <description>TIM9 block reset</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1RST"/>
            </field>
            <field>
              <name>SPI5RST</name>
              <description>SPI5 block reset</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1RST"/>
            </field>
            <field>
              <name>SAI1RST</name>
              <description>SAI1 block reset</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1RST"/>
            </field>
            <field>
              <name>SAI2RST</name>
              <description>SAI2 block reset</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1RST"/>
            </field>
          </fields>
        </register>
        <register>
          <name>APB4RSTR</name>
          <displayName>APB4RSTR</displayName>
          <description>RCC APB4 peripheral reset register</description>
          <addressOffset>0x9C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SBSRST</name>
              <description>SBS block reset</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SBSRST</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset the selected module</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LPUART1RST</name>
              <description>LPUART1 block reset</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSRST"/>
            </field>
            <field>
              <name>SPI6RST</name>
              <description>SPI/I2S6 block reset</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSRST"/>
            </field>
            <field>
              <name>LPTIM2RST</name>
              <description>LPTIM2 block reset</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSRST"/>
            </field>
            <field>
              <name>LPTIM3RST</name>
              <description>LPTIM3 block reset</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSRST"/>
            </field>
            <field>
              <name>LPTIM4RST</name>
              <description>LPTIM4 block reset</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSRST"/>
            </field>
            <field>
              <name>LPTIM5RST</name>
              <description>LPTIM5 block reset</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSRST"/>
            </field>
            <field>
              <name>VREFRST</name>
              <description>VREF block reset</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSRST"/>
            </field>
            <field>
              <name>DTSRST</name>
              <description>DTS block reset</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSRST"/>
            </field>
          </fields>
        </register>
        <register>
          <name>AHB3RSTR</name>
          <displayName>AHB3RSTR</displayName>
          <description>RCC AHB3 peripheral reset register</description>
          <addressOffset>0xA4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RNGRST</name>
              <description>random number generator block reset</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RNGRST</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset the selected module</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HASHRST</name>
              <description>HASH block reset</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="RNGRST"/>
            </field>
            <field>
              <name>CRYPRST</name>
              <description>CRYP block reset</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="RNGRST"/>
            </field>
            <field>
              <name>SAESRST</name>
              <description>SAES block reset</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="RNGRST"/>
            </field>
            <field>
              <name>PKARST</name>
              <description>PKA block reset</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="RNGRST"/>
            </field>
          </fields>
        </register>
        <register>
          <name>CKGDISR</name>
          <displayName>CKGDISR</displayName>
          <description>RCC AXI clocks gating disable register</description>
          <addressOffset>0xB0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x80000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>AXICKG</name>
              <description>AXI interconnect matrix clock gating disable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBMCKG</name>
              <description>AXI master AHB clock gating disable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SDMMC1CKG</name>
              <description>AXI master SDMMC1 clock gating disable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HPDMA1CKG</name>
              <description>AXI master HPDMA1 clock gating disable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CPUCKG</name>
              <description>AXI master CPU clock gating disable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GPU2DS0CKG</name>
              <description>AXI master 0 GPU2D clock gating disable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GPU2DS1CKG</name>
              <description>AXI master 1 GPU2D clock gating disable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GPU2DCLCKG</name>
              <description>AXI master cache GPU2D clock gating disable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DCMIPPCKG</name>
              <description>AXI master DCMIPP clock gating disable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DMA2DCKG</name>
              <description>AXI master DMA2D clock gating disable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GFXMMUSCKG</name>
              <description>AXI matrix slave GFXMMU clock gating disable</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LTDCCKG</name>
              <description>AXI master LTDC clock gating disable</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GFXMMUMCKG</name>
              <description>AXI master GFXMMU clock gating disable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AHBSCKG</name>
              <description>AXI slave AHB clock gating disable</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FMCCKG</name>
              <description>AXI slave FMC and MCE3 clock gating disable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>XSPI1CKG</name>
              <description>AXI slave XSPI1 and MCE1 clock gating disable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>XSPI2CKG</name>
              <description>AXI slave XSPI2 and MCE2 clock gating disable</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AXISRAM4CKG</name>
              <description>AXI matrix slave SRAM4 clock gating disable</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AXISRAM3CKG</name>
              <description>AXI matrix slave SRAM3 clock gating disable</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AXISRAM2CKG</name>
              <description>AXI slave SRAM2 clock gating disable</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AXISRAM1CKG</name>
              <description>AXI slave SRAM1 / error code correction (ECC) clock gating disable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FLASHCKG</name>
              <description>AXI slave Flash interface (FLIFT) clock gating disable</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EXTICKG</name>
              <description>EXTI clock gating disable</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>JTAGCKG</name>
              <description>JTAG automatic clock gating disabling</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PLL1DIVR2</name>
          <displayName>PLL1DIVR2</displayName>
          <description>RCC PLL1 dividers configuration register 2</description>
          <addressOffset>0xC0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000101</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIVS</name>
              <description>PLL1 DIVS division factor</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PLL2DIVR2</name>
          <displayName>PLL2DIVR2</displayName>
          <description>RCC PLL2 dividers configuration register 2</description>
          <addressOffset>0xC4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000101</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIVS</name>
              <description>PLL2 DIVS division factor</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DIVT</name>
              <description>PLL2 DIVT division factor</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PLL3DIVR2</name>
          <displayName>PLL3DIVR2</displayName>
          <description>RCC PLL3 dividers configuration register 2</description>
          <addressOffset>0xC8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000101</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIVS</name>
              <description>PLL3 DIVS division factor</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PLL1SSCGR</name>
          <displayName>PLL1SSCGR</displayName>
          <description>RCC PLL1 Spread Spectrum Clock Generator register</description>
          <addressOffset>0xCC</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MODPER</name>
              <description>Modulation Period Adjustment for PLL1</description>
              <bitOffset>0</bitOffset>
              <bitWidth>13</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TPDFNDIS</name>
              <description>Dithering TPDF noise control for PLL1</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RPDFNDIS</name>
              <description>Dithering RPDF noise control for PLL1</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPREADSEL</name>
              <description>Spread spectrum clock generator mode for PLL1</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INCSTEP</name>
              <description>Modulation Depth Adjustment for PLL1</description>
              <bitOffset>16</bitOffset>
              <bitWidth>15</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PLL2SSCGR</name>
          <displayName>PLL2SSCGR</displayName>
          <description>RCC PLL2 Spread Spectrum Clock Generator register</description>
          <addressOffset>0xD0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MODPER</name>
              <description>Modulation Period Adjustment for PLL2</description>
              <bitOffset>0</bitOffset>
              <bitWidth>13</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TPDFNDIS</name>
              <description>Dithering TPDF noise control for PLL2</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RPDFNDIS</name>
              <description>Dithering RPDF noise control for PLL2</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPREADSEL</name>
              <description>Spread spectrum clock generator mode for PLL2</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INCSTEP</name>
              <description>Modulation Depth Adjustment for PLL2</description>
              <bitOffset>16</bitOffset>
              <bitWidth>15</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PLL3SSCGR</name>
          <displayName>PLL3SSCGR</displayName>
          <description>RCC PLL3 Spread Spectrum Clock Generator register</description>
          <addressOffset>0xD4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MODPER</name>
              <description>Modulation Period Adjustment for PLL3</description>
              <bitOffset>0</bitOffset>
              <bitWidth>13</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TPDFNDIS</name>
              <description>Dithering TPDF noise control for PLL3</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RPDFNDIS</name>
              <description>Dithering RPDF noise control for PLL3</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPREADSEL</name>
              <description>Spread spectrum clock generator mode for PLL3</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INCSTEP</name>
              <description>Modulation Depth Adjustment for PLL3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>15</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CKPROTR</name>
          <displayName>CKPROTR</displayName>
          <description>RCC clock protection register</description>
          <addressOffset>0x100</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>XSPICKP</name>
              <description>XSPI clock protection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FMCCKP</name>
              <description>FMC clock protection</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>XSPI1SWP</name>
              <description>XSPI1 kernel clock switch position</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>XSPI2SWP</name>
              <description>XSPI2 kernel clock switch position</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>FMCSWP</name>
              <description>FMC kernel clock switch position</description>
              <bitOffset>12</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RSR</name>
          <displayName>RSR</displayName>
          <description>RCC Reset status register</description>
          <addressOffset>0x130</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00E00000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RMVF</name>
              <description>remove reset flag</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RMVF</name>
                <enumeratedValue>
                  <name>NotActivated</name>
                  <description>Reset not activated</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset the reset status flags</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OBLRSTF</name>
              <description>Option byte loading reset flag &lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>OBLRSTFR</name>
                <enumeratedValue>
                  <name>NoResetOccurred</name>
                  <description>No reset occurred for block</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ResetOccurred</name>
                  <description>Reset occurred for block</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BORRSTF</name>
              <description>BOR reset flag &lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="OBLRSTFR"/>
            </field>
            <field>
              <name>PINRSTF</name>
              <description>pin reset flag (NRST) &lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="OBLRSTFR"/>
            </field>
            <field>
              <name>PORRSTF</name>
              <description>POR/PDR reset flag &lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="OBLRSTFR"/>
            </field>
            <field>
              <name>SFTRSTF</name>
              <description>system reset from CPU reset flag &lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="OBLRSTFR"/>
            </field>
            <field>
              <name>IWDGRSTF</name>
              <description>independent watchdog reset flag &lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="OBLRSTFR"/>
            </field>
            <field>
              <name>WWDGRSTF</name>
              <description>window watchdog reset flag &lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="OBLRSTFR"/>
            </field>
            <field>
              <name>LPWRRSTF</name>
              <description>reset due to illegal Stop or Standby flag</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="OBLRSTFR"/>
            </field>
          </fields>
        </register>
        <register>
          <name>AHB5ENR</name>
          <displayName>AHB5ENR</displayName>
          <description>RCC AHB5 clock enable register</description>
          <addressOffset>0x134</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>HPDMA1EN</name>
              <description>HPDMA1 peripheral clock enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>HPDMA1EN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The selected clock is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The selected clock is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DMA2DEN</name>
              <description>DMA2D peripheral clock enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1EN"/>
            </field>
            <field>
              <name>JPEGEN</name>
              <description>JPEG peripheral clock enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1EN"/>
            </field>
            <field>
              <name>FMCEN</name>
              <description>FMC and MCE3 peripheral clocks enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1EN"/>
            </field>
            <field>
              <name>XSPI1EN</name>
              <description>XSPI1 and MCE1 peripheral clocks enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1EN"/>
            </field>
            <field>
              <name>SDMMC1EN</name>
              <description>SDMMC1 and DB_SDMMC1 peripheral clocks enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1EN"/>
            </field>
            <field>
              <name>XSPI2EN</name>
              <description>XSPI2 and MCE2 peripheral clocks enable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1EN"/>
            </field>
            <field>
              <name>XSPIMEN</name>
              <description>XSPIM peripheral clock enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1EN"/>
            </field>
            <field>
              <name>GFXMMUEN</name>
              <description>GFXMMU peripheral clock enable</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1EN"/>
            </field>
            <field>
              <name>GPU2DEN</name>
              <description>GPU2D peripheral clock enable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1EN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>AHB1ENR</name>
          <displayName>AHB1ENR</displayName>
          <description>RCC AHB1 clock enable register</description>
          <addressOffset>0x138</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>GPDMA1EN</name>
              <description>GPDMA1 clock enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>GPDMA1EN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The selected clock is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The selected clock is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADC12EN</name>
              <description>ADC1 and 2 peripheral clocks enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1EN"/>
            </field>
            <field>
              <name>ETH1MACEN</name>
              <description>ETH1 MAC peripheral clock enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1EN"/>
            </field>
            <field>
              <name>ETH1TXEN</name>
              <description>ETH1 transmission clock enable</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1EN"/>
            </field>
            <field>
              <name>ETH1RXEN</name>
              <description>ETH1 reception clock enable</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1EN"/>
            </field>
            <field>
              <name>OTGHSEN</name>
              <description>OTGHS clocks enable</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1EN"/>
            </field>
            <field>
              <name>USBPHYCEN</name>
              <description>USBPHYC clocks enable</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1EN"/>
            </field>
            <field>
              <name>OTGFSEN</name>
              <description>OTGFS peripheral clocks enable</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1EN"/>
            </field>
            <field>
              <name>ADF1EN</name>
              <description>ADF clocks enable</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1EN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>AHB2ENR</name>
          <displayName>AHB2ENR</displayName>
          <description>RCC AHB2 clock enable register</description>
          <addressOffset>0x13C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PSSIEN</name>
              <description>PSSI peripheral clocks enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PSSIEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The selected clock is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The selected clock is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SDMMC2EN</name>
              <description>SDMMC2 and SDMMC2 delay clock enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PSSIEN"/>
            </field>
            <field>
              <name>CORDICEN</name>
              <description>CORDIC clock enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PSSIEN"/>
            </field>
            <field>
              <name>SRAM1EN</name>
              <description>SRAM1 clock enable</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PSSIEN"/>
            </field>
            <field>
              <name>SRAM2EN</name>
              <description>SRAM2 clock enable</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PSSIEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>AHB4ENR</name>
          <displayName>AHB4ENR</displayName>
          <description>RCC AHB4 clock enable register</description>
          <addressOffset>0x140</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>GPIOAEN</name>
              <description>GPIOA peripheral clock enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>GPIOAEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The selected clock is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The selected clock is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>GPIOBEN</name>
              <description>GPIOB peripheral clock enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOAEN"/>
            </field>
            <field>
              <name>GPIOCEN</name>
              <description>GPIOC peripheral clock enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOAEN"/>
            </field>
            <field>
              <name>GPIODEN</name>
              <description>GPIOD peripheral clock enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOAEN"/>
            </field>
            <field>
              <name>GPIOEEN</name>
              <description>GPIOE peripheral clock enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOAEN"/>
            </field>
            <field>
              <name>GPIOFEN</name>
              <description>GPIOF peripheral clock enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOAEN"/>
            </field>
            <field>
              <name>GPIOGEN</name>
              <description>GPIOG peripheral clock enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOAEN"/>
            </field>
            <field>
              <name>GPIOHEN</name>
              <description>GPIOH peripheral clock enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOAEN"/>
            </field>
            <field>
              <name>GPIOMEN</name>
              <description>GPIOM peripheral clock enable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOAEN"/>
            </field>
            <field>
              <name>GPIONEN</name>
              <description>GPION peripheral clock enable</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOAEN"/>
            </field>
            <field>
              <name>GPIOOEN</name>
              <description>GPIOO peripheral clock enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOAEN"/>
            </field>
            <field>
              <name>GPIOPEN</name>
              <description>GPIOP peripheral clock enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOAEN"/>
            </field>
            <field>
              <name>CRCEN</name>
              <description>CRC clock enable</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOAEN"/>
            </field>
            <field>
              <name>BKPRAMEN</name>
              <description>Backup RAM clock enable</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOAEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>APB5ENR</name>
          <displayName>APB5ENR</displayName>
          <description>RCC APB5 clock enable register</description>
          <addressOffset>0x144</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LTDCEN</name>
              <description>LTDC peripheral clock enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>LTDCEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The selected clock is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The selected clock is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DCMIPPEN</name>
              <description>DCMIPP peripheral clock enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LTDCEN"/>
            </field>
            <field>
              <name>GFXTIMEN</name>
              <description>GFXTIM peripheral clock enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LTDCEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>APB1ENR1</name>
          <displayName>APB1ENR1</displayName>
          <description>RCC APB1 clock enable register 1</description>
          <addressOffset>0x148</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TIM2EN</name>
              <description>TIM2 peripheral clock enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM3EN</name>
              <description>TIM3 peripheral clock enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM4EN</name>
              <description>TIM4 peripheral clock enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM5EN</name>
              <description>TIM5 peripheral clock enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM6EN</name>
              <description>TIM6 peripheral clock enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM7EN</name>
              <description>TIM7 peripheral clock enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM12EN</name>
              <description>TIM12 peripheral clock enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM13EN</name>
              <description>TIM13 peripheral clock enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM14EN</name>
              <description>TIM14 peripheral clock enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LPTIM1EN</name>
              <description>LPTIM1 peripheral clocks enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WWDGEN</name>
              <description>WWDG clock enable</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPI2EN</name>
              <description>SPI2 peripheral clocks enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPI3EN</name>
              <description>SPI3 peripheral clocks enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPDIFRXEN</name>
              <description>SPDIFRX peripheral clocks enable</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USART2EN</name>
              <description>USART2peripheral clocks enable</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USART3EN</name>
              <description>USART3 peripheral clocks enable</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UART4EN</name>
              <description>UART4 peripheral clocks enable</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UART5EN</name>
              <description>UART5 peripheral clocks enable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>I2C1_I3C1EN</name>
              <description>I2C1/I3C1 peripheral clocks enable</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>I2C2EN</name>
              <description>I2C2 peripheral clocks enable</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>I2C3EN</name>
              <description>I2C3 peripheral clocks enable</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CECEN</name>
              <description>HDMI-CEC peripheral clock enable</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UART7EN</name>
              <description>UART7 peripheral clocks enable</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UART8EN</name>
              <description>UART8 peripheral clocks enable</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>APB1ENR2</name>
          <displayName>APB1ENR2</displayName>
          <description>RCC APB1 clock enable register 2</description>
          <addressOffset>0x14C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CRSEN</name>
              <description>clock recovery system peripheral clock enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MDIOSEN</name>
              <description>MDIOS peripheral clock enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FDCANEN</name>
              <description>FDCAN peripheral clock enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UCPD1EN</name>
              <description>UCPD peripheral clock enable</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>APB2ENR</name>
          <displayName>APB2ENR</displayName>
          <description>RCC APB2 clock enable register</description>
          <addressOffset>0x150</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TIM1EN</name>
              <description>TIM1 peripheral clock enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>TIM1EN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The selected clock is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The selected clock is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>USART1EN</name>
              <description>USART1 peripheral clocks enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1EN"/>
            </field>
            <field>
              <name>SPI1EN</name>
              <description>SPI2S1 Peripheral Clocks Enable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1EN"/>
            </field>
            <field>
              <name>SPI4EN</name>
              <description>SPI4 Peripheral Clocks Enable</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1EN"/>
            </field>
            <field>
              <name>TIM15EN</name>
              <description>TIM15 peripheral clock enable</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1EN"/>
            </field>
            <field>
              <name>TIM16EN</name>
              <description>TIM16 peripheral clock enable</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1EN"/>
            </field>
            <field>
              <name>TIM17EN</name>
              <description>TIM17 peripheral clock enable</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1EN"/>
            </field>
            <field>
              <name>TIM9EN</name>
              <description>TIM9 peripheral clock enable</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1EN"/>
            </field>
            <field>
              <name>SPI5EN</name>
              <description>SPI5 peripheral clocks enable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1EN"/>
            </field>
            <field>
              <name>SAI1EN</name>
              <description>SAI1 peripheral clocks enable</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1EN"/>
            </field>
            <field>
              <name>SAI2EN</name>
              <description>SAI2 peripheral clocks enable</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1EN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>APB4ENR</name>
          <displayName>APB4ENR</displayName>
          <description>RCC APB4 clock enable register</description>
          <addressOffset>0x154</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00010000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SBSEN</name>
              <description>SBS peripheral clock enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SBSEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The selected clock is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The selected clock is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LPUART1EN</name>
              <description>LPUART1 peripheral clocks enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSEN"/>
            </field>
            <field>
              <name>SPI6EN</name>
              <description>SPI/I2S6 peripheral clocks enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSEN"/>
            </field>
            <field>
              <name>LPTIM2EN</name>
              <description>LPTIM2 peripheral clocks enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSEN"/>
            </field>
            <field>
              <name>LPTIM3EN</name>
              <description>LPTIM3 peripheral clocks enable</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSEN"/>
            </field>
            <field>
              <name>LPTIM4EN</name>
              <description>LPTIM4 peripheral clocks enable</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSEN"/>
            </field>
            <field>
              <name>LPTIM5EN</name>
              <description>LPTIM5 peripheral clocks enable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSEN"/>
            </field>
            <field>
              <name>VREFEN</name>
              <description>VREF peripheral clock enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSEN"/>
            </field>
            <field>
              <name>RTCAPBEN</name>
              <description>RTC APB clock enable</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSEN"/>
            </field>
            <field>
              <name>DTSEN</name>
              <description>Temperature Sensor peripheral clock enable</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>AHB3ENR</name>
          <displayName>AHB3ENR</displayName>
          <description>RCC AHB3 clock enable register</description>
          <addressOffset>0x158</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RNGEN</name>
              <description>RNG peripheral clocks enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RNGEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The selected clock is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The selected clock is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HASHEN</name>
              <description>HASH peripheral clock enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="RNGEN"/>
            </field>
            <field>
              <name>CRYPEN</name>
              <description>CRYP peripheral clock enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="RNGEN"/>
            </field>
            <field>
              <name>SAESEN</name>
              <description>SAES peripheral clock enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="RNGEN"/>
            </field>
            <field>
              <name>PKAEN</name>
              <description>PKA peripheral clock enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="RNGEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>AHB5LPENR</name>
          <displayName>AHB5LPENR</displayName>
          <description>RCC AHB5 low-power clock enable register</description>
          <addressOffset>0x15C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0xF018513F</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>HPDMA1LPEN</name>
              <description>HPDMA1 low-power peripheral clock enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>HPDMA1LPEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The selected clock is disabled during csleep mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The selected clock is enabled during csleep mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DMA2DLPEN</name>
              <description>DMA2D low-power peripheral clock enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1LPEN"/>
            </field>
            <field>
              <name>FLASHLPEN</name>
              <description>FLASH low-power peripheral clock enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1LPEN"/>
            </field>
            <field>
              <name>JPEGLPEN</name>
              <description>JPEG clock enable in low-power mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1LPEN"/>
            </field>
            <field>
              <name>FMCLPEN</name>
              <description>FMC and MCE3 peripheral clocks enable in low-power mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1LPEN"/>
            </field>
            <field>
              <name>XSPI1LPEN</name>
              <description>XSPI1 and MCE1 low-power peripheral clock enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1LPEN"/>
            </field>
            <field>
              <name>SDMMC1LPEN</name>
              <description>SDMMC1 and SDMMC1 delay low-power peripheral clock enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1LPEN"/>
            </field>
            <field>
              <name>XSPI2LPEN</name>
              <description>XSPI2 and MCE2 low-power peripheral clock enable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1LPEN"/>
            </field>
            <field>
              <name>XSPIMLPEN</name>
              <description>XSPIM low-power peripheral clock enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1LPEN"/>
            </field>
            <field>
              <name>GFXMMULPEN</name>
              <description>GFXMMU low-power peripheral clock enable</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1LPEN"/>
            </field>
            <field>
              <name>GPU2DLPEN</name>
              <description>GPU2D low-power peripheral clock enable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1LPEN"/>
            </field>
            <field>
              <name>DTCM1LPEN</name>
              <description>DTCM1 low-power peripheral clock enable</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1LPEN"/>
            </field>
            <field>
              <name>DTCM2LPEN</name>
              <description>DTCM2 low-power peripheral clock enable</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1LPEN"/>
            </field>
            <field>
              <name>ITCMLPEN</name>
              <description>ITCM low-power peripheral clock enable</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1LPEN"/>
            </field>
            <field>
              <name>AXISRAMLPEN</name>
              <description>AXISRAM[4:1] low-power peripheral clock enable</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HPDMA1LPEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>AHB1LPENR</name>
          <displayName>AHB1LPENR</displayName>
          <description>RCC AHB1 low-power clock enable register</description>
          <addressOffset>0x160</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x8E038030</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>GPDMA1LPEN</name>
              <description>GPDMA1 clock enable in low-power mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>GPDMA1LPEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The selected clock is disabled during csleep mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The selected clock is enabled during csleep mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADC12LPEN</name>
              <description>ADC1 and 2 peripheral clocks enable in low-power mode</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1LPEN"/>
            </field>
            <field>
              <name>ETH1MACLPEN</name>
              <description>ETH1 MAC peripheral clock enable in low-power mode</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1LPEN"/>
            </field>
            <field>
              <name>ETH1TXLPEN</name>
              <description>ETH1 transmission peripheral clock enable in low-power mode</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1LPEN"/>
            </field>
            <field>
              <name>ETH1RXLPEN</name>
              <description>ETH1 reception peripheral clock enable in low-power mode</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1LPEN"/>
            </field>
            <field>
              <name>UCPDCTRL</name>
              <description>USBPHYC common block power-down control</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OTGHSLPEN</name>
              <description>OTGHS peripheral clock enable in low-power mode</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1LPEN"/>
            </field>
            <field>
              <name>USBPHYCLPEN</name>
              <description>USBPHYC peripheral clock enable in low-power mode</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1LPEN"/>
            </field>
            <field>
              <name>OTGFSLPEN</name>
              <description>OTGFS clock enable in low-power mode</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1LPEN"/>
            </field>
            <field>
              <name>ADF1LPEN</name>
              <description>ADF clock enable in low-power mode</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPDMA1LPEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>AHB2LPENR</name>
          <displayName>AHB2LPENR</displayName>
          <description>RCC AHB2 low-power clock enable register</description>
          <addressOffset>0x164</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x60004202</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PSSILPEN</name>
              <description>PSSI peripheral clock enable in low-power mode</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PSSILPEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The selected clock is disabled during csleep mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The selected clock is enabled during csleep mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SDMMC2LPEN</name>
              <description>SDMMC2 and SDMMC2 delay clock enable in low-power mode</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PSSILPEN"/>
            </field>
            <field>
              <name>CORDICLPEN</name>
              <description>CORDIC clock enable in low-power mode</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PSSILPEN"/>
            </field>
            <field>
              <name>SRAM1LPEN</name>
              <description>SRAM1 clock enable in low-power mode</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PSSILPEN"/>
            </field>
            <field>
              <name>SRAM2LPEN</name>
              <description>SRAM2 clock enable in low-power mode</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PSSILPEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>AHB4LPENR</name>
          <displayName>AHB4LPENR</displayName>
          <description>RCC AHB4 low-power clock enable register</description>
          <addressOffset>0x168</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x1008F0FF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>GPIOALPEN</name>
              <description>GPIOA peripheral clock enable in low-power mode</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>GPIOALPEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The selected clock is disabled during csleep mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The selected clock is enabled during csleep mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>GPIOBLPEN</name>
              <description>GPIOB peripheral clock enable in low-power mode</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOALPEN"/>
            </field>
            <field>
              <name>GPIOCLPEN</name>
              <description>GPIOC peripheral clock enable in low-power mode</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOALPEN"/>
            </field>
            <field>
              <name>GPIODLPEN</name>
              <description>GPIOD peripheral clock enable in low-power mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOALPEN"/>
            </field>
            <field>
              <name>GPIOELPEN</name>
              <description>GPIOE peripheral clock enable in low-power mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOALPEN"/>
            </field>
            <field>
              <name>GPIOFLPEN</name>
              <description>GPIOF peripheral clock enable in low-power mode</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOALPEN"/>
            </field>
            <field>
              <name>GPIOGLPEN</name>
              <description>GPIOG peripheral clock enable in low-power mode</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOALPEN"/>
            </field>
            <field>
              <name>GPIOHLPEN</name>
              <description>GPIOH peripheral clock enable in low-power mode</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOALPEN"/>
            </field>
            <field>
              <name>GPIOMLPEN</name>
              <description>GPIOM peripheral clock enable in low-power mode</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOALPEN"/>
            </field>
            <field>
              <name>GPIONLPEN</name>
              <description>GPION peripheral clock enable in low-power mode</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOALPEN"/>
            </field>
            <field>
              <name>GPIOOLPEN</name>
              <description>GPIOO peripheral clock enable in low-power mode</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOALPEN"/>
            </field>
            <field>
              <name>GPIOPLPEN</name>
              <description>GPIOP peripheral clock enable in low-power mode</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOALPEN"/>
            </field>
            <field>
              <name>CRCLPEN</name>
              <description>CRC clock enable in low-power mode</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOALPEN"/>
            </field>
            <field>
              <name>BKPRAMLPEN</name>
              <description>Backup RAM clock enable in low-power mode</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="GPIOALPEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>AHB3LPENR</name>
          <displayName>AHB3LPENR</displayName>
          <description>RCC AHB3 low-power clock enable register</description>
          <addressOffset>0x16C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000057</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RNGLPEN</name>
              <description>RNG peripheral clock enable in low-power mode</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RNGLPEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The selected clock is disabled during csleep mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The selected clock is enabled during csleep mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HASHLPEN</name>
              <description>HASH peripheral clock enable in low-power mode</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="RNGLPEN"/>
            </field>
            <field>
              <name>CRYPLPEN</name>
              <description>CRYP peripheral clock enable in low-power mode</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="RNGLPEN"/>
            </field>
            <field>
              <name>SAESLPEN</name>
              <description>SAES peripheral clock enable in low-power mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="RNGLPEN"/>
            </field>
            <field>
              <name>PKALPEN</name>
              <description>PKA peripheral clock enable in low-power mode</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="RNGLPEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>APB1LPENR1</name>
          <displayName>APB1LPENR1</displayName>
          <description>RCC APB1 low-power clock enable register 1</description>
          <addressOffset>0x170</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0xC8FFCBFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TIM2LPEN</name>
              <description>TIM2 peripheral clock enable in low-power mode</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM3LPEN</name>
              <description>TIM3 peripheral clock enable in low-power mode</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM4LPEN</name>
              <description>TIM4 peripheral clock enable in low-power mode</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM5LPEN</name>
              <description>TIM5 peripheral clock enable in low-power mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM6LPEN</name>
              <description>TIM6 peripheral clock enable in low-power mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM7LPEN</name>
              <description>TIM7 peripheral clock enable in low-power mode</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM12LPEN</name>
              <description>TIM12 peripheral clock enable in low-power mode</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM13LPEN</name>
              <description>TIM13 peripheral clock enable in low-power mode</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TIM14LPEN</name>
              <description>TIM14 peripheral clock enable in low-power mode</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LPTIM1LPEN</name>
              <description>LPTIM1 peripheral clocks enable in low-power mode</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WWDGLPEN</name>
              <description>WWDG clock enable in low-power mode</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPI2LPEN</name>
              <description>SPI2 peripheral clocks enable in low-power mode</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPI3LPEN</name>
              <description>SPI3 peripheral clocks enable in low-power mode</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SPDIFRXLPEN</name>
              <description>SPDIFRX peripheral clocks enable in low-power mode</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USART2LPEN</name>
              <description>USART2 peripheral clocks enable in low-power mode</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>USART3LPEN</name>
              <description>USART3 peripheral clocks enable in low-power mode</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UART4LPEN</name>
              <description>UART4 peripheral clocks enable in low-power mode</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UART5LPEN</name>
              <description>UART5 peripheral clocks enable in low-power mode</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>I2C1_I3C1LPEN</name>
              <description>I2C1/I3C1 peripheral clocks enable in low-power mode</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>I2C2LPEN</name>
              <description>I2C2 peripheral clocks enable in low-power mode</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>I2C3LPEN</name>
              <description>I2C3 peripheral clocks enable in low-power mode</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CECLPEN</name>
              <description>HDMI-CEC peripheral clocks enable in low-power mode</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UART7LPEN</name>
              <description>UART7 peripheral clocks enable in low-power mode</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UART8LPEN</name>
              <description>UART8 peripheral clocks enable in low-power mode</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>APB1LPENR2</name>
          <displayName>APB1LPENR2</displayName>
          <description>RCC APB1 low-power clock enable register 2</description>
          <addressOffset>0x174</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x08000122</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CRSLPEN</name>
              <description>clock recovery system peripheral clock enable in low-power mode</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MDIOSLPEN</name>
              <description>MDIOS peripheral clock enable in low-power mode</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FDCANLPEN</name>
              <description>FDCAN peripheral clock enable in low-power mode</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>UCPD1LPEN</name>
              <description>UCPD peripheral clock enable in low-power mode</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>APB2LPENR</name>
          <displayName>APB2LPENR</displayName>
          <description>RCC APB2 low-power clock enable register</description>
          <addressOffset>0x178</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00DF3011</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TIM1LPEN</name>
              <description>TIM1 peripheral clock enable in low-power mode</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>TIM1LPEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The selected clock is disabled during csleep mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The selected clock is enabled during csleep mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>USART1LPEN</name>
              <description>USART1 peripheral clock enable in low-power mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1LPEN"/>
            </field>
            <field>
              <name>SPI1LPEN</name>
              <description>SPI2S1 peripheral clock enable in low-power mode</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1LPEN"/>
            </field>
            <field>
              <name>SPI4LPEN</name>
              <description>SPI4 peripheral clock enable in low-power mode</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1LPEN"/>
            </field>
            <field>
              <name>TIM15LPEN</name>
              <description>TIM15 peripheral clock enable in low-power mode</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1LPEN"/>
            </field>
            <field>
              <name>TIM16LPEN</name>
              <description>TIM16 peripheral clock enable in low-power mode</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1LPEN"/>
            </field>
            <field>
              <name>TIM17LPEN</name>
              <description>TIM17 peripheral clock enable in low-power mode</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1LPEN"/>
            </field>
            <field>
              <name>TIM9LPEN</name>
              <description>TIM9 peripheral clock enable in low-power mode</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1LPEN"/>
            </field>
            <field>
              <name>SPI5LPEN</name>
              <description>SPI5 peripheral clocks enable in low-power mode</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1LPEN"/>
            </field>
            <field>
              <name>SAI1LPEN</name>
              <description>SAI1 peripheral clocks enable in low-power mode</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1LPEN"/>
            </field>
            <field>
              <name>SAI2LPEN</name>
              <description>SAI2 peripheral clocks enable in low-power mode</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TIM1LPEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>APB4LPENR</name>
          <displayName>APB4LPENR</displayName>
          <description>RCC APB4 low-power clock enable register</description>
          <addressOffset>0x17C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x04019E2A</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SBSLPEN</name>
              <description>SBS peripheral clock enable in low-power mode</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SBSLPEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The selected clock is disabled during csleep mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The selected clock is enabled during csleep mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LPUART1LPEN</name>
              <description>LPUART1 peripheral clocks enable in low-power mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSLPEN"/>
            </field>
            <field>
              <name>SPI6LPEN</name>
              <description>SPI/I2S6 peripheral clocks enable in low-power mode</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSLPEN"/>
            </field>
            <field>
              <name>LPTIM2LPEN</name>
              <description>LPTIM2 peripheral clocks enable in low-power mode</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSLPEN"/>
            </field>
            <field>
              <name>LPTIM3LPEN</name>
              <description>LPTIM3 peripheral clocks enable in low-power mode</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSLPEN"/>
            </field>
            <field>
              <name>LPTIM4LPEN</name>
              <description>LPTIM4 peripheral clocks enable in low-power mode</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSLPEN"/>
            </field>
            <field>
              <name>LPTIM5LPEN</name>
              <description>LPTIM5 peripheral clocks enable in low-power mode</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSLPEN"/>
            </field>
            <field>
              <name>VREFLPEN</name>
              <description>VREF peripheral clock enable in low-power mode</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSLPEN"/>
            </field>
            <field>
              <name>RTCAPBLPEN</name>
              <description>RTC APB clock enable in low-power mode</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSLPEN"/>
            </field>
            <field>
              <name>DTSLPEN</name>
              <description>temperature sensor peripheral clock enable in low-power mode</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="SBSLPEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>APB5LPENR</name>
          <displayName>APB5LPENR</displayName>
          <description>RCC APB5 low-power clock enable register</description>
          <addressOffset>0x180</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000016</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LTDCLPEN</name>
              <description>LTDC peripheral clock enable in low-power mode</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>LTDCLPEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The selected clock is disabled during csleep mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The selected clock is enabled during csleep mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DCMIPPLPEN</name>
              <description>DCMIPP peripheral clock enable in low-power mode</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LTDCLPEN"/>
            </field>
            <field>
              <name>GFXTIMLPEN</name>
              <description>GFXTIM peripheral clock enable in low-power mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LTDCLPEN"/>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>RNG</name>
      <description>True random number generator</description>
      <groupName>RNG</groupName>
      <baseAddress>0x48020000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>RNG</name>
        <description>RNG global interrupt</description>
        <value>37</value>
      </interrupt>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>RNG control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00800D00</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RNGEN</name>
              <description>True random number generator enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RNGEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Random number generator is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Random number generator is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IE</name>
              <description>Interrupt Enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>IE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>RNG interrupt is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>RNG interrupt is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CED</name>
              <description>Clock error detection 
The clock error detection cannot be enabled nor disabled on-the-fly when the RNG is enabled, that is to enable or disable CED the RNG must be disabled.
Writing this bit is taken into account only if CONDRST bit is set to 1 in the same access, while CONFIGLOCK remains at 0. Writing to this bit is ignored if CONFIGLOCK = 1.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>CED</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Clock error detection is enabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Clock error detection is disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ARDIS</name>
              <description>Auto reset disable
When auto-reset is enabled application still need to clear SEIS bit after a noise source error.
Writing this bit is taken into account only if CONDRST bit is set to 1 in the same access, while CONFIGLOCK remains at 0. Writing to this bit is ignored if CONFIGLOCK = 1.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RNG_CONFIG3</name>
              <description>RNG configuration 3
Reserved to the RNG configuration (bitfield 3). Refer to RNG_CONFIG1 bitfield for details.
If NISTC bit is cleared in this register RNG_CONFIG3 bitfield values are ignored by RNG.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RNG_CONFIG3</name>
                <enumeratedValue>
                  <name>ConfigB</name>
                  <description>Recommended value for config B (not NIST certifiable)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ConfigA</name>
                  <description>Recommended value for config A (NIST certifiable)</description>
                  <value>13</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NISTC</name>
              <description>NIST custom
two conditioning loops are performed and 256 bits of noise source are used.
Writing this bit is taken into account only if CONDRST bit is set to 1 in the same access, while CONFIGLOCK remains at 0. Writing to this bit is ignored if CONFIGLOCK = 1.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>NISTC</name>
                <enumeratedValue>
                  <name>Default</name>
                  <description>Hardware default values for NIST compliant RNG. In this configuration per 128-bit output two conditioning loops are performed and 256 bits of noise source are used</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Custom</name>
                  <description>Custom values for NIST compliant RNG</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RNG_CONFIG2</name>
              <description>RNG configuration 2
Reserved to the RNG configuration (bitfield 2). Refer to RNG_CONFIG1 bitfield for details.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RNG_CONFIG2</name>
                <enumeratedValue>
                  <name>ConfigA_B</name>
                  <description>Recommended value for config A and B</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CLKDIV</name>
              <description>Clock divider factor
This value used to configure an internal programmable divider (from 1 to 16) acting on the incoming RNG clock. These bits can be written only when the core is disabled (RNGEN = 0). 
...
Writing these bits is taken into account only if CONDRST bit is set to 1 in the same access, while CONFIGLOCK remains at 0. Writing to this bit is ignored if CONFIGLOCK = 1.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>CLKDIV</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>Internal RNG clock after divider is similar to incoming RNG clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>Divide RNG clock by 2^1</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>Divide RNG clock by 2^2</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>Divide RNG clock by 2^3</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>Divide RNG clock by 2^4</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div32</name>
                  <description>Divide RNG clock by 2^5</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div64</name>
                  <description>Divide RNG clock by 2^6</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div128</name>
                  <description>Divide RNG clock by 2^7</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div256</name>
                  <description>Divide RNG clock by 2^8</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div512</name>
                  <description>Divide RNG clock by 2^9</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div1024</name>
                  <description>Divide RNG clock by 2^10</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2048</name>
                  <description>Divide RNG clock by 2^11</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4096</name>
                  <description>Divide RNG clock by 2^12</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8192</name>
                  <description>Divide RNG clock by 2^13</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16384</name>
                  <description>Divide RNG clock by 2^14</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div32768</name>
                  <description>Divide RNG clock by 2^15</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RNG_CONFIG1</name>
              <description>RNG configuration 1
Reserved to the RNG configuration (bitfield 1). Must be initialized using the recommended value documented in Section 37.6: RNG entropy source validation.
Writing any bit of RNG_CONFIG1 is taken into account only if CONDRST bit is set to 1 in the same access, while CONFIGLOCK remains at 0. Writing to this bit is ignored if CONFIGLOCK = 1.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RNG_CONFIG1</name>
                <enumeratedValue>
                  <name>ConfigA</name>
                  <description>Recommended value for config A (NIST certifiable)</description>
                  <value>15</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ConfigB</name>
                  <description>Recommended value for config B (not NIST certifiable)</description>
                  <value>24</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CONDRST</name>
              <description>Conditioning soft reset
Write 1 and then write 0 to reset the conditioning logic, clear all the FIFOs and start a new RNG initialization process, with RNG_SR cleared. Registers RNG_CR and RNG_HTCR are not changed by CONDRST.
This bit must be set to 1 in the same access that set any configuration bits [29:4]. In other words, when CONDRST bit is set to 1 correct configuration in bits [29:4] must also be written.
When CONDRST is set to 0 by software its value goes to 0 when the reset process is done. It takes about 2 AHB clock cycles + 2 RNG clock cycles.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CONFIGLOCK</name>
              <description>RNG Config lock
This bitfield is set once: if this bit is set it can only be reset to 0 if RNG is reset.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>CONFIGLOCK</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Writes to the RNG_CR configuration bits [29:4] are allowed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Writes to the RNG_CR configuration bits [29:4] are ignored until the next RNG reset</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>RNG status register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DRDY</name>
              <description>Data Ready
Once the output buffer becomes empty (after reading the RNG_DR register), this bit returns to 0 until a new random value is generated.
Note: The DRDY bit can rise when the peripheral is disabled (RNGEN = 0 in the RNG_CR register).
If IE=1 in the RNG_CR register, an interrupt is generated when DRDY = 1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>DRDY</name>
                <enumeratedValue>
                  <name>Invalid</name>
                  <description>The RNG_DR register is not yet valid, no random data is available</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Valid</name>
                  <description>The RNG_DR register contains valid random data.
Once the RNG_DR register has been read, this bit returns to 0 until a new random value is generated.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CECS</name>
              <description>Clock error current status
Note: CECS bit is valid only if the CED bit in the RNG_CR register is set to 0.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>CECS</name>
                <enumeratedValue>
                  <name>Correct</name>
                  <description>The RNG clock is correct. If the CEIS bit is set, this means that a slow clock was detected and the situation has been recovered.</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Slow</name>
                  <description>The RNG clock is too slow</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SECS</name>
              <description>Seed error current status
Run-time repetition count test failed (noise source has provided more than 24 consecutive bits at a constant value 0 or 1, or more than 32 consecutive occurrence of two bits patterns 01 or 10)
Start-up or continuous adaptive proportion test on noise source failed.
Start-up post-processing/conditioning sanity check failed.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>SECS</name>
                <enumeratedValue>
                  <name>NoFault</name>
                  <description>No faulty sequence has currently been detected. If the SEIS bit is set, this means that a faulty sequence was detected and the situation has been recovered.</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Fault</name>
                  <description>At least one faulty sequence has been detected - see ref manual for details</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CEIS</name>
              <description>Clock error interrupt status
This bit is set at the same time as CECS. It is cleared by writing 0. Writing 1 has no effect.
An interrupt is pending if IE = 1 in the RNG_CR register.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CEISW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CEISR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>Correct</name>
                  <description>The RNG clock is correct</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Slow</name>
                  <description>The RNG has been detected too slow
An interrupt is pending if IE = 1 in the RNG_CR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SEIS</name>
              <description>Seed error interrupt status
This bit is set at the same time as SECS. It is cleared by writing 0 (unless CONDRST is used). Writing 1 has no effect.
An interrupt is pending if IE = 1 in the RNG_CR register.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="CEISW">
                <usage>write</usage>
              </enumeratedValues>
              <enumeratedValues>
                <name>SEISR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoFault</name>
                  <description>No faulty sequence detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Fault</name>
                  <description>At least one faulty sequence has been detected. See **SECS** bit description for details.
An interrupt is pending if IE = 1 in the RNG_CR register.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>DR</name>
          <displayName>DR</displayName>
          <description>RNG data register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RNDATA</name>
              <description>Random data
32-bit random data which are valid when DRDY = 1. When DRDY = 0 RNDATA value is zero.
When DRDY is set, it is recommended to always verify that RNG_DR is different from zero. Because when it is the case a seed error occurred between RNG_SR polling and RND_DR output reading (rare event).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>HTCR</name>
          <displayName>HTCR</displayName>
          <description>RNG health test control register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x000072AC</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>HTCFG</name>
              <description>health test configuration
This configuration is used by RNG to configure the health tests. See Section 37.6: RNG entropy source validation for the recommended value.
Note: The RNG behavior, including the read to this register, is not guaranteed if a different value from the recommended value is written.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>HTCFG</name>
                <enumeratedValue>
                  <name>Recommended</name>
                  <description>Recommended value for RNG certification (0x0000_AA74)</description>
                  <value>43636</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Magic</name>
                  <description>Magic number to be written before any write (0x1759_0ABC)</description>
                  <value>391711420</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>RTC</name>
      <description>RTC register block</description>
      <groupName>RTC</groupName>
      <baseAddress>0x58004000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>RTC</name>
        <description>RTC Wakeup and Alarm interrupt through the EXTI line</description>
        <value>32</value>
      </interrupt>
      <registers>
        <register>
          <name>TR</name>
          <displayName>TR</displayName>
          <description>RTC time register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SU</name>
              <description>Second units in BCD format</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>7</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>HU</name>
              <description>Hour units in BCD format</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>HT</name>
              <description>Hour tens in BCD format</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>3</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>PM</name>
              <description>AM/PM notation</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>DR</name>
          <displayName>DR</displayName>
          <description>RTC date register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00002101</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DU</name>
              <description>Date units in BCD format</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>3</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MU</name>
              <description>Month units in BCD format</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MT</name>
              <description>Month tens in BCD format</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>WDU</name>
              <description>Week day units
...</description>
              <bitOffset>13</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>1</minimum>
                  <maximum>7</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>YU</name>
              <description>Year units in BCD format</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>YT</name>
              <description>Year tens in BCD format</description>
              <bitOffset>20</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>SSR</name>
          <displayName>SSR</displayName>
          <description>RTC subsecond register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SS</name>
              <description>Synchronous binary counter
SS[31:16]: Synchronous binary counter MSB values
When Binary or Mixed mode is selected (BIN = 01 or 10 or 11):
SS[31:16] are the 16 MSB of the SS[31:0] free-running down-counter.
When BCD mode is selected (BIN=00):
SS[31:16] are forced by hardware to 0x0000.
SS[15:0]: Subsecond value/synchronous binary counter LSB values
When Binary mode is selected (BIN = 01 or 10 or 11):
SS[15:0] are the 16 LSB of the SS[31:0] free-running down-counter.
When BCD mode is selected (BIN=00):
SS[15:0] is the value in the synchronous prescaler counter. The fraction of a second is given by the formula below:
Second fraction = (PREDIV_S - SS) / (PREDIV_S + 1)
SS can be larger than PREDIV_S only after a shift operation. In that case, the correct time/date is one second less than as indicated by RTC_TR/RTC_DR.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>ICSR</name>
          <displayName>ICSR</displayName>
          <description>RTC initialization control and status register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000007</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>WUTWF</name>
              <description>Wakeup timer write flag
This bit is set by hardware when WUT value can be changed, after the WUTE bit has been set to 0 in RTC_CR.
It is cleared by hardware in initialization mode.</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
This flag is set by hardware as soon as a shift operation is initiated by a write to the RTC_SHIFTR register. It is cleared by hardware when the corresponding shift operation has been executed. Writing to the SHPF bit has no effect.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>SHPFR</name>
                <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
This bit is set by hardware when the calendar year field is different from 0 (Backup domain reset state).</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
This bit is set by hardware each time the calendar registers are copied into the shadow registers (RTC_SSR, RTC_TR and RTC_DR). This bit is cleared by hardware in initialization mode, while a shift operation is pending (SHPF = 1), or when in bypass shadow register mode (BYPSHAD = 1). This bit can also be cleared by software.
It is cleared either by software or by hardware in initialization mode.</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
When this bit is set to 1, the RTC is in initialization state, and the time, date and prescaler registers can be updated.</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>BIN</name>
              <description>Binary mode</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BCDU</name>
              <description>BCD update (BIN = 10 or 11)
In mixed mode when both BCD calendar and binary extended counter are used (BIN = 10 or 11), the calendar second is incremented using the SSR Least Significant Bits.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RECALPF</name>
              <description>Recalibration pending Flag
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. Refer to Re-calibration on-the-fly.</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>RTC prescaler register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x007F00FF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PREDIV_S</name>
              <description>Synchronous prescaler factor
This is the synchronous division factor:
ck_spre frequency = ck_apre frequency/(PREDIV_S+1)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>15</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>32767</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>PREDIV_A</name>
              <description>Asynchronous prescaler factor
This is the asynchronous division factor:
ck_apre frequency = RTCCLK frequency/(PREDIV_A+1)</description>
              <bitOffset>16</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>127</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>WUTR</name>
          <displayName>WUTR</displayName>
          <description>RTC wakeup timer register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x0000FFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>WUT</name>
              <description>Wakeup auto-reload value bits
When the wakeup timer is enabled (WUTE set to 1), the WUTF flag is set every (WUT[15:0] + 1) ck_wut cycles. The ck_wut period is selected through WUCKSEL[2:0] bits of the RTC_CR register.
When WUCKSEL[2] = 1, the wakeup timer becomes 17-bits and WUCKSEL[1] effectively becomes WUT[16] the most-significant bit to be reloaded into the timer.
The first assertion of WUTF occurs between WUT and (WUT + 2) ck_wut cycles after WUTE is set. Setting WUT[15:0] to 0x0000 with WUCKSEL[2:0] = 011 (RTCCLK/2) is forbidden.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>WUTOCLR</name>
              <description>Wakeup auto-reload output clear value
When WUTOCLR[15:0] is different from 0x0000, WUTF is set by hardware when the auto-reload down-counter reaches 0 and is cleared by hardware when the auto-reload downcounter reaches WUTOCLR[15:0].
When WUTOCLR[15:0] = 0x0000, WUTF is set by hardware when the WUT down-counter
reaches 0 and is cleared by software.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>RTC control register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>WUCKSEL</name>
              <description>ck_wut wakeup clock selection
10x: ck_spre (usually 1 Hz) clock is selected in BCD mode. In binary or mixed mode, this is the clock selected by BCDU.
11x: ck_spre (usually 1 Hz) clock is selected in BCD mode. In binary or mixed mode, this is the clock selected by BCDU. Furthermore, 2&lt;sup&gt;16&lt;/sup&gt; is added to the WUT counter value.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <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>Timestamp event active edge
TSE must be reset when TSEDGE is changed to avoid unwanted TSF setting.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>RTC_REFIN reference clock detection enable (50 or 60 Hz)
Note: BIN must be 0x00 and PREDIV_S must be 0x00FF.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>Bypass the shadow registers
Note: If the frequency of the APB clock is less than seven times the frequency of RTCCLK, BYPSHAD must be set to 1.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>Hour format</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <name>SSRUIE</name>
              <description>SSR underflow interrupt enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </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>
              <access>read-write</access>
              <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>Wakeup timer enable
Note: When the wakeup timer is disabled, wait for WUTWF = 1 before enabling it again.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>timestamp enable</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>Wakeup timer interrupt enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>Timestamp interrupt enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>Add 1 hour (summer time change)
When this bit is set outside initialization mode, 1 hour is added to the calendar time. This bit is always read as 0.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues>
                <name>ADD1HW</name>
                <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>Subtract 1 hour (winter time change)
When this bit is set outside initialization mode, 1 hour is subtracted to the calendar time if the current hour is not 0. This bit is always read as 0.
Setting this bit has no effect when current hour is 0.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues>
                <name>SUB1HW</name>
                <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>Backup
This bit can be written by the user to memorize whether the daylight saving time change has been performed or not.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>Calibration output selection
When COE = 1, this bit selects which signal is output on CALIB.
These frequencies are valid for RTCCLK at 32.768 kHz and prescalers at their default values (PREDIV_A = 127 and PREDIV_S = 255). Refer to Section 45.3.17: Calibration clock output.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>Output polarity
This bit is used to configure the polarity of TAMPALRM output.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>Output selection
These bits are used to select the flag to be routed to TAMPALRM output.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>Calibration output enable
This bit enables the CALIB output</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>timestamp on internal event enable</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>Activate timestamp on tamper detection event
TAMPTS is valid even if TSE = 0 in the RTC_CR register. Timestamp flag is set up to 3 ck_apre cycles after the tamper flags.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>Tamper detection output enable on TAMPALRM</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>ALRAFCLR</name>
              <description>Alarm A flag automatic clear</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ALRBFCLR</name>
              <description>Alarm B flag automatic clear</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMPALRM_PU</name>
              <description>TAMPALRM pull-up enable</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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 output type</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>RTC_OUT2 output enable
With this bit set, the RTC outputs can be remapped on RTC_OUT2 as follows:
OUT2EN = 0: RTC output 2 disable
If OSEL different from 00 or TAMPOE = 1: TAMPALRM is output on RTC_OUT1
If OSEL = 00 and TAMPOE = 0 and COE = 1: CALIB is output on RTC_OUT1
OUT2EN = 1: RTC output 2 enable
If (OSEL different from 00 or TAMPOE = 1) and COE = 0: TAMPALRM is output on RTC_OUT2
If OSEL = 00 and TAMPOE = 0 and COE = 1: CALIB is output on RTC_OUT2
If (OSEL different from 00 or TAMPOE = 1) and COE = 1: CALIB is output on RTC_OUT2 and TAMPALRM is output on RTC_OUT1.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>PRIVCFGR</name>
          <displayName>PRIVCFGR</displayName>
          <description>RTC privilege mode control register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ALRAPRIV</name>
              <description>Alarm A and SSR underflow privilege protection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ALRBPRIV</name>
              <description>Alarm B privilege protection</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WUTPRIV</name>
              <description>Wakeup timer privilege protection</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TSPRIV</name>
              <description>Timestamp privilege protection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CALPRIV</name>
              <description>Shift register, Delight saving, calibration and reference clock privilege protection</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INITPRIV</name>
              <description>Initialization privilege protection</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PRIV</name>
              <description>RTC privilege protection</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>WPR</name>
          <displayName>WPR</displayName>
          <description>RTC write protection register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>KEY</name>
              <description>Write protection key
This byte is written by software.
Reading this byte always returns 0x00.
Refer to RTC register write protection for a description of how to unlock RTC register write protection.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>write-only</access>
              <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>RTC calibration register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CALM</name>
              <description>Calibration minus
The frequency of the calendar is reduced by masking CALM out of 2&lt;sup&gt;20&lt;/sup&gt; RTCCLK pulses (32 seconds if the input frequency is 32768 Hz). This decreases the frequency of the calendar with a resolution of 0.9537 ppm.
To increase the frequency of the calendar, this feature should be used in conjunction with CALP. See Section 45.3.15: RTC smooth digital calibration on page 2349.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>9</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>511</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>LPCAL</name>
              <description>RTC low-power mode</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CALW16</name>
              <description>Use a 16-second calibration cycle period
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.
Note: CALM[0] is stuck at 0 when CALW16 = 1. Refer to Section 45.3.15: RTC smooth digital calibration.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>CALW8</name>
              <description>Use an 8-second calibration cycle period
When CALW8 is set to 1, the 8-second calibration cycle period is selected.
Note: CALM[1:0] are stuck at 00 when CALW8 = 1. Refer to Section 45.3.15: RTC smooth digital calibration.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>CALP</name>
              <description>Increase frequency of RTC by 488.5 ppm</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>SHIFTR</name>
          <displayName>SHIFTR</displayName>
          <description>RTC shift control register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SUBFS</name>
              <description>Subtract a fraction of a second
These bits are write only and is always read as zero. Writing to this bit has no effect when a shift operation is pending (when SHPF = 1, in RTC_ICSR).
The value which is written to SUBFS is added to the synchronous prescaler counter. Since this counter counts down, this operation effectively subtracts from (delays) the clock by:
Delay (seconds) = SUBFS / (PREDIV_S + 1)
A fraction of a second can effectively be added to the clock (advancing the clock) when the ADD1S function is used in conjunction with SUBFS, effectively advancing the clock by:
Advance (seconds) = (1 - (SUBFS / (PREDIV_S + 1))).
In mixed BCD-binary mode (BIN=10 or 11), the SUBFS[14:BCDU+8] must be written with 0.
Note: Writing to SUBFS causes RSF to be cleared. Software can then wait until RSF = 1 to be sure that the shadow registers have been updated with the shifted time.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>15</bitWidth>
              <access>write-only</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>32767</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>ADD1S</name>
              <description>Add one second
This bit is write only and is always read as zero. Writing to this bit has no effect when a shift operation is pending (when SHPF = 1, in RTC_ICSR).
This function is intended to be used with SUBFS (see description below) in order to effectively add a fraction of a second to the clock in an atomic operation.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues>
                <name>ADD1SW</name>
                <enumeratedValue>
                  <name>Add1</name>
                  <description>Add one second to the clock/calendar</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register derivedFrom="TR">
          <name>TSTR</name>
          <displayName>TSTR</displayName>
          <description>RTC timestamp time register</description>
          <addressOffset>0x30</addressOffset>
        </register>
        <register derivedFrom="DR">
          <name>TSDR</name>
          <displayName>TSDR</displayName>
          <description>RTC timestamp date register</description>
          <addressOffset>0x34</addressOffset>
        </register>
        <register derivedFrom="SSR">
          <name>TSSSR</name>
          <displayName>TSSSR</displayName>
          <description>RTC timestamp subsecond 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>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SU</name>
              <description>Second units in BCD format</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>7</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MSK1</name>
              <description>Alarm seconds mask</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>MNU</name>
              <description>Minute units in BCD format</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>7</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MSK2</name>
              <description>Alarm minutes mask</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="MSK1"/>
            </field>
            <field>
              <name>HU</name>
              <description>Hour units in BCD format</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>HT</name>
              <description>Hour tens in BCD format</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>3</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>PM</name>
              <description>AM/PM notation</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>MSK3</name>
              <description>Alarm hours mask</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="MSK1"/>
            </field>
            <field>
              <name>DU</name>
              <description>Date units or day in BCD format</description>
              <bitOffset>24</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DT</name>
              <description>Date tens in BCD format</description>
              <bitOffset>28</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>3</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>WDSEL</name>
              <description>Week day selection</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>MSK4</name>
              <description>Alarm date mask</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="MSK1"/>
            </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>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SS</name>
              <description>Subseconds value
This value is compared with the contents of the synchronous prescaler counter to determine if alarm A is to be activated. Only bits 0 up MASKSS-1 are compared.
This field is the mirror of SS[14:0] in the RTC_ALRMABINR, and so can also be read or written through RTC_ALRMABINR.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>15</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>32767</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MASKSS</name>
              <description>Mask the most-significant bits starting at this bit
...
From 32 to 63: All 32 SS bits are compared and must match to activate alarm.
Note: In BCD mode (BIN=00) the overflow bits of the synchronous counter (bits 31:15) are never compared. These bits can be different from 0 only after a shift operation.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SSCLR</name>
              <description>Clear synchronous counter on alarm (Binary mode only)
Note: SSCLR must be kept to 0 when BCD or mixed mode is used (BIN = 00, 10 or 11).</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>RTC status register</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <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>
              <access>read-only</access>
              <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>Wakeup timer flag
This flag is set by hardware when the wakeup auto-reload counter reaches 0.
If WUTOCLR[15:0] is different from 0x0000, WUTF is cleared by hardware when the wakeup
auto-reload counter reaches WUTOCLR value.
If WUTOCLR[15:0] is 0x0000, WUTF must be cleared by software.
This flag must be cleared by software at least 1.5 RTCCLK periods before WUTF is set to 1 again.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>Timestamp flag
This flag is set by hardware when a timestamp event occurs.
If ITSF flag is set, TSF must be cleared together with ITSF.
Note: TSF is not set if TAMPTS = 1 and the tamper flag is read during the 3 ck_apre cycles following tamper event. Refer to Timestamp on tamper event for more details.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>Timestamp overflow flag
This flag is set by hardware when a timestamp event occurs while TSF is already set.
It is recommended to check and then clear TSOVF only after clearing the TSF bit. Otherwise, an overflow might not be noticed if a timestamp event occurs immediately before the TSF bit is cleared.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>Internal timestamp flag
This flag is set by hardware when a timestamp on the internal event occurs.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>
            <field>
              <name>SSRUF</name>
              <description>SSR underflow flag
This flag is set by hardware when the SSR rolls under 0. SSRUF is not set when SSCLR=1.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MISR</name>
          <displayName>MISR</displayName>
          <description>RTC masked interrupt status register</description>
          <addressOffset>0x54</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <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>
              <access>read-only</access>
              <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>Wakeup timer masked flag
This flag is set by hardware when the wakeup timer interrupt occurs.
This flag must be cleared by software at least 1.5 RTCCLK periods before WUTF is set to 1 again.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>Timestamp masked flag
This flag is set by hardware when a timestamp interrupt occurs.
If ITSF flag is set, TSF must be cleared together with ITSF.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>Timestamp overflow masked flag
This flag is set by hardware when a timestamp interrupt occurs while TSMF is already set.
It is recommended to check and then clear TSOVF only after clearing the TSF bit. Otherwise, an overflow might not be noticed if a timestamp event occurs immediately before the TSF bit is cleared.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>Internal timestamp masked flag
This flag is set by hardware when a timestamp on the internal event occurs and timestampinterrupt is raised.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>
            <field>
              <name>SSRUMF</name>
              <description>SSR underflow masked flag
This flag is set by hardware when the SSR underflow interrupt occurs.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SCR</name>
          <displayName>SCR</displayName>
          <description>RTC status clear register</description>
          <addressOffset>0x5C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CALRAF</name>
              <description>Clear alarm A flag
Writing 1 in this bit clears the ALRAF bit in the RTC_SR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues>
                <name>CALRAF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear interrupt flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CALRBF</name>
              <description>Clear alarm B flag
Writing 1 in this bit clears the ALRBF bit in the RTC_SR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="CALRAF"/>
            </field>
            <field>
              <name>CWUTF</name>
              <description>Clear wakeup timer flag
Writing 1 in this bit clears the WUTF bit in the RTC_SR register.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="CALRAF"/>
            </field>
            <field>
              <name>CTSF</name>
              <description>Clear timestamp flag
Writing 1 in this bit clears the TSF bit in the RTC_SR register.
If ITSF flag is set, TSF must be cleared together with ITSF by setting CRSF and CITSF.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="CALRAF"/>
            </field>
            <field>
              <name>CTSOVF</name>
              <description>Clear timestamp overflow flag
Writing 1 in this bit clears the TSOVF bit in the RTC_SR register.
It is recommended to check and then clear TSOVF only after clearing the TSF bit. Otherwise, an overflow might not be noticed if a timestamp event occurs immediately before the TSF bit is cleared.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="CALRAF"/>
            </field>
            <field>
              <name>CITSF</name>
              <description>Clear internal timestamp flag
Writing 1 in this bit clears the ITSF bit in the RTC_SR register.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="CALRAF"/>
            </field>
            <field>
              <name>CSSRUF</name>
              <description>Clear SSR underflow flag
Writing 1 in this bit clears the SSRUF in the RTC_SR register.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="CALRAF"/>
            </field>
          </fields>
        </register>
        <register>
          <dim>2</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>A,B</dimIndex>
          <name>ALR%sBINR</name>
          <displayName>ALR%sBINR</displayName>
          <description>Alarm %s binary mode register</description>
          <addressOffset>0x70</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SS</name>
              <description>Synchronous counter alarm value in Binary mode
This value is compared with the contents of the synchronous counter to determine if Alarm A is to be activated. Only bits 0 up MASKSS-1 are compared.
SS[14:0] is the mirror of SS[14:0] in the RTC_ALRMASSRR, and so can also be read or written through RTC_ALRMASSR.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>SAES</name>
      <description>Secure AES coprocessor</description>
      <groupName>SAES</groupName>
      <baseAddress>0x48021000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>SAES</name>
        <description>SAES global interrupt</description>
        <value>33</value>
      </interrupt>
      <interrupt>
        <name>AES</name>
        <description>AES global interrupt</description>
        <value>34</value>
      </interrupt>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>SAES control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>EN</name>
              <description>SAES enable
This bit enables/disables the SAES peripheral:
At any moment, clearing then setting the bit re-initializes the SAES peripheral.
This bit is automatically cleared by hardware upon the completion of the key preparation (Mode 2) and upon the completion of GCM/GMAC/CCM initial phase.
The bit cannot be set as long as KEYVALID = 0 nor along with the following settings: KMOD[1:0] = 01 + CHMOD[2:0] = 011 and KMOD[1:0] = 01 + CHMOD[2:0] = 010 + MODE[1:0] = 00.
Note: With KMOD[1:0] other than 00, use the IPRST bit rather than the bit EN.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DATATYPE</name>
              <description>Data type selection
This bitfield defines the format of data written in the SAES_DINR register or read from the SAES_DOUTR register, through selecting the mode of data swapping:
For more details, refer to Section 32.4.15: SAES data registers and data swapping.
Attempts to write the bitfield are ignored when the BUSY flag of SAES_SR register is set, as well as when the EN bit of the SAES_CR register is set before the write access and it is not cleared by that write access.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MODE</name>
              <description>SAES operating mode
This bitfield selects the SAES operating mode:
Attempts to write the bitfield are ignored when the BUSY flag of SAES_SR register is set, as well as when the EN bit of the SAES_CR register is set before the write access and it is not cleared by that write access.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHMOD</name>
              <description>CHMOD[1:0]: Chaining mode selection
This bitfield selects the AES chaining mode:
others: Reserved
Attempts to write the bitfield are ignored when the BUSY flag of SAES_SR register is set, as well as when the EN bit of the SAES_CR register is set before the write access and it is not cleared by that write access.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DMAINEN</name>
              <description>DMA input enable
This bit enables/disables data transferring with DMA, in the input phase:
When the bit is set, DMA requests are automatically generated by SAES during the input data phase. This feature is only effective when Mode 1 or Mode 3 is selected through the MODE[1:0] bitfield. It is not effective for Mode 2 (key derivation).</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DMAOUTEN</name>
              <description>DMA output enable
This bit enables/disables data transferring with DMA, in the output phase:
When the bit is set, DMA requests are automatically generated by SAES during the output data phase. This feature is only effective when Mode 1 or Mode 3 is selected through the MODE[1:0] bitfield. It is not effective for Mode 2 (key derivation).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GCMPH</name>
              <description>GCM or CCM phase selection
This bitfield selects the phase of GCM, GMAC or CCM algorithm:
The bitfield has no effect if other than GCM, GMAC or CCM algorithms are selected (through the ALGOMODE bitfield).</description>
              <bitOffset>13</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHMOD_1</name>
              <description>CHMOD[2]</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>KEYSIZE</name>
              <description>Key size selection
This bitfield defines the length of the key used in the SAES cryptographic core, in bits:
When KMOD[1:0] = 01 or 10 KEYSIZE also defines the length of the key to encrypt or decrypt.
Attempts to write the bit are ignored when the BUSY flag of SAES_SR register is set, as well as when the EN bit of the SAES_CR register is set before the write access and it is not cleared by that write access.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NPBLB</name>
              <description>Number of padding bytes in last block
The bitfield sets the number of padding bytes in last block of payload:
...</description>
              <bitOffset>20</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>KMOD</name>
              <description>Key mode selection</description>
              <bitOffset>24</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>KSHAREID</name>
              <description>Key share identification
This bitfield defines, at the end of a decryption process with KMOD[1:0] = 10 (shared key), which target can read the SAES key registers using a dedicated hardware bus.
Others: Reserved
Attempts to write the bitfield are ignored when the BUSY flag of SAES_SR register is set, as well as when the EN bit of the SAES_CR register is set before the write access and it is not cleared by that write access.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>KEYSEL</name>
              <description>Key selection
The bitfield defines the source of the key information to use in the AES cryptographic core.
Others: Reserved (if used, unfreeze SAES with IPRST)
When KEYSEL is different from zero, selected key value is available in key registers when BUSY bit is cleared and KEYVALID is set in the SAES_SR register. Otherwise, the key error flag KEIF is set. Repeated writing of KEYSEL[2:0] with the same non-zero value only triggers the loading of DHUK or BHK if KEYVALID = 0.
When the application software changes the key selection by writing the KEYSEL[2:0] bitfield, the key registers are immediately erased and the KEYVALID flag cleared.
At the end of the decryption process, if KMOD[1:0] is other than zero, KEYSEL[2:0] is cleared.
Attempts to write the bitfield are ignored when the BUSY flag of SAES_SR register is set, as well as when the EN bit of the SAES_CR register is set before the write access and it is not cleared by that write access.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IPRST</name>
              <description>SAES peripheral software reset
Setting the bit resets the SAES peripheral, putting all registers to their default values, except the IPRST bit itself and the SAES_DPACFG register. Hence, any key-relative data is lost. For this reason, it is recommended to set the bit before handing over the SAES to a less secure application.
The bit must be low while writing any configuration registers.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>SAES status register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CCF</name>
              <description>Computation completed flag
This bit mirrors the CCF bit of the SAES_ISR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RDERR</name>
              <description>Read error flag
This flag indicates the detection of an unexpected read operation from the SAES_DOUTR register (during computation or data input phase): 
The flag is set by hardware. It is cleared by software upon setting the RWEIF bit of the SAES_ICR register.
Upon the flag setting, an interrupt is generated if enabled through the RWEIE bit of the SAES_ICR register.
The flag setting has no impact on the SAES operation. Unexpected read returns zero.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>WRERR</name>
              <description>Write error
This flag indicates the detection of an unexpected write operation to the SAES_DINR register (during computation or data output phase): 
The flag is set by hardware. It is cleared by software upon setting the RWEIF bit of the SAES_ICR register.
Upon the flag setting, an interrupt is generated if enabled through the RWEIE bit of the SAES_ICR register.
The flag setting has no impact on the SAES operation. Unexpected write is ignored.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>BUSY</name>
              <description>Busy
This flag indicates whether SAES is idle or busy during GCM payload encryption phase:
The flag is also set upon SAES initialization, upon fetching random number from the RNG, or upon transferring a shared key to a target peripheral.
When GCM encryption is selected, the flag must be at zero before selecting the GCM final phase.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>KEYVALID</name>
              <description>Key Valid flag
This bit is set by hardware when the amount of key information defined by KEYSIZE in SAES_CR has been loaded in SAES_KEYx key registers.
In normal mode when KEYSEL equals to zero, the application must write the key registers in the correct sequence, otherwise the KEIF flag of the SAES_ISR register is set and KEYVALID stays at zero.
When KEYSEL is different from zero the BUSY flag is automatically set by SAES. When key is loaded successfully, the BUSY flag is cleared and KEYVALID set. Upon an error, the KEIF flag of the SAES_ISR register is set, the BUSY flag cleared and KEYVALID kept at zero.
When the KEIF flag is set, the application must clear it through the SAES_ICR register, otherwise KEYVALID cannot be set. See the KEIF bit description for more details.
For more information on key loading, refer to Section 32.4.16: SAES key registers.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DINR</name>
          <displayName>DINR</displayName>
          <description>SAES data input register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DIN</name>
              <description>Input data word
A four-fold sequential write to this bitfield during the input phase results in writing a complete 128-bit block of input data to the SAES peripheral. From the first to the fourth write, the corresponding data weights are [127:96], [95:64], [63:32], and [31:0]. Upon each write, the data from the 32-bit input buffer are handled by the data swap block according to the DATATYPE[1:0] bitfield, then written into the AES core 128-bit input buffer.
The data signification of the input data block depends on the SAES operating mode:
- Mode 1 (encryption): plaintext
- Mode 2 (key derivation): the bitfield is not used (SAES_KEYRx registers used for input if KEYSEL = 0)
- Mode 3 (decryption): ciphertext
The data swap operation is described in Section 32.4.15: SAES data registers and data swapping on page 1755.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DOUTR</name>
          <displayName>DOUTR</displayName>
          <description>SAES data output register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DOUT</name>
              <description>Output data word
This read-only bitfield fetches a 32-bit output buffer. A four-fold sequential read of this bitfield, upon the computation completion (CCF set), virtually reads a complete 128-bit block of output data from the SAES peripheral. Before reaching the output buffer, the data produced by the AES core are handled by the data swap block according to the DATATYPE[1:0] bitfield.
Data weights from the first to the fourth read operation are: [127:96], [95:64], [63:32], and [31:0].
The data signification of the output data block depends on the SAES operating mode:
- Mode 1 (encryption): ciphertext
- Mode 2 (key derivation): the bitfield is not used
- Mode 3 (decryption): plaintext
The data swap operation is described in Section 32.4.15: SAES data registers and data swapping on page 1755.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>KEYR0</name>
          <displayName>KEYR0</displayName>
          <description>SAES key register 0</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>KEY</name>
              <description>Cryptographic key, bits [31:0]
This write-only bitfield contains the bits [31:0] of the AES encryption or decryption key, depending on the operating mode:
- In Mode 1 (encryption), Mode 2 (key derivation): the value to write into the bitfield is the encryption key.
- In Mode 3 (decryption): the value to write into the bitfield is the encryption key to be derived before being used for decryption.
The SAES_KEYRx registers may be written only when KEYSIZE value is correct and when the SAES peripheral is disabled (EN bit of the SAES_CR register cleared). A special writing sequence is also required, as described in KEYVALID bit of the SAES_SR register. Note that, if KEYSEL is different from 0 and KEYVALID = 0, the key is directly loaded to SAES_KEYRx registers (hence writes to key register is ignored and KEIF is set).
Refer to Section 32.4.16: SAES key registers on page 1758 for more details.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>KEYR1</name>
          <displayName>KEYR1</displayName>
          <description>SAES key register 1</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>KEY</name>
              <description>Cryptographic key, bits [63:32]
Refer to the SAES_KEYR0 register for description of the KEY[255:0] bitfield.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>KEYR2</name>
          <displayName>KEYR2</displayName>
          <description>SAES key register 2</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>KEY</name>
              <description>Cryptographic key, bits [95:64]
Refer to the SAES_KEYR0 register for description of the KEY[255:0] bitfield.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>KEYR3</name>
          <displayName>KEYR3</displayName>
          <description>SAES key register 3</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>KEY</name>
              <description>Cryptographic key, bits [127:96]
Refer to the SAES_KEYR0 register for description of the KEY[255:0] bitfield.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IVR0</name>
          <displayName>IVR0</displayName>
          <description>SAES initialization vector register 0</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IVI</name>
              <description>Initialization vector input, bits [31:0]
Refer to Section 32.4.17: SAES initialization vector registers on page 1760 for description of the IVI[127:0] bitfield.
The initialization vector is only used in chaining modes other than ECB.
The SAES_IVRx registers may be written only when the SAES peripheral is disabled</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IVR1</name>
          <displayName>IVR1</displayName>
          <description>SAES initialization vector register 1</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IVI</name>
              <description>Initialization vector input, bits [63:32]
Refer to the SAES_IVR0 register for description of the IVI[128:0] bitfield.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IVR2</name>
          <displayName>IVR2</displayName>
          <description>SAES initialization vector register 2</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IVI</name>
              <description>Initialization vector input, bits [95:64]
Refer to the SAES_IVR0 register for description of the IVI[128:0] bitfield.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IVR3</name>
          <displayName>IVR3</displayName>
          <description>SAES initialization vector register 3</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IVI</name>
              <description>Initialization vector input, bits [127:96]
Refer to the SAES_IVR0 register for description of the IVI[128:0] bitfield.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>KEYR4</name>
          <displayName>KEYR4</displayName>
          <description>SAES key register 4</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>KEY</name>
              <description>Cryptographic key, bits [159:128]
Refer to the SAES_KEYR0 register for description of the KEY[255:0] bitfield.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>KEYR5</name>
          <displayName>KEYR5</displayName>
          <description>SAES key register 5</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>KEY</name>
              <description>Cryptographic key, bits [191:160]
Refer to the SAES_KEYR0 register for description of the KEY[255:0] bitfield.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>KEYR6</name>
          <displayName>KEYR6</displayName>
          <description>SAES key register 6</description>
          <addressOffset>0x38</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>KEY</name>
              <description>Cryptographic key, bits [223:192]
Refer to the SAES_KEYR0 register for description of the KEY[255:0] bitfield.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>KEYR7</name>
          <displayName>KEYR7</displayName>
          <description>SAES key register 7</description>
          <addressOffset>0x3C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>KEY</name>
              <description>Cryptographic key, bits [255:224]
Refer to the SAES_KEYR0 register for description of the KEY[255:0] bitfield.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SUSP0R</name>
          <displayName>SUSP0R</displayName>
          <description>SAES suspend registers</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SUSP</name>
              <description>SAES suspend
Upon suspend operation, this bitfield of the corresponding SAES_SUSPxR register takes the value of one of internal SAES registers.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SUSP1R</name>
          <displayName>SUSP1R</displayName>
          <description>SAES suspend registers</description>
          <addressOffset>0x44</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SUSP</name>
              <description>SAES suspend
Upon suspend operation, this bitfield of the corresponding SAES_SUSPxR register takes the value of one of internal SAES registers.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SUSP2R</name>
          <displayName>SUSP2R</displayName>
          <description>SAES suspend registers</description>
          <addressOffset>0x48</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SUSP</name>
              <description>SAES suspend
Upon suspend operation, this bitfield of the corresponding SAES_SUSPxR register takes the value of one of internal SAES registers.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SUSP3R</name>
          <displayName>SUSP3R</displayName>
          <description>SAES suspend registers</description>
          <addressOffset>0x4C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SUSP</name>
              <description>SAES suspend
Upon suspend operation, this bitfield of the corresponding SAES_SUSPxR register takes the value of one of internal SAES registers.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SUSP4R</name>
          <displayName>SUSP4R</displayName>
          <description>SAES suspend registers</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SUSP</name>
              <description>SAES suspend
Upon suspend operation, this bitfield of the corresponding SAES_SUSPxR register takes the value of one of internal SAES registers.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SUSP5R</name>
          <displayName>SUSP5R</displayName>
          <description>SAES suspend registers</description>
          <addressOffset>0x54</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SUSP</name>
              <description>SAES suspend
Upon suspend operation, this bitfield of the corresponding SAES_SUSPxR register takes the value of one of internal SAES registers.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SUSP6R</name>
          <displayName>SUSP6R</displayName>
          <description>SAES suspend registers</description>
          <addressOffset>0x58</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SUSP</name>
              <description>SAES suspend
Upon suspend operation, this bitfield of the corresponding SAES_SUSPxR register takes the value of one of internal SAES registers.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SUSP7R</name>
          <displayName>SUSP7R</displayName>
          <description>SAES suspend registers</description>
          <addressOffset>0x5C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SUSP</name>
              <description>SAES suspend
Upon suspend operation, this bitfield of the corresponding SAES_SUSPxR register takes the value of one of internal SAES registers.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IER</name>
          <displayName>IER</displayName>
          <description>SAES interrupt enable register</description>
          <addressOffset>0x300</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CCFIE</name>
              <description>Computation complete flag interrupt enable
This bit enables or disables (masks) the SAES interrupt generation when CCF (computation complete flag) is set.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RWEIE</name>
              <description>Read or write error interrupt enable
This bit enables or disables (masks) the SAES interrupt generation when RWEIF (read and/or write error flag) is set.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>KEIE</name>
              <description>Key error interrupt enable
This bit enables or disables (masks) the SAES interrupt generation when KEIF (key error flag) is set.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RNGEIE</name>
              <description>RNG error interrupt enable
This bit enables or disables (masks) the SAES interrupt generation when RNGEIF (RNG error flag) is set.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ISR</name>
          <displayName>ISR</displayName>
          <description>SAES interrupt status register</description>
          <addressOffset>0x304</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CCF</name>
              <description>Computation complete flag
This flag indicates whether the computation is completed:
The flag is set by hardware upon the completion of the computation. It is cleared by software, upon setting the CCF bit of the SAES_ICR register.
Upon the flag setting, an interrupt is generated if enabled through the CCFIE bit of the SAES_IER register.
The flag is significant only when the DMAOUTEN bit is 0. It may stay high when DMA_EN is 1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RWEIF</name>
              <description>Read or write error interrupt flag
This read-only bit is set by hardware when a RDERR or a WRERR error flag is set in the SAES_SR register.
RWEIF bit is cleared when application sets the corresponding bit of SAES_ICR register. An interrupt is generated if the RWEIE bit has been previously set in the SAES_IER register.
This flags has no meaning when key derivation mode is selected.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>KEIF</name>
              <description>Key error interrupt flag
This read-only bit is set by hardware when key information failed to load into key registers or key register usage is forbidden.
Setting the corresponding bit of the SAES_ICR register clears the KEIF and generates interrupt if the KEIE bit of the SAES_IER register is set.
KEIF is triggered upon any of the following errors:
SAES fails to load the DHUK (KEYSEL = 001 or 100).
SAES fails to load the BHK (KEYSEL = 010 or 100) respecting the correct order.
SAES fails to load the AHK (KEYSEL = 011 or 101).
CRYP fails to load the key shared by SAES peripheral (KMOD = 10).
SAES_KEYRx register write does not respect the correct order. (For KEYSIZE = 0, SAES_KEYR0 then SAES_KEYR1 then SAES_KEYR2 then SAES_KEYR3 register, or reverse. For KEYSIZE = 1, SAES_KEYR0 then SAES_KEYR1 then SAES_KEYR2 then SAES_KEYR3 then SAES_KEYR4 then SAES_KEYR5 then SAES_KEYR6 then SAES_KEYR7, or reverse).
KEIF must be cleared by the application software, otherwise KEYVALID cannot be set.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RNGEIF</name>
              <description>RNG error interrupt flag
This read-only bit is set by hardware when an error is detected on RNG bus interface (e.g. bad entropy).
RNGEIE bit is cleared when application sets the corresponding bit of SAES_ICR register. An interrupt is generated if the RNGEIE bit has been previously set in the SAES_IER register. Clearing this bit triggers the reload of a new random number from RNG peripheral.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ICR</name>
          <displayName>ICR</displayName>
          <description>SAES interrupt clear register</description>
          <addressOffset>0x308</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CCF</name>
              <description>Computation complete flag clear
Setting this bit clears the CCF status bit of the SAES_SR and SAES_ISR registers.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>RWEIF</name>
              <description>Read or write error interrupt flag clear
Setting this bit clears the RWEIF status bit of the SAES_ISR register, and both RDERR and WRERR flags in the SAES_SR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>KEIF</name>
              <description>Key error interrupt flag clear
Setting this bit clears the KEIF status bit of the SAES_ISR register.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>RNGEIF</name>
              <description>RNG error interrupt flag clear
Application must set this bit to clear the RNGEIF status bit in SAES_ISR register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>SAI1</name>
      <description>Serial audio interface</description>
      <groupName>SAI</groupName>
      <baseAddress>0x42005800</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>SAI1_A</name>
        <description>SAI1 global interrupt A</description>
        <value>72</value>
      </interrupt>
      <interrupt>
        <name>SAI1_B</name>
        <description>SAI1 global interrupt B</description>
        <value>73</value>
      </interrupt>
      <registers>
        <register>
          <name>GCR</name>
          <displayName>GCR</displayName>
          <description>SAI global configuration register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SYNCIN</name>
              <description>Synchronization inputs
These bits are set and cleared by software.
Refer to Table 418: External synchronization selection (TinyShark, Beluga and STM32U5_Cobra2M and 4M, Viper, Mustang, Python) for information on how to program this field.
These bits must be set when both audio blocks (A and B) are disabled.
They are meaningful if one of the two audio blocks is defined to operate in synchronous mode with an external SAI (SYNCEN[1:0] = 10 in SAI_ACR1 or in SAI_BCR1 registers).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SYNCOUT</name>
              <description>Synchronization outputs
These bits are set and cleared by software.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ACR1</name>
          <displayName>ACR1</displayName>
          <description>SAI configuration register 1</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000040</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MODE</name>
              <description>SAIx audio block mode
These bits are set and cleared by software. They must be configured when SAIx audio block is disabled.
Note: When the audio block is configured in SPDIF mode, the master transmitter mode is forced (MODE[1:0] = 00).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PRTCFG</name>
              <description>Protocol configuration
These bits are set and cleared by software. These bits have to be configured when the audio block is disabled.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DS</name>
              <description>Data size
These bits are set and cleared by software. These bits are ignored when the SPDIF protocols are selected (bit PRTCFG[1:0]), because the frame and the data size are fixed in such case. When the companding mode is selected through COMP[1:0] bits, DS[1:0] are ignored since the data size is fixed to 8 bits by the algorithm.
These bits must be configured when the audio block is disabled.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSBFIRST</name>
              <description>Least significant bit first
This bit is set and cleared by software. It must be configured when the audio block is disabled. This bit has no meaning in AC97 audio protocol since AC97 data are always transferred with the MSB first. This bit has no meaning in SPDIF audio protocol since in SPDIF data are always transferred with LSB first.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CKSTR</name>
              <description>Clock strobing edge
This bit is set and cleared by software. It must be configured when the audio block is disabled. This bit has no meaning in SPDIF audio protocol.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SYNCEN</name>
              <description>Synchronization enable
These bits are set and cleared by software. They must be configured when the audio subblock is disabled.
Note: The audio subblock should be configured as asynchronous when SPDIF mode is enabled.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MONO</name>
              <description>Mono mode
This bit is set and cleared by software. It is meaningful only when the number of slots is equal to 2. When the mono mode is selected, slot 0 data are duplicated on slot 1 when the audio block operates as a transmitter. In reception mode, the slot1 is discarded and only the data received from slot 0 are stored. Refer to Section : Mono/stereo mode for more details.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OUTDRIV</name>
              <description>Output drive
This bit is set and cleared by software. 
Note: This bit has to be set before enabling the audio block and after the audio block configuration.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SAIEN</name>
              <description>Audio block enable
This bit is set by software. 
To switch off the audio block, the application software must program this bit to 0 and poll the bit till it reads back 0, meaning that the block is completely disabled. Before setting this bit to 1, check that it is set to 0, otherwise the enable command is not taken into account. 
This bit enables to control the state of the SAI audio block. If it is disabled when an audio frame transfer is ongoing, the ongoing transfer completes and the cell is fully disabled at the end of this audio frame transfer.
Note: When the SAI block (A or B) is configured in master mode, the clock must be present on the SAI block input before setting SAIEN bit.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DMAEN</name>
              <description>DMA enable
This bit is set and cleared by software.
Note: Since the audio block defaults to operate as a transmitter after reset, the MODE[1:0] bits must be configured before setting DMAEN to avoid a DMA request in receiver mode.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NODIV</name>
              <description>No divider
This bit is set and cleared by software.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCKDIV</name>
              <description>Master clock divider
These bits are set and cleared by software.
Otherwise, The master clock frequency is calculated according to the formula given in Section 55.4.8: SAI clock generator.
These bits have no meaning when the audio block is slave.
They have to be configured when the audio block is disabled.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OSR</name>
              <description>Oversampling ratio for master clock
This bit is meaningful only when NODIV bit is set to 0.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCKEN</name>
              <description>Master clock generation enable</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ACR2</name>
          <displayName>ACR2</displayName>
          <description>SAI configuration register 2</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FTH</name>
              <description>FIFO threshold. 
This bit is set and cleared by software.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FFLUSH</name>
              <description>FIFO flush.
This bit is set by software. It is always read as 0. This bit should be configured when the SAI is disabled.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>TRIS</name>
              <description>Tristate management on data line. 
This bit is set and cleared by software. It is meaningful only if the audio block is configured as a transmitter. This bit is not used when the audio block is configured in SPDIF mode. It should be configured when SAI is disabled.
Refer to Section : Output data line management on an inactive slot for more details.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MUTE</name>
              <description>Mute.
This bit is set and cleared by software. It is meaningful only when the audio block operates as a transmitter. The MUTE value is linked to value of MUTEVAL if the number of slots is lower or equal to 2, or equal to 0 if it is greater than 2.
Refer to Section : Mute mode for more details.
Note: This bit is meaningless and should not be used for SPDIF audio blocks.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MUTEVAL</name>
              <description>Mute value.
This bit is set and cleared by software.It must be written before enabling the audio block: SAIEN. This bit is meaningful only when the audio block operates as a transmitter, the number of slots is lower or equal to 2 and the MUTE bit is set.
If more slots are declared, the bit value sent during the transmission in mute mode is equal to 0, whatever the value of MUTEVAL.
if the number of slot is lower or equal to 2 and MUTEVAL = 1, the MUTE value transmitted for each slot is the one sent during the previous frame.
Refer to Section : Mute mode for more details.
Note: This bit is meaningless and should not be used for SPDIF audio blocks.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MUTECNT</name>
              <description>Mute counter.
These bits are set and cleared by software. They are used only in reception mode. 
The value set in these bits is compared to the number of consecutive mute frames detected in reception. When the number of mute frames is equal to this value, the flag MUTEDET is set and an interrupt is generated if bit MUTEDETIE is set.
Refer to Section : Mute mode for more details.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CPL</name>
              <description>Complement bit.
This bit is set and cleared by software. 
It defines the type of complement to be used for companding mode 
Note: This bit has effect only when the companding mode is  -Law algorithm or A-Law algorithm.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COMP</name>
              <description>Companding mode. 
These bits are set and cleared by software. The  -Law and the A-Law log are a part of the CCITT G.711 recommendation, the type of complement that is used depends on CPL bit.
The data expansion or data compression are determined by the state of bit MODE[0]. 
The data compression is applied if the audio block is configured as a transmitter.
The data expansion is automatically applied when the audio block is configured as a receiver.
Refer to Section : Companding mode for more details.
Note: Companding mode is applicable only when Free protocol mode is selected.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>AFRCR</name>
          <displayName>AFRCR</displayName>
          <description>SAI frame configuration register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000007</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FRL</name>
              <description>Frame length. 
These bits are set and cleared by software. They define the audio frame length expressed in number of SCK clock cycles: the number of bits in the frame is equal to FRL[7:0] + 1. 
The minimum number of bits to transfer in an audio frame must be equal to 8, otherwise the audio block behaves in an unexpected way. This is the case when the data size is 8 bits and only one slot 0 is defined in NBSLOT[4:0] of SAI_xSLOTR register (NBSLOT[3:0] = 0000).
In master mode, if the master clock (available on MCLK_x pin) is used, the frame length should be aligned with a number equal to a power of 2, ranging from 8 to 256. When the master clock is not used (NODIV = 1), it is recommended to program the frame length to an value ranging from 8 to 256.
These bits are meaningless and are not used in AC97 or SPDIF audio block configuration. They must be configured when the audio block is disabled.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FSALL</name>
              <description>Frame synchronization active level length. 
These bits are set and cleared by software. They specify the length in number of bit clock 
(SCK) + 1 (FSALL[6:0] + 1) of the active level of the FS signal in the audio frame 
These bits are meaningless and are not used in AC97 or SPDIF audio block configuration.
They must be configured when the audio block is disabled.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FSDEF</name>
              <description>Frame synchronization definition.
This bit is set and cleared by software.
When the bit is set, the number of slots defined in the SAI_xSLOTR register has to be even. It means that half of this number of slots are dedicated to the left channel and the other slots for the right channel (e.g: this bit has to be set for I2S or MSB/LSB-justified protocols...). 
This bit is meaningless and is not used in AC97 or SPDIF audio block configuration. It must be configured when the audio block is disabled.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FSPOL</name>
              <description>Frame synchronization polarity. 
This bit is set and cleared by software. It is used to configure the level of the start of frame on the FS signal. It is meaningless and is not used in AC97 or SPDIF audio block configuration.
This bit must be configured when the audio block is disabled.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FSOFF</name>
              <description>Frame synchronization offset. 
This bit is set and cleared by software. It is meaningless and is not used in AC97 or SPDIF audio block configuration. This bit must be configured when the audio block is disabled.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ASLOTR</name>
          <displayName>ASLOTR</displayName>
          <description>SAI slot register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FBOFF</name>
              <description>First bit offset 
These bits are set and cleared by software.
The value set in this bitfield defines the position of the first data transfer bit in the slot. It represents an offset value. In transmission mode, the bits outside the data field are forced to 0. In reception mode, the extra received bits are discarded.
These bits must be set when the audio block is disabled.
They are ignored in AC97 or SPDIF mode.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SLOTSZ</name>
              <description>Slot size
This bits is set and cleared by software. 
The slot size must be higher or equal to the data size. If this condition is not respected, the behavior of the SAI is undetermined. 
Refer to Output data line management on an inactive slot for information on how to drive SD line. 
These bits must be set when the audio block is disabled.
They are ignored in AC97 or SPDIF mode.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NBSLOT</name>
              <description>Number of slots in an audio frame. 
These bits are set and cleared by software.
The value set in this bitfield represents the number of slots + 1 in the audio frame (including the number of inactive slots). The maximum number of slots is 16.
The number of slots should be even if FSDEF bit in the SAI_xFRCR register is set.
The number of slots must be configured when the audio block is disabled.
They are ignored in AC97 or SPDIF mode.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SLOTEN</name>
              <description>Slot enable. 
These bits are set and cleared by software.
Each SLOTEN bit corresponds to a slot position from 0 to 15 (maximum 16 slots).
The slot must be enabled when the audio block is disabled.
They are ignored in AC97 or SPDIF mode.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>AIM</name>
          <displayName>AIM</displayName>
          <description>SAI interrupt mask register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OVRUDRIE</name>
              <description>Overrun/underrun interrupt enable. 
This bit is set and cleared by software.
When this bit is set, an interrupt is generated if the OVRUDR bit in the SAI_xSR register is set.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MUTEDETIE</name>
              <description>Mute detection interrupt enable. 
This bit is set and cleared by software.
When this bit is set, an interrupt is generated if the MUTEDET bit in the SAI_xSR register is set.
This bit has a meaning only if the audio block is configured in receiver mode.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WCKCFGIE</name>
              <description>Wrong clock configuration interrupt enable.
This bit is set and cleared by software.
This bit is taken into account only if the audio block is configured as a master (MODE[1] = 0) and NODIV = 0.
It generates an interrupt if the WCKCFG flag in the SAI_xSR register is set.
Note: This bit is used only in Free protocol mode and is meaningless in other modes.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FREQIE</name>
              <description>FIFO request interrupt enable.
This bit is set and cleared by software.
When this bit is set, an interrupt is generated if the FREQ bit in the SAI_xSR register is set.
Since the audio block defaults to operate as a transmitter after reset, the MODE bit must be configured before setting FREQIE to avoid a parasitic interrupt in receiver mode,</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNRDYIE</name>
              <description>Codec not ready interrupt enable (AC97). 
This bit is set and cleared by software.
When the interrupt is enabled, the audio block detects in the slot 0 (tag0) of the AC97 frame if the Codec connected to this line is ready or not. If it is not ready, the CNRDY flag in the SAI_xSR register is set and an interrupt is generated.
This bit has a meaning only if the AC97 mode is selected through PRTCFG[1:0] bits and the audio block is operates as a receiver.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AFSDETIE</name>
              <description>Anticipated frame synchronization detection interrupt enable.
This bit is set and cleared by software.
When this bit is set, an interrupt is generated if the AFSDET bit in the SAI_xSR register is set.
This bit is meaningless in AC97, SPDIF mode or when the audio block operates as a master.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LFSDETIE</name>
              <description>Late frame synchronization detection interrupt enable.
This bit is set and cleared by software.
When this bit is set, an interrupt is generated if the LFSDET bit is set in the SAI_xSR register.
This bit is meaningless in AC97, SPDIF mode or when the audio block operates as a master.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ASR</name>
          <displayName>ASR</displayName>
          <description>SAI status register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000008</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OVRUDR</name>
              <description>Overrun / underrun.
This bit is read only.
The overrun and underrun conditions can occur only when the audio block is configured as a receiver and a transmitter, respectively.
It can generate an interrupt if OVRUDRIE bit is set in SAI_xIM register.
This flag is cleared when the software sets COVRUDR bit in SAI_xCLRFR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>MUTEDET</name>
              <description>Mute detection.
This bit is read only.
This flag is set if consecutive 0 values are received in each slot of a given audio frame and for a consecutive number of audio frames (set in the MUTECNT bit in the SAI_xCR2 register).
It can generate an interrupt if MUTEDETIE bit is set in SAI_xIM register.
This flag is cleared when the software sets bit CMUTEDET in the SAI_xCLRFR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>WCKCFG</name>
              <description>Wrong clock configuration flag. 
This bit is read only. 
This bit is used only when the audio block operates in master mode (MODE[1] = 0) and NODIV = 0. 
It can generate an interrupt if WCKCFGIE bit is set in SAI_xIM register.
This flag is cleared when the software sets CWCKCFG bit in SAI_xCLRFR register.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>FREQ</name>
              <description>FIFO request. 
This bit is read only.
The request depends on the audio block configuration:
If the block is configured in transmission mode, the FIFO request is related to a write request operation in the SAI_xDR. 
If the block configured in reception, the FIFO request related to a read request operation from the SAI_xDR.
This flag can generate an interrupt if FREQIE bit is set in SAI_xIM register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CNRDY</name>
              <description>Codec not ready. 
This bit is read only. 
This bit is used only when the AC97 audio protocol is selected in the SAI_xCR1 register and configured in receiver mode.
It can generate an interrupt if CNRDYIE bit is set in SAI_xIM register.
This flag is cleared when the software sets CCNRDY bit in SAI_xCLRFR register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>AFSDET</name>
              <description>Anticipated frame synchronization detection.
This bit is read only.
This flag can be set only if the audio block is configured in slave mode.
It is not used in AC97 or SPDIF mode.
It can generate an interrupt if AFSDETIE bit is set in SAI_xIM register.
This flag is cleared when the software sets CAFSDET bit in SAI_xCLRFR register.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>LFSDET</name>
              <description>Late frame synchronization detection.
This bit is read only.
This flag can be set only if the audio block is configured in slave mode.
It is not used in AC97 or SPDIF mode.
It can generate an interrupt if LFSDETIE bit is set in the SAI_xIM register.
This flag is cleared when the software sets bit CLFSDET in SAI_xCLRFR register</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>FLVL</name>
              <description>FIFO level threshold. 
This bit is read only. The FIFO level threshold flag is managed only by hardware and its setting depends on SAI block configuration (transmitter or receiver mode). 
Others: Reserved</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ACLRFR</name>
          <displayName>ACLRFR</displayName>
          <description>SAI clear flag register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>COVRUDR</name>
              <description>Clear overrun / underrun.
This bit is write only.
Programming this bit to 1 clears the OVRUDR flag in the SAI_xSR register.
Reading this bit always returns the value 0.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CMUTEDET</name>
              <description>Mute detection flag. 
This bit is write only.
Programming this bit to 1 clears the MUTEDET flag in the SAI_xSR register.
Reading this bit always returns the value 0.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CWCKCFG</name>
              <description>Clear wrong clock configuration flag. 
This bit is write only.
Programming this bit to 1 clears the WCKCFG flag in the SAI_xSR register.
This bit is used only when the audio block is set as master (MODE[1] = 0) and NODIV = 0 in the SAI_xCR1 register.
Reading this bit always returns the value 0.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CCNRDY</name>
              <description>Clear Codec not ready flag. 
This bit is write only.
Programming this bit to 1 clears the CNRDY flag in the SAI_xSR register.
This bit is used only when the AC97 audio protocol is selected in the SAI_xCR1 register.
Reading this bit always returns the value 0.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CAFSDET</name>
              <description>Clear anticipated frame synchronization detection flag. 
This bit is write only.
Programming this bit to 1 clears the AFSDET flag in the SAI_xSR register.
It is not used in AC97 or SPDIF mode.
Reading this bit always returns the value 0.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CLFSDET</name>
              <description>Clear late frame synchronization detection flag. 
This bit is write only.
Programming this bit to 1 clears the LFSDET flag in the SAI_xSR register.
This bit is not used in AC97 or SPDIF mode
Reading this bit always returns the value 0.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ADR</name>
          <displayName>ADR</displayName>
          <description>SAI data register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DATA</name>
              <description>Data 
A write to this register loads the FIFO provided the FIFO is not full.
A read from this register empties the FIFO if the FIFO is not empty.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>BCR1</name>
          <displayName>BCR1</displayName>
          <description>SAI configuration register 1</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000040</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MODE</name>
              <description>SAIx audio block mode
These bits are set and cleared by software. They must be configured when SAIx audio block is disabled.
Note: When the audio block is configured in SPDIF mode, the master transmitter mode is forced (MODE[1:0] = 00). In Master transmitter mode, the audio block starts generating the FS and the clocks immediately.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PRTCFG</name>
              <description>Protocol configuration
These bits are set and cleared by software. These bits have to be configured when the audio block is disabled.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DS</name>
              <description>Data size
These bits are set and cleared by software. These bits are ignored when the SPDIF protocols are selected (bit PRTCFG[1:0]), because the frame and the data size are fixed in such case. When the companding mode is selected through COMP[1:0] bits, DS[1:0] are ignored since the data size is fixed to 8 bits by the algorithm.
These bits must be configured when the audio block is disabled.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LSBFIRST</name>
              <description>Least significant bit first
This bit is set and cleared by software. It must be configured when the audio block is disabled. This bit has no meaning in AC97 audio protocol since AC97 data are always transferred with the MSB first. This bit has no meaning in SPDIF audio protocol since in SPDIF data are always transferred with LSB first.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CKSTR</name>
              <description>Clock strobing edge
This bit is set and cleared by software. It must be configured when the audio block is disabled. This bit has no meaning in SPDIF audio protocol.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SYNCEN</name>
              <description>Synchronization enable
These bits are set and cleared by software. They must be configured when the audio subblock is disabled.
Note: The audio subblock should be configured as asynchronous when SPDIF mode is enabled.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MONO</name>
              <description>Mono mode
This bit is set and cleared by software. It is meaningful only when the number of slots is equal to 2. When the mono mode is selected, slot 0 data are duplicated on slot 1 when the audio block operates as a transmitter. In reception mode, the slot1 is discarded and only the data received from slot 0 are stored. Refer to Section : Mono/stereo mode for more details.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OUTDRIV</name>
              <description>Output drive
This bit is set and cleared by software. 
Note: This bit has to be set before enabling the audio block and after the audio block configuration.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SAIEN</name>
              <description>Audio block enable
This bit is set by software. 
To switch off the audio block, the application software must program this bit to 0 and poll the bit till it reads back 0, meaning that the block is completely disabled. Before setting this bit to 1, check that it is set to 0, otherwise the enable command is not taken into account. 
This bit enables to control the state of the SAI audio block. If it is disabled when an audio frame transfer is ongoing, the ongoing transfer completes and the cell is fully disabled at the end of this audio frame transfer.
Note: When the SAI block (A or B) is configured in master mode, the clock must be present on the SAI block input before setting SAIEN bit.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DMAEN</name>
              <description>DMA enable
This bit is set and cleared by software.
Note: Since the audio block defaults to operate as a transmitter after reset, the MODE[1:0] bits must be configured before setting DMAEN to avoid a DMA request in receiver mode.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NODIV</name>
              <description>No divider
This bit is set and cleared by software.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCKDIV</name>
              <description>Master clock divider
These bits are set and cleared by software.
Otherwise, The master clock frequency is calculated according to the formula given in Section 55.4.8: SAI clock generator.
These bits have no meaning when the audio block is slave.
They have to be configured when the audio block is disabled.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OSR</name>
              <description>Oversampling ratio for master clock
This bit is meaningful only when NODIV bit is set to 0.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MCKEN</name>
              <description>Master clock generation enable</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>BCR2</name>
          <displayName>BCR2</displayName>
          <description>SAI configuration register 2</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FTH</name>
              <description>FIFO threshold. 
This bit is set and cleared by software.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FFLUSH</name>
              <description>FIFO flush.
This bit is set by software. It is always read as 0. This bit should be configured when the SAI is disabled.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>TRIS</name>
              <description>Tristate management on data line. 
This bit is set and cleared by software. It is meaningful only if the audio block is configured as a transmitter. This bit is not used when the audio block is configured in SPDIF mode. It should be configured when SAI is disabled.
Refer to Section : Output data line management on an inactive slot for more details.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MUTE</name>
              <description>Mute.
This bit is set and cleared by software. It is meaningful only when the audio block operates as a transmitter. The MUTE value is linked to value of MUTEVAL if the number of slots is lower or equal to 2, or equal to 0 if it is greater than 2.
Refer to Section : Mute mode for more details.
Note: This bit is meaningless and should not be used for SPDIF audio blocks.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MUTEVAL</name>
              <description>Mute value.
This bit is set and cleared by software.It must be written before enabling the audio block: SAIEN. This bit is meaningful only when the audio block operates as a transmitter, the number of slots is lower or equal to 2 and the MUTE bit is set.
If more slots are declared, the bit value sent during the transmission in mute mode is equal to 0, whatever the value of MUTEVAL.
if the number of slot is lower or equal to 2 and MUTEVAL = 1, the MUTE value transmitted for each slot is the one sent during the previous frame.
Refer to Section : Mute mode for more details.
Note: This bit is meaningless and should not be used for SPDIF audio blocks.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MUTECNT</name>
              <description>Mute counter.
These bits are set and cleared by software. They are used only in reception mode. 
The value set in these bits is compared to the number of consecutive mute frames detected in reception. When the number of mute frames is equal to this value, the flag MUTEDET is set and an interrupt is generated if bit MUTEDETIE is set.
Refer to Section : Mute mode for more details.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CPL</name>
              <description>Complement bit.
This bit is set and cleared by software. 
It defines the type of complement to be used for companding mode 
Note: This bit has effect only when the companding mode is  -Law algorithm or A-Law algorithm.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COMP</name>
              <description>Companding mode. 
These bits are set and cleared by software. The  -Law and the A-Law log are a part of the CCITT G.711 recommendation, the type of complement that is used depends on CPL bit.
The data expansion or data compression are determined by the state of bit MODE[0]. 
The data compression is applied if the audio block is configured as a transmitter.
The data expansion is automatically applied when the audio block is configured as a receiver.
Refer to Section : Companding mode for more details.
Note: Companding mode is applicable only when Free protocol mode is selected.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>BFRCR</name>
          <displayName>BFRCR</displayName>
          <description>SAI frame configuration register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000007</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FRL</name>
              <description>Frame length. 
These bits are set and cleared by software. They define the audio frame length expressed in number of SCK clock cycles: the number of bits in the frame is equal to FRL[7:0] + 1. 
The minimum number of bits to transfer in an audio frame must be equal to 8, otherwise the audio block behaves in an unexpected way. This is the case when the data size is 8 bits and only one slot 0 is defined in NBSLOT[4:0] of SAI_xSLOTR register (NBSLOT[3:0] = 0000).
In master mode, if the master clock (available on MCLK_x pin) is used, the frame length should be aligned with a number equal to a power of 2, ranging from 8 to 256. When the master clock is not used (NODIV = 1), it is recommended to program the frame length to an value ranging from 8 to 256.
These bits are meaningless and are not used in AC97 or SPDIF audio block configuration.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FSALL</name>
              <description>Frame synchronization active level length. 
These bits are set and cleared by software. They specify the length in number of bit clock 
(SCK) + 1 (FSALL[6:0] + 1) of the active level of the FS signal in the audio frame 
These bits are meaningless and are not used in AC97 or SPDIF audio block configuration.
They must be configured when the audio block is disabled.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FSDEF</name>
              <description>Frame synchronization definition.
This bit is set and cleared by software.
When the bit is set, the number of slots defined in the SAI_xSLOTR register has to be even. It means that half of this number of slots is dedicated to the left channel and the other slots for the right channel (e.g: this bit has to be set for I2S or MSB/LSB-justified protocols...). 
This bit is meaningless and is not used in AC97 or SPDIF audio block configuration. It must be configured when the audio block is disabled.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FSPOL</name>
              <description>Frame synchronization polarity. 
This bit is set and cleared by software. It is used to configure the level of the start of frame on the FS signal. It is meaningless and is not used in AC97 or SPDIF audio block configuration.
This bit must be configured when the audio block is disabled.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FSOFF</name>
              <description>Frame synchronization offset. 
This bit is set and cleared by software. It is meaningless and is not used in AC97 or SPDIF audio block configuration. This bit must be configured when the audio block is disabled.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>BSLOTR</name>
          <displayName>BSLOTR</displayName>
          <description>SAI slot register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FBOFF</name>
              <description>First bit offset 
These bits are set and cleared by software.
The value set in this bitfield defines the position of the first data transfer bit in the slot. It represents an offset value. In transmission mode, the bits outside the data field are forced to 0. In reception mode, the extra received bits are discarded.
These bits must be set when the audio block is disabled.
They are ignored in AC97 or SPDIF mode.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SLOTSZ</name>
              <description>Slot size
This bits is set and cleared by software. 
The slot size must be higher or equal to the data size. If this condition is not respected, the behavior of the SAI is undetermined. 
Refer to Output data line management on an inactive slot for information on how to drive SD line. 
These bits must be set when the audio block is disabled.
They are ignored in AC97 or SPDIF mode.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NBSLOT</name>
              <description>Number of slots in an audio frame. 
These bits are set and cleared by software.
The value set in this bitfield represents the number of slots + 1 in the audio frame (including the number of inactive slots). The maximum number of slots is 16.
The number of slots should be even if FSDEF bit in the SAI_xFRCR register is set.
The number of slots must be configured when the audio block is disabled.
They are ignored in AC97 or SPDIF mode.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SLOTEN</name>
              <description>Slot enable. 
These bits are set and cleared by software.
Each SLOTEN bit corresponds to a slot position from 0 to 15 (maximum 16 slots).
The slot must be enabled when the audio block is disabled.
They are ignored in AC97 or SPDIF mode.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>BIM</name>
          <displayName>BIM</displayName>
          <description>SAI interrupt mask register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OVRUDRIE</name>
              <description>Overrun/underrun interrupt enable. 
This bit is set and cleared by software.
When this bit is set, an interrupt is generated if the OVRUDR bit in the SAI_xSR register is set.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MUTEDETIE</name>
              <description>Mute detection interrupt enable. 
This bit is set and cleared by software.
When this bit is set, an interrupt is generated if the MUTEDET bit in the SAI_xSR register is set.
This bit has a meaning only if the audio block is configured in receiver mode.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WCKCFGIE</name>
              <description>Wrong clock configuration interrupt enable.
This bit is set and cleared by software.
This bit is taken into account only if the audio block is configured as a master (MODE[1] = 0) and NODIV = 0.
It generates an interrupt if the WCKCFG flag in the SAI_xSR register is set.
Note: This bit is used only in Free protocol mode and is meaningless in other modes.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FREQIE</name>
              <description>FIFO request interrupt enable.
This bit is set and cleared by software.
When this bit is set, an interrupt is generated if the FREQ bit in the SAI_xSR register is set.
Since the audio block defaults to operate as a transmitter after reset, the MODE bit must be configured before setting FREQIE to avoid a parasitic interrupt in receiver mode,</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CNRDYIE</name>
              <description>Codec not ready interrupt enable (AC97). 
This bit is set and cleared by software.
When the interrupt is enabled, the audio block detects in the slot 0 (tag0) of the AC97 frame if the Codec connected to this line is ready or not. If it is not ready, the CNRDY flag in the SAI_xSR register is set and an interrupt is generated.
This bit has a meaning only if the AC97 mode is selected through PRTCFG[1:0] bits and the audio block is operates as a receiver.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AFSDETIE</name>
              <description>Anticipated frame synchronization detection interrupt enable.
This bit is set and cleared by software.
When this bit is set, an interrupt is generated if the AFSDET bit in the SAI_xSR register is set.
This bit is meaningless in AC97, SPDIF mode or when the audio block operates as a master.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>LFSDETIE</name>
              <description>Late frame synchronization detection interrupt enable.
This bit is set and cleared by software.
When this bit is set, an interrupt is generated if the LFSDET bit is set in the SAI_xSR register.
This bit is meaningless in AC97, SPDIF mode or when the audio block operates as a master.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>BSR</name>
          <displayName>BSR</displayName>
          <description>SAI status register</description>
          <addressOffset>0x38</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000008</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OVRUDR</name>
              <description>Overrun / underrun.
This bit is read only.
The overrun and underrun conditions can occur only when the audio block is configured as a receiver and a transmitter, respectively.
It can generate an interrupt if OVRUDRIE bit is set in SAI_xIM register.
This flag is cleared when the software sets COVRUDR bit in SAI_xCLRFR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>MUTEDET</name>
              <description>Mute detection.
This bit is read only.
This flag is set if consecutive 0 values are received in each slot of a given audio frame and for a consecutive number of audio frames (set in the MUTECNT bit in the SAI_xCR2 register).
It can generate an interrupt if MUTEDETIE bit is set in SAI_xIM register.
This flag is cleared when the software sets bit CMUTEDET in the SAI_xCLRFR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>WCKCFG</name>
              <description>Wrong clock configuration flag. 
This bit is read only. 
This bit is used only when the audio block operates in master mode (MODE[1] = 0) and NODIV = 0. 
It can generate an interrupt if WCKCFGIE bit is set in SAI_xIM register.
This flag is cleared when the software sets CWCKCFG bit in SAI_xCLRFR register.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>FREQ</name>
              <description>FIFO request. 
This bit is read only.
The request depends on the audio block configuration:
If the block is configured in transmission mode, the FIFO request is related to a write request operation in the SAI_xDR. 
If the block configured in reception, the FIFO request related to a read request operation from the SAI_xDR.
This flag can generate an interrupt if FREQIE bit is set in SAI_xIM register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CNRDY</name>
              <description>Codec not ready. 
This bit is read only. 
This bit is used only when the AC97 audio protocol is selected in the SAI_xCR1 register and configured in receiver mode.
It can generate an interrupt if CNRDYIE bit is set in SAI_xIM register.
This flag is cleared when the software sets CCNRDY bit in SAI_xCLRFR register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>AFSDET</name>
              <description>Anticipated frame synchronization detection.
This bit is read only.
This flag can be set only if the audio block is configured in slave mode.
It is not used in AC97or SPDIF mode.
It can generate an interrupt if AFSDETIE bit is set in SAI_xIM register.
This flag is cleared when the software sets CAFSDET bit in SAI_xCLRFR register.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>LFSDET</name>
              <description>Late frame synchronization detection.
This bit is read only.
This flag can be set only if the audio block is configured in slave mode.
It is not used in AC97 or SPDIF mode.
It can generate an interrupt if LFSDETIE bit is set in the SAI_xIM register.
This flag is cleared when the software sets bit CLFSDET in SAI_xCLRFR register</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>FLVL</name>
              <description>FIFO level threshold. 
This bit is read only. The FIFO level threshold flag is managed only by hardware and its setting depends on SAI block configuration (transmitter or receiver mode). 
Others: Reserved</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>BCLRFR</name>
          <displayName>BCLRFR</displayName>
          <description>SAI clear flag register</description>
          <addressOffset>0x3C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>COVRUDR</name>
              <description>Clear overrun / underrun.
This bit is write only.
Programming this bit to 1 clears the OVRUDR flag in the SAI_xSR register.
Reading this bit always returns the value 0.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CMUTEDET</name>
              <description>Mute detection flag. 
This bit is write only.
Programming this bit to 1 clears the MUTEDET flag in the SAI_xSR register.
Reading this bit always returns the value 0.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CWCKCFG</name>
              <description>Clear wrong clock configuration flag. 
This bit is write only.
Programming this bit to 1 clears the WCKCFG flag in the SAI_xSR register.
This bit is used only when the audio block is set as master (MODE[1] = 0) and NODIV = 0 in the SAI_xCR1 register.
Reading this bit always returns the value 0.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CCNRDY</name>
              <description>Clear Codec not ready flag. 
This bit is write only.
Programming this bit to 1 clears the CNRDY flag in the SAI_xSR register.
This bit is used only when the AC97 audio protocol is selected in the SAI_xCR1 register.
Reading this bit always returns the value 0.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CAFSDET</name>
              <description>Clear anticipated frame synchronization detection flag. 
This bit is write only.
Programming this bit to 1 clears the AFSDET flag in the SAI_xSR register.
It is not used in AC97or SPDIF mode.
Reading this bit always returns the value 0.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CLFSDET</name>
              <description>Clear late frame synchronization detection flag. 
This bit is write only.
Programming this bit to 1 clears the LFSDET flag in the SAI_xSR register.
This bit is not used in AC97or SPDIF mode
Reading this bit always returns the value 0.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>BDR</name>
          <displayName>BDR</displayName>
          <description>SAI data register</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DATA</name>
              <description>Data 
A write to this register loads the FIFO provided the FIFO is not full.
A read from this register empties the FIFO if the FIFO is not empty.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PDMCR</name>
          <displayName>PDMCR</displayName>
          <description>SAI PDM control register</description>
          <addressOffset>0x44</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PDMEN</name>
              <description>PDM enable 
This bit is set and cleared by software. This bit enables to control the state of the PDM interface block.
Make sure that the SAI in already operating in TDM master mode before enabling the PDM interface.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MICNBR</name>
              <description>Number of microphones
This bit is set and cleared by software. 
Note: It is not recommended to configure this field when PDMEN = 1.*
Note: The complete set of data lines might not be available for all SAI instances. Refer to Section 55.3: SAI implementation for details.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CKEN1</name>
              <description>Clock enable of bitstream clock number 1
This bit is set and cleared by software. 
Note: It is not recommended to configure this bit when PDMEN = 1.
Note: SAI_CK1 might not be available for all SAI instances. Refer to Section 55.3: SAI implementation for details.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CKEN2</name>
              <description>Clock enable of bitstream clock number 2
This bit is set and cleared by software. 
Note: It is not recommended to configure this bit when PDMEN = 1.
Note: SAI_CK2 might not be available for all SAI instances. Refer to Section 55.3: SAI implementation for details.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PDMDLY</name>
          <displayName>PDMDLY</displayName>
          <description>SAI PDM delay register</description>
          <addressOffset>0x48</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DLYM1L</name>
              <description>Delay line adjust for first microphone of pair 1
This bit is set and cleared by software. 
...
This field can be changed on-the-fly.
Note: This field can be used only if D1 line is available.Refer to Section 55.3: SAI implementation to check if it is available.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DLYM1R</name>
              <description>Delay line adjust for second microphone of pair 1
This bit is set and cleared by software. 
...
This field can be changed on-the-fly.
Note: This field can be used only if D1 line is available.Refer to Section 55.3: SAI implementation to check if it is available.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DLYM2L</name>
              <description>Delay line for first microphone of pair 2
This bit is set and cleared by software. 
...
This field can be changed on-the-fly.
Note: This field can be used only if D2 line is available.Refer to Section 55.3: SAI implementation to check if it is available.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DLYM2R</name>
              <description>Delay line for second microphone of pair 2
This bit is set and cleared by software. 
...
This field can be changed on-the-fly.
Note: This field can be used only if D2 line is available.Refer to Section 55.3: SAI implementation to check if it is available.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DLYM3L</name>
              <description>Delay line for first microphone of pair 3
This bit is set and cleared by software. 
... 
This field can be changed on-the-fly.
Note: This field can be used only if D3 line is available.Refer to Section 55.3: SAI implementation to check if it is available.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DLYM3R</name>
              <description>Delay line for second microphone of pair 3
This bit is set and cleared by software. 
...
This field can be changed on-the-fly.
Note: This field can be used only if D3 line is available.Refer to Section 55.3: SAI implementation to check if it is available.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DLYM4L</name>
              <description>Delay line for first microphone of pair 4
This bit is set and cleared by software. 
...
This field can be changed on-the-fly.
Note: This field can be used only if D4 line is available.Refer to Section 55.3: SAI implementation to check if it is available.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DLYM4R</name>
              <description>Delay line for second microphone of pair 4
This bit is set and cleared by software. 
...
This field can be changed on-the-fly.
Note: This field can be used only if D4 line is available.Refer to Section 55.3: SAI implementation to check if it is available.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="SAI1">
      <name>SAI2</name>
      <baseAddress>0x42005C00</baseAddress>
      <interrupt>
        <name>SAI2_A</name>
        <description>SAI2 global interrupt A</description>
        <value>74</value>
      </interrupt>
      <interrupt>
        <name>SAI2_B</name>
        <description>SAI2 global interrupt B</description>
        <value>75</value>
      </interrupt>
    </peripheral>
    <peripheral>
      <name>SBS</name>
      <description>System configuration, boot and security</description>
      <groupName>SBS</groupName>
      <baseAddress>0x58000400</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x140</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>BOOTSR</name>
          <displayName>BOOTSR</displayName>
          <description>SBS boot status register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INITVTOR</name>
              <description>initial vector for Cortex-M7
This register includes the physical boot address used by the Cortex-M7 after reset</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HDPLCR</name>
          <displayName>HDPLCR</displayName>
          <description>SBS hide protection control register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x000000B4</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INCR_HDPL</name>
              <description>increment HDPL
Write 0x6A to increment device HDPL by one.
After a write, the register value reverts to its default value (0xB4).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HDPLSR</name>
          <displayName>HDPLSR</displayName>
          <description>SBS hide protection status register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFF00</resetMask>
          <fields>
            <field>
              <name>HDPL</name>
              <description>hide protection level
This bitfield returns the current HDPL of the device.
0x6F and other codes: HDPL3, corresponding to non-boot application.
Note: The device state (open/close) is defined in FLASH_NVSTATER register of the embedded Flash memory.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DBGCR</name>
          <displayName>DBGCR</displayName>
          <description>SBS debug control register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>AP_UNLOCK</name>
              <description>access port unlock
Write 0xB4 to this bitfield to open the device access port.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_UNLOCK</name>
              <description>debug unlock
Write 0xB4 to this bitfield to open the debug when HDPL in SBS_HDPLSR equals to DBG_AUTH_HDPL in this register.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBG_AUTH_HDPL</name>
              <description>authenticated debug hide protection level
Writing to this bitfield defines at which HDPL the authenticated debug opens.
Note: Writing any other values is ignored. Reading any other value means the authenticated debug always fails.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DBGLOCKR</name>
          <displayName>DBGLOCKR</displayName>
          <description>SBS debug lock register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x000000B4</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DBGCFG_LOCK</name>
              <description>debug configuration lock
Reading this bitfield returns 0x6A if the bitfield value is different from 0xB4.
Other: Writes to SBS_DBGCR ignored
Note: 0xC3 is the recommended value to lock the debug configuration using this bitfield.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RSSCMDR</name>
          <displayName>RSSCMDR</displayName>
          <description>SBS RSS command register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RSSCMD</name>
              <description>RSS command
The application can use this bitfield to pass on a command to the RSS, executed at the next reset.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PMCR</name>
          <displayName>PMCR</displayName>
          <description>SBS product mode and configuration register</description>
          <addressOffset>0x100</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FMPLUS_PB6</name>
              <description>Fast-mode Plus on PB(6)</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FMPLUS_PB7</name>
              <description>Fast-mode Plus on PB(7)</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FMPLUS_PB8</name>
              <description>Fast-mode Plus on PB(8)</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FMPLUS_PB9</name>
              <description>Fast-mode Plus on PB(9)</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BOOSTEN</name>
              <description>booster enable
Set this bit to reduce the THD of the analog switches when the supply voltage is below 2.7 V. guaranteeing the same performance as with the full voltage range. To avoid current consumption due to booster activation when V&lt;sub&gt;DDA&lt;/sub&gt; &lt; 2.7 V and V&lt;sub&gt;DD&lt;/sub&gt; &gt; 2.7 V, V&lt;sub&gt;DD&lt;/sub&gt; can be selected as supply voltage for analog switches by setting BOOSTVDDSEL bit in SBS_PMCR. In this case, the BOOSTEN bit must be cleared to avoid unwanted power consumption.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BOOSTVDDSEL</name>
              <description>booster V&lt;sub&gt;DD&lt;/sub&gt; selection
This bit selects the analog switch supply voltage, between V&lt;sub&gt;DD&lt;/sub&gt;, V&lt;sub&gt;DDA&lt;/sub&gt; and booster.
To avoid current consumption due to booster activation when V&lt;sub&gt;DDA&lt;/sub&gt; &lt; 2.7 V and V&lt;sub&gt;DD&lt;/sub&gt; &gt; 2.7 V, V&lt;sub&gt;DD&lt;/sub&gt; can be selected as supply voltage for analog switches. In this case, the BOOSTEN bit must be cleared to avoid unwanted power consumption.
When both V&lt;sub&gt;DD and &lt;/sub&gt;V&lt;sub&gt;DDA&lt;/sub&gt; are below 2.7 V, the booster is still needed to obtain full AC performances from the I/O analog switches.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ETH_PHYSEL</name>
              <description>Ethernet PHY interface selection
Other: reserved</description>
              <bitOffset>21</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>AXIRAM_WS</name>
              <description>AXIRAM wait state
Set this bit to add one wait state to all AXIRAMs when ECC = 0. When ECC = 1 there is one wait state by default.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>FPUIMR</name>
          <displayName>FPUIMR</displayName>
          <description>SBS FPU interrupt mask register</description>
          <addressOffset>0x104</addressOffset>
          <size>0x20</size>
          <resetValue>0x0000001F</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FPU_IE</name>
              <description>FPU interrupt enable
Set and cleared by software to enable the Cortex-M7 FPU interrupts
xxxxx1: Invalid operation interrupt enabled (xxxxx0 to disable)
xxxx1x: Divide-by-zero interrupt enabled (xxxx0x to disable)
xxx1xx: Underflow interrupt enabled (xxx0xx to disable)
xx1xxx: Overflow interrupt enabled (xx0xxx to disable)
x1xxxx: Input denormal interrupt enabled (x0xxxx to disable)
1xxxxx: Inexact interrupt enabled (0xxxxx to disable), disabled by default</description>
              <bitOffset>0</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MESR</name>
          <displayName>MESR</displayName>
          <description>SBS memory erase status register</description>
          <addressOffset>0x108</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MEF</name>
              <description>memory erase flag
This bit is set by hardware when BKPRAM and PKA SRAM erase is ongoing after a POWER ON reset or one tamper event (see Section 50: Tamper and backup registers (TAMP) for details). This bit is cleared when the erase is done.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CCCSR</name>
          <displayName>CCCSR</displayName>
          <description>SBS I/O compensation cell control and status register</description>
          <addressOffset>0x110</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>EN</name>
              <description>Compensation cell enable
Set this bit to enable the compensation cell.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CS</name>
              <description>Compensation cell code selection
This bit selects the code to be applied for the I/O compensation cell.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OCTO1_COMP_EN</name>
              <description>XSPIM_P1 compensation cell enable
Set this bit to enable the XSPIM_P1 compensation cell.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OCTO1_COMP_CODESEL</name>
              <description>XSPIM_P1 compensation cell code selection
This bit selects the code to be applied for the XSPIM_P1 I/O compensation cell.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OCTO2_COMP_EN</name>
              <description>XSPIM_P2 compensation cell enable
Set this bit to enable the XSPIM_P2 compensation cell.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OCTO2_COMP_CODESEL</name>
              <description>XSPIM_P2 compensation cell code selection
This bit selects the code to be applied for the XSPIM_P2 I/O compensation cell.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>READY</name>
              <description>Compensation cell ready
This bit provides the status of the compensation cell.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OCTO1_COMP_RDY</name>
              <description>XSPIM_P1 compensation cell ready
This bit provides the status of the XSPIM_P1 compensation cell.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OCTO2_COMP_RDY</name>
              <description>XSPIM_P2 compensation cell ready
This bit provides the status of the XSPIM_P2 compensation cell.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>HSLV</name>
              <description>I/O high speed at low voltage
When this bit is set, the speed of the I/Os is optimized when the device voltage is low.
This bit is active only if VDDIO_HSLV user option bit is set in FLASH. It must be used only if the device supply voltage is below 2.7 V. Setting this bit when V&lt;sub&gt;DD&lt;/sub&gt; is higher than 2.7 V may be destructive.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OCTO1_IOHSLV</name>
              <description>XSPIM_P1 I/O high speed at low voltage 
When this bit is set, the speed of the XSPIM_P1 I/Os is optimized when the device voltage is low.
This bit is active only if OCTO1_HSLV user option bit is set in FLASH. This bit must be used only if the device supply voltage is below 2.7 V. Setting this bit when V&lt;sub&gt;DD&lt;/sub&gt; is higher than 2.7 V may be destructive.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OCTO2_IOHSLV</name>
              <description>XSPIM_P2 I/O high speed at low voltage 
When this bit is set, the speed of the XSPIM_P2 I/Os is optimized when the device voltage is low.
This bit is active only if OCTO2_HSLV user option bit is set in FLASH. This bit must be used only if the device supply voltage is below 2.7 V. Setting this bit when V&lt;sub&gt;DD&lt;/sub&gt; is higher than 2.7 V may be destructive.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CCVALR</name>
          <displayName>CCVALR</displayName>
          <description>SBS compensation cell for I/Os value register</description>
          <addressOffset>0x114</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000088</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>NSRC</name>
              <description>NMOS transistors slew-rate compensation
This bitfield returns the NMOS transistors slew-rate compensation value computed by the cell. It is interpreted to compensate the NMOS transistors slew rate in the functional range if COMP_CODESEL = 0 in SBS_CCCSR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PSRC</name>
              <description>PMOS transistors slew-rate compensation
This bitfield returns the PMOS transistors slew-rate compensation value computed by the cell. It is interpreted to compensate the PMOS transistors slew rate in the functional range if COMP_CODESEL = 0 in SBS_CCCSR register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OCTO1_NSRC</name>
              <description>XSPIM_P1 NMOS transistors slew-rate compensation
This bitfield returns the NMOS transistors slew-rate compensation value computed by the cell. It is interpreted by XSPIM_P1 to compensate the NMOS transistors slew rate in the functional range if OCTO1_COMP_CODESEL = 0 in SBS_CCCSR register.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OCTO1_PSRC</name>
              <description>XSPIM_P1 PMOS transistors slew-rate compensation
This bitfield returns the PMOS transistors slew-rate compensation value computed by the cell. It is interpreted by XSPIM_P1 to compensate the PMOS transistors slew rate in the functional range if OCTO1_COMP_CODESEL = 0 in SBS_CCCSR register.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OCTO2_NSRC</name>
              <description>XSPIM_P2 NMOS transistors slew-rate compensation
This bitfield returns the NMOS transistors slew-rate compensation value computed by the cell. It is interpreted by XSPIM_P2 to compensate the NMOS transistors slew rate in the functional range if OCTO2_COMP_CODESEL = 0 in SBS_CCCSR register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OCTO2_PSRC</name>
              <description>XSPIM_P2 PMOS transistors slew-rate compensation
This bitfield returns the PMOS transistors slew-rate compensation value computed by the cell. It is interpreted by XSPIM_P2 to compensate the PMOS transistors slew rate in the functional range if OCTO2_COMP_CODESEL = 0 in SBS_CCCSR register.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CCSWVALR</name>
          <displayName>CCSWVALR</displayName>
          <description>SBS compensation cell for I/Os software value register</description>
          <addressOffset>0x118</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000088</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SW_NSRC</name>
              <description>Software NMOS transistors slew-rate compensation
This bitfield returns the NMOS transistors slew-rate compensation value computed by the cell. It is interpreted to compensate the NMOS transistors slew rate in the functional range if COMP_CODESEL = 1 in SBS_CCCSR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SW_PSRC</name>
              <description>Software PMOS transistors slew-rate compensation
This bitfield returns the PMOS transistors slew-rate compensation value computed by the cell. It is interpreted to compensate the PMOS transistors slew rate in the functional range if COMP_CODESEL = 1 in SBS_CCCSR register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OCTO1_SW_NSRC</name>
              <description>XSPIM_P1 software NMOS transistors slew-rate compensation
This bitfield returns the NMOS transistors slew -ate compensation value computed by the cell. It is interpreted by XSPIM_P1 to compensate the NMOS transistors slew rate in the functional range if OCTO1_COMP_CODESEL = 1 in SBS_CCCSR register.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OCTO1_SW_PSRC</name>
              <description>XSPIM_P1 software PMOS transistors slew-rate compensation
This bitfield returns the PMOS transistors slew-rate compensation value computed by the cell. It is interpreted by XSPIM_P1 to compensate the PMOS transistors slew rate in the functional range if OCTO1_COMP_CODESEL = 1 in SBS_CCCSR register.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OCTO2_SW_NSRC</name>
              <description>XSPIM_P2 software NMOS transistors slew-rate compensation
This bitfield returns the NMOS transistors slew-rate compensation value computed by the cell. It is interpreted by XSPIM_P2 to compensate the NMOS transistors slew rate in the functional range if OCTO2_COMP_CODESEL = 1 in SBS_CCCSR register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OCTO2_SW_PSRC</name>
              <description>XSPIM_P2 software PMOS transistors slew-rate compensation
This bitfield returns the PMOS transistors slew-rate compensation value computed by the cell. It is interpreted by XSPIM_P2 to compensate the PMOS transistors slew rate in the functional range if OCTO2_COMP_CODESEL = 1 in SBS_CCCSR register.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>BKLOCKR</name>
          <displayName>BKLOCKR</displayName>
          <description>SBS break lockup register</description>
          <addressOffset>0x120</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000088</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PVD_BL</name>
              <description>PVD break lock
This bit is set by SW and cleared only by a system reset. it can be used to enable and lock the connection to TIM1/8/15/16/17Break input as well as the PVDE and PLS[2:0] bitfields in the PWR_CR1 register.
Once set, this bit is cleared only by a system reset.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FLASHECC_BL</name>
              <description>Flash ECC error break lock
Set this bit to enable and lock the connection between embedded flash memory ECC double error detection flag and break inputs of TIM1/15/16/17 peripherals.
Once set, this bit is cleared only by a system reset.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CM7LCKUP_BL</name>
              <description>Cortex-M7 lockup break lock
Set this bit to enable and lock the connection between the Cortex-M7 lockup (HardFault) output and break inputs of TIM1/15/16/17 peripherals.
Once set, this bit is cleared only by a system reset.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKRAMECC_BL</name>
              <description>Backup RAM ECC error break lock
Set this bit to enable and lock the connection between backup RAM ECC double error detection flag and break inputs of TIM1/15/16/17 peripherals.
Once set, this bit is cleared only by a system reset.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTCMECC_BL</name>
              <description>DTCM ECC error break lock
Set this bit to enable and lock the connection between DTCM ECC double error detection flag and break inputs of TIM1/15/16/17 peripherals.
Once set, this bit is cleared only by a system reset.
Note: The DTCM0 and DTCM1 are Ored to give DTCMECC</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITCMECC_BL</name>
              <description>ITCM ECC error break lock
Set this bit to enable and lock the connection between ITCM ECC double error detection flag and break inputs of TIM1/15/16/17 peripherals.
Once set, this bit is cleared only by a system reset.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ARAM3ECC_BL</name>
              <description>AXIRAM3 ECC error break lock
Set this bit to enable and lock the connection between AXIRAM3 ECC double error detection flag and break inputs of TIM1/15/16/17 peripherals.
Once set this bit is cleared only by a system reset.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ARAM1ECC_BL</name>
              <description>AXIRAM1 ECC error break lock
Set this bit to enable and lock the connection between AXIRAM1 ECC double error detection flag and break inputs of TIM1/15/16/17 peripherals.
Once set, this bit is cleared only by a system reset.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>EXTICR1</name>
          <displayName>EXTICR0</displayName>
          <description>SBS external interrupt configuration register 0</description>
          <addressOffset>0x130</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PC_EXTI0</name>
              <description>Port configuration EXTI {0 * 4 + i}
This bitfield selects the source input to the EXTI input {0 * 4 + i} used for external interrupt/ event detection.
Others: reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PC_EXTI1</name>
              <description>Port configuration EXTI {0 * 4 + i}
This bitfield selects the source input to the EXTI input {0 * 4 + i} used for external interrupt/ event detection.
Others: reserved</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PC_EXTI2</name>
              <description>Port configuration EXTI {0 * 4 + i}
This bitfield selects the source input to the EXTI input {0 * 4 + i} used for external interrupt/ event detection.
Others: reserved</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PC_EXTI3</name>
              <description>Port configuration EXTI {0 * 4 + i}
This bitfield selects the source input to the EXTI input {0 * 4 + i} used for external interrupt/ event detection.
Others: reserved</description>
              <bitOffset>12</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>EXTICR2</name>
          <displayName>EXTICR1</displayName>
          <description>SBS external interrupt configuration register 1</description>
          <addressOffset>0x134</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PC_EXTI4</name>
              <description>Port configuration EXTI {1 * 4 + i}
This bitfield selects the source input to the EXTI input {1 * 4 + i} used for external interrupt/ event detection.
Others: reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PC_EXTI5</name>
              <description>Port configuration EXTI {1 * 4 + i}
This bitfield selects the source input to the EXTI input {1 * 4 + i} used for external interrupt/ event detection.
Others: reserved</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PC_EXTI6</name>
              <description>Port configuration EXTI {1 * 4 + i}
This bitfield selects the source input to the EXTI input {1 * 4 + i} used for external interrupt/ event detection.
Others: reserved</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PC_EXTI7</name>
              <description>Port configuration EXTI {1 * 4 + i}
This bitfield selects the source input to the EXTI input {1 * 4 + i} used for external interrupt/ event detection.
Others: reserved</description>
              <bitOffset>12</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>EXTICR3</name>
          <displayName>EXTICR2</displayName>
          <description>SBS external interrupt configuration register 2</description>
          <addressOffset>0x138</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PC_EXTI8</name>
              <description>Port configuration EXTI {2 * 4 + i}
This bitfield selects the source input to the EXTI input {2 * 4 + i} used for external interrupt/ event detection.
Others: reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PC_EXTI9</name>
              <description>Port configuration EXTI {2 * 4 + i}
This bitfield selects the source input to the EXTI input {2 * 4 + i} used for external interrupt/ event detection.
Others: reserved</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PC_EXTI10</name>
              <description>Port configuration EXTI {2 * 4 + i}
This bitfield selects the source input to the EXTI input {2 * 4 + i} used for external interrupt/ event detection.
Others: reserved</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PC_EXTI11</name>
              <description>Port configuration EXTI {2 * 4 + i}
This bitfield selects the source input to the EXTI input {2 * 4 + i} used for external interrupt/ event detection.
Others: reserved</description>
              <bitOffset>12</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>EXTICR4</name>
          <displayName>EXTICR3</displayName>
          <description>SBS external interrupt configuration register 3</description>
          <addressOffset>0x13C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PC_EXTI12</name>
              <description>Port configuration EXTI {3 * 4 + i}
This bitfield selects the source input to the EXTI input {3 * 4 + i} used for external interrupt/ event detection.
Others: reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PC_EXTI13</name>
              <description>Port configuration EXTI {3 * 4 + i}
This bitfield selects the source input to the EXTI input {3 * 4 + i} used for external interrupt/ event detection.
Others: reserved</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PC_EXTI14</name>
              <description>Port configuration EXTI {3 * 4 + i}
This bitfield selects the source input to the EXTI input {3 * 4 + i} used for external interrupt/ event detection.
Others: reserved</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PC_EXTI15</name>
              <description>Port configuration EXTI {3 * 4 + i}
This bitfield selects the source input to the EXTI input {3 * 4 + i} used for external interrupt/ event detection.
Others: reserved</description>
              <bitOffset>12</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>SDMMC1</name>
      <description>Secure digital input/output MultiMediaCard interface</description>
      <groupName>SDMMC</groupName>
      <baseAddress>0x52007000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>SDMMC1</name>
        <description>SDMMC1 global interrupt</description>
        <value>108</value>
      </interrupt>
      <registers>
        <register>
          <name>POWER</name>
          <displayName>POWER</displayName>
          <description>SDMMC power control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PWRCTRL</name>
              <description>SDMMC state control bits
These bits can only be written when the SDMMC is not in the power-on state (PWRCTRL different from 11).
These bits are used to define the functional state of the SDMMC signals:
When written 00, power-off: the SDMMC is disabled and the clock to the card is stopped, SDMMC_D[7:0], SDMMC_CMD and SDMMC_CK are driven high.
Any further write is ignored, PWRCTRL value keeps 11.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VSWITCH</name>
              <description>Voltage switch sequence start
This bit is used to start the timing critical section of the voltage switch sequence:</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VSWITCHEN</name>
              <description>Voltage switch procedure enable
This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0).
This bit is used to stop the SDMMC_CK after the voltage switch command response:</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DIRPOL</name>
              <description>Data and command direction signals polarity selection
This bit can only be written when the SDMMC is in the power-off state (PWRCTRL = 00).</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CLKCR</name>
          <displayName>CLKCR</displayName>
          <description>SDMMC clock control register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CLKDIV</name>
              <description>Clock divide factor
This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0).
This field defines the divide factor between the input clock (sdmmc_ker_ck) and the output clock (SDMMC_CK): SDMMC_CK frequency = sdmmc_ker_ck / [2 * CLKDIV].
0x0XX: etc..
0xXXX: etc..</description>
              <bitOffset>0</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PWRSAV</name>
              <description>Power saving configuration bit
This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0)
For power saving, the SDMMC_CK clock output can be disabled when the bus is idle by setting PWRSAV:</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WIDBUS</name>
              <description>Wide bus mode enable bit
This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0)</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NEGEDGE</name>
              <description>SDMMC_CK dephasing selection bit for data and command
This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0).
When clock division = 1 (CLKDIV = 0), this bit has no effect. Data and Command change on SDMMC_CK falling edge.
Command and data changed on the sdmmc_ker_ck falling edge succeeding the rising edge of SDMMC_CK.
SDMMC_CK edge occurs on sdmmc_ker_ck rising edge.
	When clock division &gt;1 (CLKDIV &gt; 0) &amp; DDR = 1:
Command changed on the sdmmc_ker_ck falling edge succeeding the rising edge of SDMMC_CK.
Data changed on the sdmmc_ker_ck falling edge succeeding a SDMMC_CK edge.
SDMMC_CK edge occurs on sdmmc_ker_ck rising edge.
Command and data changed on the same sdmmc_ker_ck rising edge generating the SDMMC_CK falling edge.
	When clock division &gt;1 (CLKDIV &gt; 0) &amp; DDR = 1:
Command changed on the same sdmmc_ker_ck rising edge generating the SDMMC_CK falling edge.
Data changed on the SDMMC_CK falling edge succeeding a SDMMC_CK edge.
SDMMC_CK edge occurs on sdmmc_ker_ck rising edge.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>HWFC_EN</name>
              <description>Hardware flow control enable
This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0)
When Hardware flow control is enabled, the meaning of the TXFIFOE and RXFIFOF flags change, see SDMMC status register definition in Section 58.10.11.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DDR</name>
              <description>Data rate signaling selection
This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0)
DDR rate must only be selected with 4-bit or 8-bit wide bus mode. (WIDBUS &gt; 00). DDR = 1 has no effect when WIDBUS = 00 (1-bit wide bus).
DDR rate must only be selected with clock division &gt;1. (CLKDIV &gt; 0)</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BUSSPEED</name>
              <description>Bus speed for selection of SDMMC operating modes
This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0)</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SELCLKRX</name>
              <description>Receive clock selection
These bits can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0)</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ARGR</name>
          <displayName>ARGR</displayName>
          <description>SDMMC argument register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CMDARG</name>
              <description>Command argument
These bits can only be written by firmware when CPSM is disabled (CPSMEN = 0).
Command argument sent to a card as part of a command message. If a command contains an argument, it must be loaded into this register before writing a command to the command register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CMDR</name>
          <displayName>CMDR</displayName>
          <description>SDMMC command register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CMDINDEX</name>
              <description>Command index
This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0).
The command index is sent to the card as part of a command message.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CMDTRANS</name>
              <description>The CPSM treats the command as a data transfer command, stops the interrupt period, and signals DataEnable to the DPSM
This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0).
If this bit is set, the CPSM issues an end of interrupt period and issues DataEnable signal to the DPSM when the command is sent.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CMDSTOP</name>
              <description>The CPSM treats the command as a Stop Transmission command and signals abort to the DPSM
This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0).
If this bit is set, the CPSM issues the abort signal to the DPSM when the command is sent.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WAITRESP</name>
              <description>Wait for response bits
This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0).
They are used to configure whether the CPSM is to wait for a response, and if yes, which kind of response.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WAITINT</name>
              <description>CPSM waits for interrupt request
If this bit is set, the CPSM disables command timeout and waits for an card interrupt request (Response).
If this bit is cleared in the CPSM Wait state, it causes the abort of the interrupt mode.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WAITPEND</name>
              <description>CPSM waits for end of data transfer (CmdPend internal signal) from DPSM
This bit when set, the CPSM waits for the end of data transfer trigger before it starts sending a command.
WAITPEND is only taken into account when DTMODE = e.MMC stream data transfer, WIDBUS = 1-bit wide bus mode, DPSMACT = 1 and DTDIR = from host to card.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CPSMEN</name>
              <description>Command path state machine (CPSM) enable bit
This bit is written 1 by firmware, and cleared by hardware when the CPSM enters the Idle state.
If this bit is set, the CPSM is enabled.
When DTEN = 1, no command is transfered nor boot procedure is started. CPSMEN is cleared to 0.
During Read Wait with SDMMC_CK stopped no command is sent and CPSMEN is kept 0.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTHOLD</name>
              <description>Hold new data block transmission and reception in the DPSM
If this bit is set, the DPSM does not move from the Wait_S state to the Send state or from the Wait_R state to the Receive state.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BOOTMODE</name>
              <description>Select the boot mode procedure to be used
This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0)</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BOOTEN</name>
              <description>Enable boot mode procedure</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CMDSUSPEND</name>
              <description>The CPSM treats the command as a Suspend or Resume command and signals interrupt period start/end
This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0).
CMDSUSPEND = 1 and CMDTRANS = 0 Suspend command, start interrupt period when response bit BS=0.
CMDSUSPEND = 1 and CMDTRANS = 1 Resume command with data, end interrupt period when response bit DF=1.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RESPCMDR</name>
          <displayName>RESPCMDR</displayName>
          <description>SDMMC command response register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RESPCMD</name>
              <description>Response command index
Read-only bit field. Contains the command index of the last command response received.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RESP1R</name>
          <displayName>RESP1R</displayName>
          <description>SDMMC response 1 register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CARDSTATUS</name>
              <description>Card status according table below
See Table 444.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RESP2R</name>
          <displayName>RESP2R</displayName>
          <description>SDMMC response 2 register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CARDSTATUS</name>
              <description>Card status according table below
See Table 444.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RESP3R</name>
          <displayName>RESP3R</displayName>
          <description>SDMMC response 3 register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CARDSTATUS</name>
              <description>Card status according table below
See Table 444.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RESP4R</name>
          <displayName>RESP4R</displayName>
          <description>SDMMC response 4 register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CARDSTATUS</name>
              <description>Card status according table below
See Table 444.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DTIMER</name>
          <displayName>DTIMER</displayName>
          <description>SDMMC data timer register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DATATIME</name>
              <description>Data and R1b busy timeout period
This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0).
Data and R1b busy timeout period expressed in card bus clock periods.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DLENR</name>
          <displayName>DLENR</displayName>
          <description>SDMMC data length register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DATALENGTH</name>
              <description>Data length value
This register can only be written by firmware when DPSM is inactive (DPSMACT = 0).
Number of data bytes to be transferred.
When DDR = 1 DATALENGTH is truncated to a multiple of 2. (The last odd byte is not transfered)
When DATALENGTH = 0 no data are transfered, when requested by a CPSMEN and CMDTRANS = 1 also no command is transfered. DTEN and CPSMEN are cleared to 0.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>25</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DCTRL</name>
          <displayName>DCTRL</displayName>
          <description>SDMMC data control register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DTEN</name>
              <description>Data transfer enable bit
This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0). This bit is cleared by Hardware when data transfer completes.
This bit must only be used to transfer data when no associated data transfer command is used, i.e. must not be used with SD or e.MMC cards.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTDIR</name>
              <description>Data transfer direction selection
This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0).</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTMODE</name>
              <description>Data transfer mode selection
This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0).</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBLOCKSIZE</name>
              <description>Data block size
This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0).
Define the data block length when the block data transfer mode is selected:
When DATALENGTH is not a multiple of DBLOCKSIZE, the transfered data is truncated at a multiple of DBLOCKSIZE. (None of the remaining data are transfered.)
When DDR = 1, DBLOCKSIZE = 0000 must not be used. (No data are transfered)</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RWSTART</name>
              <description>Read Wait start
If this bit is set, Read Wait operation starts.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RWSTOP</name>
              <description>Read Wait stop
This bit is written by firmware and auto cleared by hardware when the DPSM moves from the R_W state to the Wait_R or Idle state.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RWMOD</name>
              <description>Read Wait mode
This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0).</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SDIOEN</name>
              <description>SD I/O interrupt enable functions
This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0).
If this bit is set, the DPSM enables the SD I/O card specific interrupt operation.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BOOTACKEN</name>
              <description>Enable the reception of the boot acknowledgment
This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FIFORST</name>
              <description>FIFO reset, flushes any remaining data
This bit can only be written by firmware when IDMAEN= 0 and DPSM is active (DPSMACT = 1). This bit only takes effect when a transfer error or transfer hold occurs.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DCNTR</name>
          <displayName>DCNTR</displayName>
          <description>SDMMC data counter register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DATACOUNT</name>
              <description>Data count value
When read, the number of remaining data bytes to be transferred is returned. Write has no effect.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>25</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>STAR</name>
          <displayName>STAR</displayName>
          <description>SDMMC status register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CCRCFAIL</name>
              <description>Command response received (CRC check failed)
Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DCRCFAIL</name>
              <description>Data block sent/received (CRC check failed)
Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CTIMEOUT</name>
              <description>Command response timeout
Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR.
The Command Timeout period has a fixed value of 64 SDMMC_CK clock periods.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DTIMEOUT</name>
              <description>Data timeout
Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TXUNDERR</name>
              <description>Transmit FIFO underrun error (masked by hardware when IDMA is enabled)
Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RXOVERR</name>
              <description>Received FIFO overrun error (masked by hardware when IDMA is enabled)
Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CMDREND</name>
              <description>Command response received (CRC check passed, or no CRC)
Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CMDSENT</name>
              <description>Command sent (no response required)
Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DATAEND</name>
              <description>Data transfer ended correctly
DATAEND is set if data counter DATACOUNT is zero and no errors occur, and no transmit data transfer hold.
Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DHOLD</name>
              <description>Data transfer Hold
Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DBCKEND</name>
              <description>Data block sent/received
DBCKEND is set when:
- CRC check passed and DPSM moves to the R_W state
or
- IDMAEN = 0 and transmit data transfer hold and DATACOUNT &gt;0 and DPSM moves to Wait_S.
Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DABORT</name>
              <description>Data transfer aborted by CMD12
Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DPSMACT</name>
              <description>Data path state machine active, i.e. not in Idle state
This is a hardware status flag only, does not generate an interrupt.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CPSMACT</name>
              <description>Command path state machine active, i.e. not in Idle state
This is a hardware status flag only, does not generate an interrupt.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TXFIFOHE</name>
              <description>Transmit FIFO half empty
At least half the number of words can be written into the FIFO. This bit is cleared when the FIFO becomes half+1 full.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RXFIFOHF</name>
              <description>Receive FIFO half full
There are at least half the number of words in the FIFO. This bit is cleared when the FIFO becomes half+1 empty.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TXFIFOF</name>
              <description>Transmit FIFO full
This is a hardware status flag only, does not generate an interrupt. This bit is cleared when one FIFO location becomes empty.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RXFIFOF</name>
              <description>Receive FIFO full
This bit is cleared when one FIFO location becomes empty.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TXFIFOE</name>
              <description>Transmit FIFO empty
This bit is cleared when one FIFO location becomes full.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>RXFIFOE</name>
              <description>Receive FIFO empty
This is a hardware status flag only, does not generate an interrupt. This bit is cleared when one FIFO location becomes full.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>BUSYD0</name>
              <description>Inverted value of SDMMC_D0 line (Busy), sampled at the end of a CMD response and a second time 2 SDMMC_CK cycles after the CMD response
This bit is reset to not busy when the SDMMCD0 line changes from busy to not busy. This bit does not signal busy due to data transfer. This is a hardware status flag only, it does not generate an interrupt.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>BUSYD0END</name>
              <description>end of SDMMC_D0 Busy following a CMD response detected
This indicates only end of busy following a CMD response. This bit does not signal busy due to data transfer. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SDIOIT</name>
              <description>SDIO interrupt received
The interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ACKFAIL</name>
              <description>Boot acknowledgment received (boot acknowledgment check fail)
The interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ACKTIMEOUT</name>
              <description>Boot acknowledgment timeout
The interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>VSWEND</name>
              <description>Voltage switch critical timing section completion
The interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CKSTOP</name>
              <description>SDMMC_CK stopped in Voltage switch procedure
The interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>IDMATE</name>
              <description>IDMA transfer error
The interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>IDMABTC</name>
              <description>IDMA buffer transfer complete
The interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ICR</name>
          <displayName>ICR</displayName>
          <description>SDMMC interrupt clear register</description>
          <addressOffset>0x38</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CCRCFAILC</name>
              <description>CCRCFAIL flag clear bit
Set by software to clear the CCRCFAIL flag.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DCRCFAILC</name>
              <description>DCRCFAIL flag clear bit
Set by software to clear the DCRCFAIL flag.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CTIMEOUTC</name>
              <description>CTIMEOUT flag clear bit
Set by software to clear the CTIMEOUT flag.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTIMEOUTC</name>
              <description>DTIMEOUT flag clear bit
Set by software to clear the DTIMEOUT flag.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXUNDERRC</name>
              <description>TXUNDERR flag clear bit
Set by software to clear TXUNDERR flag.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXOVERRC</name>
              <description>RXOVERR flag clear bit
Set by software to clear the RXOVERR flag.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CMDRENDC</name>
              <description>CMDREND flag clear bit
Set by software to clear the CMDREND flag.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CMDSENTC</name>
              <description>CMDSENT flag clear bit
Set by software to clear the CMDSENT flag.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DATAENDC</name>
              <description>DATAEND flag clear bit
Set by software to clear the DATAEND flag.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DHOLDC</name>
              <description>DHOLD flag clear bit
Set by software to clear the DHOLD flag.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBCKENDC</name>
              <description>DBCKEND flag clear bit
Set by software to clear the DBCKEND flag.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DABORTC</name>
              <description>DABORT flag clear bit
Set by software to clear the DABORT flag.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BUSYD0ENDC</name>
              <description>BUSYD0END flag clear bit
Set by software to clear the BUSYD0END flag.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SDIOITC</name>
              <description>SDIOIT flag clear bit
Set by software to clear the SDIOIT flag.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACKFAILC</name>
              <description>ACKFAIL flag clear bit
Set by software to clear the ACKFAIL flag.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACKTIMEOUTC</name>
              <description>ACKTIMEOUT flag clear bit
Set by software to clear the ACKTIMEOUT flag.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VSWENDC</name>
              <description>VSWEND flag clear bit
Set by software to clear the VSWEND flag.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CKSTOPC</name>
              <description>CKSTOP flag clear bit
Set by software to clear the CKSTOP flag.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IDMATEC</name>
              <description>IDMA transfer error clear bit
Set by software to clear the IDMATE flag.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IDMABTCC</name>
              <description>IDMA buffer transfer complete clear bit
Set by software to clear the IDMABTC flag.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MASKR</name>
          <displayName>MASKR</displayName>
          <description>SDMMC mask register</description>
          <addressOffset>0x3C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CCRCFAILIE</name>
              <description>Command CRC fail interrupt enable
Set and cleared by software to enable/disable interrupt caused by command CRC failure.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DCRCFAILIE</name>
              <description>Data CRC fail interrupt enable
Set and cleared by software to enable/disable interrupt caused by data CRC failure.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CTIMEOUTIE</name>
              <description>Command timeout interrupt enable
Set and cleared by software to enable/disable interrupt caused by command timeout.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTIMEOUTIE</name>
              <description>Data timeout interrupt enable
Set and cleared by software to enable/disable interrupt caused by data timeout.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXUNDERRIE</name>
              <description>Tx FIFO underrun error interrupt enable
Set and cleared by software to enable/disable interrupt caused by Tx FIFO underrun error.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXOVERRIE</name>
              <description>Rx FIFO overrun error interrupt enable
Set and cleared by software to enable/disable interrupt caused by Rx FIFO overrun error.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CMDRENDIE</name>
              <description>Command response received interrupt enable
Set and cleared by software to enable/disable interrupt caused by receiving command response.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CMDSENTIE</name>
              <description>Command sent interrupt enable
Set and cleared by software to enable/disable interrupt caused by sending command.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DATAENDIE</name>
              <description>Data end interrupt enable
Set and cleared by software to enable/disable interrupt caused by data end.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DHOLDIE</name>
              <description>Data hold interrupt enable
Set and cleared by software to enable/disable the interrupt generated when sending new data is hold in the DPSM Wait_S state.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBCKENDIE</name>
              <description>Data block end interrupt enable
Set and cleared by software to enable/disable interrupt caused by data block end.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DABORTIE</name>
              <description>Data transfer aborted interrupt enable
Set and cleared by software to enable/disable interrupt caused by a data transfer being aborted.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFIFOHEIE</name>
              <description>Tx FIFO half empty interrupt enable
Set and cleared by software to enable/disable interrupt caused by Tx FIFO half empty.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXFIFOHFIE</name>
              <description>Rx FIFO half full interrupt enable
Set and cleared by software to enable/disable interrupt caused by Rx FIFO half full.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXFIFOFIE</name>
              <description>Rx FIFO full interrupt enable
Set and cleared by software to enable/disable interrupt caused by Rx FIFO full.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TXFIFOEIE</name>
              <description>Tx FIFO empty interrupt enable
Set and cleared by software to enable/disable interrupt caused by Tx FIFO empty.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BUSYD0ENDIE</name>
              <description>BUSYD0END interrupt enable
Set and cleared by software to enable/disable the interrupt generated when SDMMC_D0 signal changes from busy to NOT busy following a CMD response.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SDIOITIE</name>
              <description>SDIO mode interrupt received interrupt enable
Set and cleared by software to enable/disable the interrupt generated when receiving the SDIO mode interrupt.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACKFAILIE</name>
              <description>Acknowledgment Fail interrupt enable
Set and cleared by software to enable/disable interrupt caused by acknowledgment Fail.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ACKTIMEOUTIE</name>
              <description>Acknowledgment timeout interrupt enable
Set and cleared by software to enable/disable interrupt caused by acknowledgment timeout.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VSWENDIE</name>
              <description>Voltage switch critical timing section completion interrupt enable
Set and cleared by software to enable/disable the interrupt generated when voltage switch critical timing section completion.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CKSTOPIE</name>
              <description>Voltage Switch clock stopped interrupt enable
Set and cleared by software to enable/disable interrupt caused by Voltage Switch clock stopped.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IDMABTCIE</name>
              <description>IDMA buffer transfer complete interrupt enable
Set and cleared by software to enable/disable the interrupt generated when the IDMA has transferred all data belonging to a memory buffer.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ACKTIMER</name>
          <displayName>ACKTIMER</displayName>
          <description>SDMMC acknowledgment timer register</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ACKTIME</name>
              <description>Boot acknowledgment timeout period
This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0).
Boot acknowledgment timeout period expressed in card bus clock periods.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>25</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IDMACTRLR</name>
          <displayName>IDMACTRLR</displayName>
          <description>SDMMC DMA control register</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IDMAEN</name>
              <description>IDMA enable
This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IDMABMODE</name>
              <description>Buffer mode selection
This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0).</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IDMABSIZER</name>
          <displayName>IDMABSIZER</displayName>
          <description>SDMMC IDMA buffer size register</description>
          <addressOffset>0x54</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IDMABNDT</name>
              <description>Number of bytes per buffer
This 12-bit value must be multiplied by 8 to get the size of the buffer in 32-bit words and by 32 to get the size of the buffer in bytes.
Example: IDMABNDT = 0x001: buffer size = 8 words = 32 bytes.
Example: IDMABNDT = 0x800: buffer size = 16384 words = 64 Kbyte.
These bits can only be written by firmware when DPSM is inactive (DPSMACT = 0).</description>
              <bitOffset>5</bitOffset>
              <bitWidth>12</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IDMABASER</name>
          <displayName>IDMABASER</displayName>
          <description>SDMMC IDMA buffer base address register</description>
          <addressOffset>0x58</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IDMABASE</name>
              <description>Buffer memory base address bits [31:2], must be word aligned (bit [1:0] are always 0 and read only)
This register can be written by firmware when DPSM is inactive (DPSMACT = 0), and can dynamically be written by firmware when DPSM active (DPSMACT = 1).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IDMALAR</name>
          <displayName>IDMALAR</displayName>
          <description>SDMMC IDMA linked list address register</description>
          <addressOffset>0x64</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IDMALA</name>
              <description>Word aligned linked list item address offset
Linked list item offset pointer to the base of the next linked list item structure.
Linked list item base address is IDMABA + IDMALA.
These bits can only be written by firmware when DPSM is inactive (DPSMACT = 0).</description>
              <bitOffset>2</bitOffset>
              <bitWidth>14</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ABR</name>
              <description>Acknowledge linked list buffer ready
This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0).
This bit is not taken into account when starting the first linked list buffer from the software programmed register information. ABR is only taken into account on subsequent loaded linked list items.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ULS</name>
              <description>Update SDMMC_IDMABSIZE from the next linked list when in linked list mode (SDMMC_IDMACTRLR.IDMABMODE select linked list mode and ULA = 1)
This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0).</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ULA</name>
              <description>Update SDMMC_IDMALAR from linked list when in linked list mode (SDMMC_IDMACTRLR.IDMABMODE select linked list mode)
This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0).</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IDMABAR</name>
          <displayName>IDMABAR</displayName>
          <description>SDMMC IDMA linked list memory base register</description>
          <addressOffset>0x68</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IDMABA</name>
              <description>Word aligned Linked list memory base address
Linked list memory base pointer.
These bits can only be written by firmware when DPSM is inactive (DPSMACT = 0).</description>
              <bitOffset>2</bitOffset>
              <bitWidth>30</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <dim>16</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-15</dimIndex>
          <name>FIFOR%s</name>
          <displayName>FIFOR%s</displayName>
          <description>SDMMC data FIFO registers %s</description>
          <addressOffset>0x80</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FIFODATA</name>
              <description>Receive and transmit FIFO data
This register can only be read or written by firmware when the DPSM is active (DPSMACT = 1).
The FIFO data occupies 16 entries of 32-bit words.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="SDMMC1">
      <name>SDMMC2</name>
      <baseAddress>0x48002400</baseAddress>
      <interrupt>
        <name>SDMMC2</name>
        <description>SDMMC2 global interrupt</description>
        <value>109</value>
      </interrupt>
    </peripheral>
    <peripheral>
      <name>SPDIFRX</name>
      <description>SPDIF receiver interface</description>
      <baseAddress>0x40004000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x1C</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>SPDIF_RX</name>
        <description>SPDIFRX global interrupt</description>
        <value>124</value>
      </interrupt>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>SPDIFRX control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SPDIFRXEN</name>
              <description>Peripheral block enable&lt;sup&gt;(1)&lt;/sup&gt;
This field is modified by software. 
It must be used to change the peripheral phase among the three possible states: STATE_IDLE, STATE_SYNC and STATE_RCV.
It is not possible to transition from STATE_RCV to STATE_SYNC, the user must first go the STATE_IDLE.
Note: it is possible to transition from STATE_IDLE to STATE_RCV: in that case the peripheral transitions from STATE_IDLE to STATE_SYNC and as soon as the synchronization is performed goes to STATE_RCV.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXDMAEN</name>
              <description>Receiver DMA enable for data flow&lt;sup&gt;(1)&lt;/sup&gt;
This bit is set/reset by software.
Note: When this bit is set, the DMA request is made whenever the RXNE flag is set.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>RXSTEO</name>
              <description>Stereo mode&lt;sup&gt;(1)&lt;/sup&gt;
This bit is set/reset by software.
Note: This bit is used in case of overrun situation in order to handle misalignment.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DRFMT</name>
              <description>RX data format&lt;sup&gt;(1)&lt;/sup&gt;
This bit is set/reset by software.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PMSK</name>
              <description>Mask parity error bit&lt;sup&gt;(1)&lt;/sup&gt;
This bit is set/reset by software.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>VMSK</name>
              <description>Mask of validity bit&lt;sup&gt;(1)&lt;/sup&gt;
This bit is set/reset by software.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CUMSK</name>
              <description>Mask of channel status and user bits&lt;sup&gt;(1)&lt;/sup&gt;
This bit is set/reset by software.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PTMSK</name>
              <description>Mask of preamble type bits&lt;sup&gt;(1)&lt;/sup&gt;
This bit is set/reset by software.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CBDMAEN</name>
              <description>Control buffer DMA enable for control flow&lt;sup&gt;(1)&lt;/sup&gt;
This bit is set/reset by software.
Note: When this bit is set, the DMA request is made whenever the CSRNE flag is set.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CHSEL</name>
              <description>Channel selection&lt;sup&gt;(1)&lt;/sup&gt;
This bit is set/reset by software.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>NBTR</name>
              <description>Maximum allowed re-tries during synchronization phase&lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WFA</name>
              <description>Wait for activity&lt;sup&gt;(1)&lt;/sup&gt;
This bit is set/reset by software.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>INSEL</name>
              <description>SPDIFRX input selection
other: reserved</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CKSEN</name>
              <description>Symbol clock enable
This bit is set/reset by software.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CKSBKPEN</name>
              <description>Backup symbol clock enable
This bit is set/reset by software.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IMR</name>
          <displayName>IMR</displayName>
          <description>SPDIFRX interrupt mask register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXNEIE</name>
              <description>RXNE interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CSRNEIE</name>
              <description>Control buffer ready interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PERRIE</name>
              <description>Parity error interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OVRIE</name>
              <description>Overrun error interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SBLKIE</name>
              <description>Synchronization block detected interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SYNCDIE</name>
              <description>Synchronization done
This bit is set and cleared by software.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IFEIE</name>
              <description>Serial interface error interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>SPDIFRX status register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXNE</name>
              <description>Read data register not empty
This bit is set by hardware when a valid data is available into SPDIFRX_FMTx_DR register.
This flag is cleared by reading the SPDIFRX_FMTx_DR register.
An interrupt is generated if RXNEIE=1 in the SPDIFRX_IMR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CSRNE</name>
              <description>Control buffer register not empty 
This bit is set by hardware when a valid control information is ready. 
This flag is cleared when reading SPDIFRX_CSR register.
An interrupt is generated if CBRDYIE = 1 in the SPDIFRX_IMR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PERR</name>
              <description>Parity error
This bit is set by hardware when the data and status bits of the sub-frame received contain an odd number of 0 and 1. 
This flag is cleared by writing a 1 to its corresponding bit on SPDIFRX_IFCR register.
An interrupt is generated if PIE = 1 in the SPDIFRX_IMR register.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>OVR</name>
              <description>Overrun error
This bit is set by hardware when a received data is ready to be transferred in the SPDIFRX_FMTx_DR register while RXNE = 1 and both SPDIFRX_FMTx_DR and RX_BUF are full.
This flag is cleared by writing a 1 to its corresponding bit on SPDIFRX_IFCR register.
An interrupt is generated if OVRIE=1 in the SPDIFRX_IMR register.
Note: When this bit is set, the SPDIFRX_FMTx_DR register content is not lost but the last data received are.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SBD</name>
              <description>Synchronization block detected
This bit is set by hardware when a B preamble is detected. 
This flag is cleared by writing a 1 to its corresponding bit on SPDIFRX_IFCR register. 
An interrupt is generated if SBLKIE = 1 in the SPDIFRX_IMR register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SYNCD</name>
              <description>Synchronization done
This bit is set by hardware when the initial synchronization phase is properly completed. 
This flag is cleared by writing a 1 to its corresponding bit on SPDIFRX_IFCR register.
An interrupt is generated if SYNCDIE = 1 in the SPDIFRX_IMR register.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>FERR</name>
              <description>Framing error
This bit is set by hardware when an error occurs during data reception: such as preamble not at the expected place, short transition not grouped by pairs.
This is set by the hardware only if the synchronization is completed (SYNCD = 1).
This flag is cleared by writing SPDIFRXEN to 0.
An interrupt is generated if IFEIE=1 in the SPDIFRX_IMR register.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SERR</name>
              <description>Synchronization error
This bit is set by hardware when the synchronization fails due to amount of re-tries for NBTR.
This flag is cleared by writing SPDIFRXEN to 0.
An interrupt is generated if IFEIE = 1 in the SPDIFRX_IMR register.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TERR</name>
              <description>Time-out error
This bit is set by hardware when the counter TRCNT reaches its max value. It indicates that the time interval between two transitions is too long. It generally indicates that there is no valid signal on SPDIFRX_IN input.
This flag is cleared by writing SPDIFRXEN to 0.
An interrupt is generated if IFEIE=1 in the SPDIFRX_IMR register.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>WIDTH5</name>
              <description>duration of 5 symbols counted with spdifrx_ker_ck
This value represents the amount of spdifrx_ker_ck clock periods contained on a length of 5 consecutive symbols. This value can be used to estimate the S/PDIF symbol rate. Its accuracy is limited by the frequency of spdifrx_ker_ck.
For example if the spdifrx_ker_ck is fixed to 84 MHz, and WIDTH5 = 147d. The estimated sampling rate of the S/PDIF stream is:
Fs = 5 x F&lt;sub&gt;spdifrx_ker_ck&lt;/sub&gt; / (WIDTH5 x 64) ~ 44.6 kHz, so the closest standard sampling rate is 44.1 kHz.
Note that WIDTH5 is updated by the hardware when SYNCD goes high, and then every frame.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>15</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IFCR</name>
          <displayName>IFCR</displayName>
          <description>SPDIFRX interrupt flag clear register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PERRCF</name>
              <description>clears the parity error flag
Writing 1 in this bit clears the flag PERR in the SPDIFRX_SR register.
Reading this bit always returns the value 0.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>OVRCF</name>
              <description>clears the overrun error flag
Writing 1 in this bit clears the flag OVR in the SPDIFRX_SR register.
Reading this bit always returns the value 0.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SBDCF</name>
              <description>clears the synchronization block detected flag
Writing 1 in this bit clears the flag SBD in the SPDIFRX_SR register.
Reading this bit always returns the value 0.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>SYNCDCF</name>
              <description>clears the synchronization done flag
Writing 1 in this bit clears the flag SYNCD in the SPDIFRX_SR register.
Reading this bit always returns the value 0.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>FMT0_DR</name>
          <displayName>FMT0_DR</displayName>
          <description>SPDIFRX data input register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DR</name>
              <description>data value
Contains the 24 received data bits, aligned on D[23]</description>
              <bitOffset>0</bitOffset>
              <bitWidth>24</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PE</name>
              <description>parity error bit
Contains a copy of PERR bit if PMSK = 0, otherwise it is forced to 0</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>V</name>
              <description>validity bit
Contains the received validity bit if VMSK = 0, otherwise it is forced to 0</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>U</name>
              <description>user bit
Contains the received user bit, if CUMSK = 0, otherwise it is forced to 0</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>C</name>
              <description>channel status bit
Contains the received channel status bit, if CUMSK = 0, otherwise it is forced to 0</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PT</name>
              <description>preamble type
These bits indicate the preamble received.
Note that if PTMSK = 1, this field is forced to zero</description>
              <bitOffset>28</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>FMT0_DR_alternate1</name>
          <displayName>FMT0_DR_alternate1</displayName>
          <description>SPDIFRX data input register</description>
          <alternateRegister>FMT0_DR</alternateRegister>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PE</name>
              <description>parity error bit
Contains a copy of PERR bit if PMSK = 0, otherwise it is forced to 0</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>V</name>
              <description>validity bit
Contains the received validity bit if VMSK = 0, otherwise it is forced to 0</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>U</name>
              <description>user bit
Contains the received user bit, if CUMSK = 0, otherwise it is forced to 0</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>C</name>
              <description>channel Status bit
Contains the received channel status bit, if CUMSK = 0, otherwise it is forced to 0</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>PT</name>
              <description>preamble type
These bits indicate the preamble received.
Note that if PTMSK = 1, this field is forced to zero</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DR</name>
              <description>data value
Contains the 24 received data bits, aligned on D[23]</description>
              <bitOffset>8</bitOffset>
              <bitWidth>24</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>FMT0_DR_alternate2</name>
          <displayName>FMT0_DR_alternate2</displayName>
          <description>SPDIFRX data input register</description>
          <alternateRegister>FMT0_DR</alternateRegister>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DRNL1</name>
              <description>data value
This field contains the channel B</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>DRNL2</name>
              <description>data value
This field contains the channel A</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CSR</name>
          <displayName>CSR</displayName>
          <description>SPDIFRX channel status register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>USR</name>
              <description>user data information
Bit USR[0] is the oldest value, and comes from channel A, USR[1] comes channel B. 
So USR[n] bits come from channel A is n is even, otherwise they come from channel B.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CS</name>
              <description>channel A status information
Bit CS[0] is the oldest value</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SOB</name>
              <description>start of block
This bit indicates if the bit CS[0] corresponds to the first bit of a new block</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIR</name>
          <displayName>DIR</displayName>
          <description>SPDIFRX debug information register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>THI</name>
              <description>threshold HIGH (THI = 2.5 x UI / T&lt;sub&gt;spdifrx_ker_ck&lt;/sub&gt;)
This field contains the current threshold HIGH estimation. This value can be used to estimate the sampling rate of the received stream. The accuracy of THI is limited to a period of the spdifrx_ker_ck. The sampling rate can be estimated as follow:
Sampling Rate = [2 x THI x T&lt;sub&gt;spdifrx_ker_ck &lt;/sub&gt;+/- T&lt;sub&gt;spdifrx_ker_ck&lt;/sub&gt;] x 2/5
Note that THI is updated by the hardware when SYNCD goes high, and then every frame.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>13</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TLO</name>
              <description>threshold LOW (TLO = 1.5 x UI / T&lt;sub&gt;spdifrx_ker_ck&lt;/sub&gt;)
This field contains the current threshold LOW estimation. This value can be used to estimate the sampling rate of the received stream. The accuracy of TLO is limited to a period of the spdifrx_ker_ck. The sampling rate can be estimated as follow:
Sampling Rate = [2 x TLO x T&lt;sub&gt;spdifrx_ker_ck &lt;/sub&gt;+/- T&lt;sub&gt;spdifrx_ker_ck&lt;/sub&gt;] x 2/3
Note that TLO is updated by the hardware when SYNCD goes high, and then every frame.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>13</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>SPI1</name>
      <description>Serial peripheral interface</description>
      <groupName>SPI</groupName>
      <baseAddress>0x42003000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>SPI1</name>
        <description>SPI1 global interrupt</description>
        <value>58</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>SPI/I2S control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SPE</name>
              <description>serial peripheral enable
This bit is set by and cleared by software.
When SPE = 1, SPI data transfer is enabled, SPI_CFG1 and SPI_CFG2 configuration registers, CRCPOLY, UDRDR, IOLOCK bit in the SPI_CR1 register are write protected. They can be changed only when SPE = 0.
When SPE = 0 any SPI operation is stopped and disabled, all the pending requests of the events with enabled interrupt are blocked except the MODF interrupt request (but their pending still propagates the request of the spi_plck clock), the SS output is deactivated at master, the RDY signal keeps not ready status at slave, the internal state machine is reseted, all the FIFOs content is flushed, CRC calculation initialized, receive data register is read zero.
SPE is cleared and cannot be set when MODF error flag is active.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>MASRX</name>
              <description>master automatic suspension in Receive mode 
This bit is set and cleared by software to control continuous SPI transfer in master receiver mode and automatic management in order to avoid overrun condition. 
When SPI communication is suspended by hardware automatically, it may happen that few bits of next frame are already clocked out due to internal synchronization delay. 
This is why, the automatic suspension is not quite reliable when size of data drops below 8 bits. In this case, a safe suspension can be achieved by combination with delay inserted between data frames applied when MIDI parameter keeps a non zero value; sum of data size and the interleaved SPI cycles should always produce interval at length of 8 SPI clock periods at minimum. After software clearing of the SUSP bit, the communication resumes and continues by subsequent bits transaction without any next constraint. Prior the SUSP bit is cleared, the user must release the RxFIFO space as much as possible by reading out all the data packets available at RxFIFO based on the RXP flag indication to prevent any subsequent suspension.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>MASRX</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Automatic suspend in master receive-only mode disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Automatic suspend in master receive-only mode enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CSTART</name>
              <description>master transfer start
This bit can be set by software if SPI is enabled only to start an SPI or I2S/PCM communication. In SPI mode, it is cleared by hardware when end of transfer (EOT) flag is set or when a transaction suspend request is accepted. In I2S/PCM mode, it is also cleared by hardware as described in the Section 80.9.8: Stop sequence.
In SPI mode, the bit is taken into account at master mode only. If transmission is enabled, communication starts or continues only if any data is available in the transmission FIFO.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>CSTART</name>
                <enumeratedValue>
                  <name>NotStarted</name>
                  <description>Do not start master transfer</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Started</name>
                  <description>Start master transfer</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CSUSP</name>
              <description>master suspend request 
This bit reads as zero.
In Master mode, when this bit is set by software, the CSTART bit is reset at the end of the current frame and communication is suspended. The user has to check SUSP flag to check end of the frame transaction.
The Master mode communication must be suspended (using this bit or keeping TXDR empty) before going to Low-power mode. Can be used in SPI or I2S mode.
After software suspension, SUSP flag must be cleared and SPI disabled and re-enabled before the next transaction starts.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues>
                <name>CSUSPW</name>
                <enumeratedValue>
                  <name>NotRequested</name>
                  <description>Do not request master suspend</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Requested</name>
                  <description>Request master suspend</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HDDIR</name>
              <description>Rx/Tx direction at Half-duplex mode
In Half-Duplex configuration the HDDIR bit establishes the Rx/Tx direction of the data transfer. This bit is ignored in Full-Duplex or any Simplex configuration.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>HDDIR</name>
                <enumeratedValue>
                  <name>Receiver</name>
                  <description>Receiver in half duplex mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Transmitter</name>
                  <description>Transmitter in half duplex mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SSI</name>
              <description>internal SS signal input level
This bit has an effect only when the SSM bit is set. The value of this bit is forced onto the peripheral SS input internally and the I/O value of the SS pin is ignored.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SSI</name>
                <enumeratedValue>
                  <name>SlaveSelected</name>
                  <description>0 is forced onto the SS signal and the I/O value of the SS pin is ignored</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SlaveNotSelected</name>
                  <description>1 is forced onto the SS signal and the I/O value of the SS pin is ignored</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CRC33_17</name>
              <description>32-bit CRC polynomial configuration</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>CRC33_17</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Full size (33/17 bit) CRC polynomial is not used</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Full size (33/17 bit) CRC polynomial is used</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RCRCINI</name>
              <description>CRC calculation initialization pattern control for receiver</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RCRCINI</name>
                <enumeratedValue>
                  <name>AllZeros</name>
                  <description>All zeros RX CRC initialization pattern</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AllOnes</name>
                  <description>All ones RX CRC initialization pattern</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TCRCINI</name>
              <description>CRC calculation initialization pattern control for transmitter</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>TCRCINI</name>
                <enumeratedValue>
                  <name>AllZeros</name>
                  <description>All zeros TX CRC initialization pattern</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AllOnes</name>
                  <description>All ones TX CRC initialization pattern</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IOLOCK</name>
              <description>locking the AF configuration of associated I/Os
This bit can be changed by software only when SPI is disabled (SPE = 0). It is cleared by hardware if a MODF event occurs
When this bit is set, SPI_CFG2 register content cannot be modified. This bit is write-protected when SPI is enabled (SPE = 1).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>IOLOCK</name>
                <enumeratedValue>
                  <name>Unlocked</name>
                  <description>IO configuration unlocked</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Locked</name>
                  <description>IO configuration locked</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>SPI/I2S control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TSIZE</name>
              <description>number of data at current transfer
When these bits are changed by software, the SPI must be disabled.
Endless transaction is initialized when CSTART is set while zero value is stored at TSIZE. TSIZE cannot be set to 0xFFFF respective 0x3FFF value when CRC is enabled.
Note: TSIZE[15:10] bits are reserved at limited feature set instances and must be kept at reset 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>CFG1</name>
          <displayName>CFG1</displayName>
          <description>SPI/I2S configuration register 1</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00070007</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DSIZE</name>
              <description>number of bits in at single SPI data frame
.....
Maximum data size can be limited up to 16-bits at some instances. At instances with limited set of features, DSIZE[2:0] bits are reserved and must be kept at reset state. DSIZE[4:3] bits then control next settings of data size:
00xxx: 8-bits
01xxx: 16-bits
10xxx: 24-bits
Note: 11xxx: 32-bits.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>FTHLV</name>
              <description>FIFO threshold level
Defines number of data frames at single data packet. Size of the packet should not exceed 1/2 of FIFO space.
SPI interface is more efficient if configured packet sizes are aligned with data register access parallelism: 
If SPI data register is accessed as a 16-bit register and DSIZE UNDER OR EQUAL 8 bit, better to select FTHLV = 2, 4, 6.
If SPI data register is accessed as a 32-bit register and DSIZE&gt; 8 bit, better to select FTHLV = 2, 4, 6, while if DSIZE UNDER OR EQUAL 8bit, better to select FTHLV = 4, 8, 12.
Note: FTHLV[3:2] bits are reserved at instances with limited set of features</description>
              <bitOffset>5</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>FTHLV</name>
                <enumeratedValue>
                  <name>OneFrame</name>
                  <description>1 frame</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TwoFrames</name>
                  <description>2 frames</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ThreeFrames</name>
                  <description>3 frames</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FourFrames</name>
                  <description>4 frames</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FiveFrames</name>
                  <description>5 frames</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SixFrames</name>
                  <description>6 frames</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SevenFrames</name>
                  <description>7 frames</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>EightFrames</name>
                  <description>8 frames</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NineFrames</name>
                  <description>9 frames</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TenFrames</name>
                  <description>10 frames</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ElevenFrames</name>
                  <description>11 frames</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TwelveFrames</name>
                  <description>12 frames</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ThirteenFrames</name>
                  <description>13 frames</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FourteenFrames</name>
                  <description>14 frames</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FifteenFrames</name>
                  <description>15 frames</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SixteenFrames</name>
                  <description>16 frames</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDRCFG</name>
              <description>behavior of slave transmitter at underrun condition
For more details see Figure 962: Optional configurations of slave detecting underrun condition.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>UDRCFG</name>
                <enumeratedValue>
                  <name>Constant</name>
                  <description>Slave sends a constant underrun pattern</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>RepeatReceived</name>
                  <description>Slave repeats last received data frame from master</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXDMAEN</name>
              <description>Rx DMA stream enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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 DMA stream enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>CRCSIZE</name>
              <description>length of CRC frame to be transacted and compared
Most significant bits are taken into account from polynomial calculation when CRC result is transacted or compared. The length of the polynomial is not affected by this setting.
.....
The value must be set equal or multiply of data size (DSIZE[4:0]). Its maximum size corresponds to DSIZE maximum at the instance.
Note: The most significant bit at CRCSIZE bit field is reserved at the peripheral instances where data size is limited to 16-bit.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>CRCEN</name>
              <description>hardware CRC computation enable</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>MBR</name>
              <description>master baud rate prescaler setting
Note: MBR setting is considered at slave working at TI mode, too (see Section 80.5.1: TI mode).</description>
              <bitOffset>28</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>MBR</name>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>f_spi_ker_ck / 2</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>f_spi_ker_ck / 4</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>f_spi_ker_ck / 8</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>f_spi_ker_ck / 16</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div32</name>
                  <description>f_spi_ker_ck / 32</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div64</name>
                  <description>f_spi_ker_ck / 64</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div128</name>
                  <description>f_spi_ker_ck / 128</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div256</name>
                  <description>f_spi_ker_ck / 256</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BPASS</name>
              <description>bypass of the prescaler at master baud rate clock generator</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>BPASS</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Bypass is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Bypass is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CFG2</name>
          <displayName>CFG2</displayName>
          <description>SPI/I2S configuration register 2</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MSSI</name>
              <description>Master SS Idleness
Specifies an extra delay, expressed in number of SPI clock cycle periods, inserted additionally between active edge of SS opening a session and the beginning of the first data frame of the session in Master mode when SSOE is enabled.
...
This feature is not supported in TI mode.
Note: To include the delay, the SPI must be disabled and re-enabled between sessions.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MIDI</name>
              <description>master Inter-Data Idleness
Specifies minimum time delay (expressed in SPI clock cycles periods) inserted between two consecutive data frames in Master mode.
...
Note: This feature is not supported in TI mode.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>RDIOM</name>
              <description>RDY signal input/output management
Note: When DSIZE at the SPI_CFG1 register is configured shorter than 8-bit, the RDIOM bit must be kept at zero.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RDIOM</name>
                <enumeratedValue>
                  <name>Active</name>
                  <description>RDY signal is defined internally fixed as permanently active (RDIOP setting has no effect)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Pin</name>
                  <description>RDY signal is overtaken from alternate function input (at master case) or output (at slave case) of the dedicated pin (RDIOP setting takes effect)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RDIOP</name>
              <description>RDY signal input/output polarity</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RDIOP</name>
                <enumeratedValue>
                  <name>High</name>
                  <description>high level of the signal means the slave is ready for communication</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Low</name>
                  <description>low level of the signal means the slave is ready for communication</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IOSWP</name>
              <description>swap functionality of MISO and MOSI pins
When this bit is set, the function of MISO and MOSI pins alternate functions are inverted. 
Original MISO pin becomes MOSI and original MOSI pin becomes MISO.
Note: This bit can be also used in PCM and I2S modes to swap SDO and SDI pins.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>IOSWP</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>MISO and MOSI not swapped</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>MISO and MOSI swapped</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMM</name>
              <description>SPI Communication Mode</description>
              <bitOffset>17</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>COMM</name>
                <enumeratedValue>
                  <name>FullDuplex</name>
                  <description>Full duplex</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Transmitter</name>
                  <description>Simplex transmitter only</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Receiver</name>
                  <description>Simplex receiver only</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HalfDuplex</name>
                  <description>Half duplex</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SP</name>
              <description>serial protocol
others: reserved, must not be used</description>
              <bitOffset>19</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SP</name>
                <enumeratedValue>
                  <name>Motorola</name>
                  <description>Motorola SPI protocol</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI</name>
                  <description>TI SPI protocol</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MASTER</name>
              <description>SPI Master</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>MASTER</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>LSBFRST</name>
              <description>data frame format
Note: This bit can be also used in PCM and I2S modes.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>LSBFRST</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>CPHA</name>
              <description>clock phase</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
            <field>
              <name>CPOL</name>
              <description>clock polarity</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>SSM</name>
              <description>software management of SS signal input
When master uses hardware SS output (SSM = 0 and SSOE = 1) the SS signal input is forced to not active state internally to prevent master mode fault error.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>SSIOP</name>
              <description>SS input/output polarity</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SSIOP</name>
                <enumeratedValue>
                  <name>ActiveLow</name>
                  <description>Low level is active for SS signal</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveHigh</name>
                  <description>High level is active for SS signal</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SSOE</name>
              <description>SS output enable
This bit is taken into account in Master mode only</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>SSOM</name>
              <description>SS output management in Master mode
This bit is taken into account in Master mode when SSOE is enabled. It allows the SS output to be configured between two consecutive data transfers.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SSOM</name>
                <enumeratedValue>
                  <name>Asserted</name>
                  <description>SS is asserted until data transfer complete</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotAsserted</name>
                  <description>Data frames interleaved with SS not asserted during MIDI</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>AFCNTR</name>
              <description>alternate function GPIOs control
This bit is taken into account when SPE = 0 only
When SPI must be disabled temporary for a specific configuration reason (for example CRC reset, CPHA or HDDIR change) setting this bit prevents any glitches on the associated outputs configured at alternate function mode by keeping them forced at state corresponding the current SPI configuration.
Note: This bit can be also used in PCM and I2S modes.
Note: The bit AFCNTR must not be set, when the block is in slave mode.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>AFCNTR</name>
                <enumeratedValue>
                  <name>NotControlled</name>
                  <description>Peripheral takes no control of GPIOs while disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Controlled</name>
                  <description>Peripheral controls GPIOs while disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>IER</name>
          <displayName>IER</displayName>
          <description>SPI/I2S interrupt enable register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXPIE</name>
              <description>RXP interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RXPIE</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>TXPIE</name>
              <description>TXP interrupt enable
TXPIE is set by software and cleared by TXTF flag set event.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="RXPIE"/>
            </field>
            <field>
              <name>DXPIE</name>
              <description>DXP interrupt enabled
DXPIE is set by software and cleared by TXTF flag set event.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="RXPIE"/>
            </field>
            <field>
              <name>EOTIE</name>
              <description>EOT, SUSP and TXC interrupt enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="RXPIE"/>
            </field>
            <field>
              <name>TXTFIE</name>
              <description>TXTFIE interrupt enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="RXPIE"/>
            </field>
            <field>
              <name>UDRIE</name>
              <description>UDR interrupt enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="RXPIE"/>
            </field>
            <field>
              <name>OVRIE</name>
              <description>OVR interrupt enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="RXPIE"/>
            </field>
            <field>
              <name>CRCEIE</name>
              <description>CRC error interrupt enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="RXPIE"/>
            </field>
            <field>
              <name>TIFREIE</name>
              <description>TIFRE interrupt enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="RXPIE"/>
            </field>
            <field>
              <name>MODFIE</name>
              <description>mode Fault interrupt enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="RXPIE"/>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>SPI/I2S status register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00001002</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXP</name>
              <description>Rx-packet available
The flag is changed by hardware. It monitors the total number of data currently available at RxFIFO if SPI is enabled. RXP value depends on the FIFO threshold (FTHLV[3:0]), data frame size (DSIZE[4:0] in SPI mode and DATLEN[1:0] in I2S/PCM mode), and actual communication flow. If the data packet is read by performing consecutive read operations from SPI_RXDR, RXP flag must be checked again once a complete data packet is read out from RxFIFO.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RXP</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>TXP</name>
              <description>Tx-packet space available
TXP flag can be changed only by hardware. Its value depends on the physical size of the FIFO and its threshold (FTHLV[3:0]), data frame size (DSIZE[4:0] in SPI mode and respective DATLEN[1:0] in I2S/PCM mode), and actual communication flow. If the data packet is stored by performing consecutive write operations to SPI_TXDR, TXP flag must be checked again once a complete data packet is stored at TxFIFO. TXP is set despite SPI TxFIFO becomes inaccessible when SPI is reset or disabled.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TXP</name>
                <enumeratedValue>
                  <name>Full</name>
                  <description>Tx buffer full</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotFull</name>
                  <description>Tx buffer not full</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DXP</name>
              <description>duplex packet
DXP flag is set whenever both TXP and RXP flags are set regardless SPI mode.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>DXP</name>
                <enumeratedValue>
                  <name>Unavailable</name>
                  <description>Duplex packet unavailable: no space for transmission and/or no data received</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Available</name>
                  <description>Duplex packet available: space for transmission and data received</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOT</name>
              <description>end of transfer
EOT is set by hardware as soon as a full transfer is complete, that is when SPI is re-enabled or when TSIZE number of data have been transmitted and/or received on the SPI. EOT is cleared when SPI is re-enabled or by writing 1 to EOTC bit of SPI_IFCR optionally.
EOT flag triggers an interrupt if EOTIE bit is set.
If DXP flag is used until TXTF flag is set and DXPIE is cleared, EOT can be used to download the last packets contained into RxFIFO in one-shot.
In master, EOT event terminates the data transaction and handles SS output optionally. When CRC is applied, the EOT event is extended over the CRC frame transaction.
To restart the internal state machine properly, SPI is strongly suggested to be disabled and re-enabled before next transaction starts despite its setting is not changed.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>EOT</name>
                <enumeratedValue>
                  <name>NotCompleted</name>
                  <description>Transfer ongoing or not started</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Completed</name>
                  <description>Transfer complete</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXTF</name>
              <description>transmission transfer filled
TXTF is set by hardware as soon as all of the data packets in a transfer have been submitted for transmission by application software or DMA, that is when TSIZE number of data have been pushed into the TxFIFO.
This bit is cleared by software write 1 to TXTFC bit of SPI_IFCR exclusively.
TXTF flag triggers an interrupt if TXTFIE bit is set.
TXTF setting clears the TXPIE and DXPIE masks so to off-load application software from calculating when to disable TXP and DXP interrupts.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TXTF</name>
                <enumeratedValue>
                  <name>NotCompleted</name>
                  <description>Transmission buffer incomplete</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Completed</name>
                  <description>Transmission buffer filled with at least one transfer</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDR</name>
              <description>underrun
This bit is cleared when SPI is re-enabled or by writing 1 to UDRC bit of SPI_IFCR optionally.
Note: In SPI mode, the UDR flag applies to Slave mode only. In I2S/PCM mode, (when available) this flag applies to Master and Slave mode</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>UDR</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>OVR</name>
              <description>overrun
This bit is cleared when SPI is re-enabled or by writing 1 to OVRC bit of SPI_IFCR optionally.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>OVR</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>CRCE</name>
              <description>CRC error
This bit is cleared when SPI is re-enabled or by writing 1 to CRCEC bit of SPI_IFCR optionally.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>CRCE</name>
                <enumeratedValue>
                  <name>NoError</name>
                  <description>No CRC error detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>CRC error detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIFRE</name>
              <description>TI frame format error
This bit is cleared by writing 1 to TIFREC bit of SPI_IFCR exclusively.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TIFRE</name>
                <enumeratedValue>
                  <name>NoError</name>
                  <description>TI frame format error detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>TI frame format error detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MODF</name>
              <description>mode fault
When MODF is set, SPE and IOLOCK bits of SPI_CR1 register are reset and setting SPE again is blocked until MODF is cleared. 
This bit is cleared by writing 1 to MODFC bit of SPI_IFCR exclusively.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>MODF</name>
                <enumeratedValue>
                  <name>NoFault</name>
                  <description>No mode fault detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Fault</name>
                  <description>Mode fault detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SUSP</name>
              <description>suspension status 
In Master mode, SUSP is set by hardware either as soon as the current frame is completed after CSUSP request is done or at master automatic suspend receive mode (MASRX bit is set at SPI_CR1 register) on RxFIFO full condition.
SUSP generates an interrupt when EOTIE is set.
This bit must be cleared prior SPI is disabled and this is done by writing 1 to SUSPC bit of SPI_IFCR exclusively.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>SUSP</name>
                <enumeratedValue>
                  <name>NotSuspended</name>
                  <description>Master not suspended</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Suspended</name>
                  <description>Master suspended</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXC</name>
              <description>TxFIFO transmission complete
The flag behavior depends on TSIZE setting.
When TSIZE = 0, the TXC is changed by hardware exclusively and it raises each time the TxFIFO becomes empty and there is no activity on the bus.
If TSIZE different from 0 there is no specific reason to monitor TXC as it just copies the EOT flag value including its software clearing. The TXC generates an interrupt when EOTIE is set.
This flag is set when SPI is reset or disabled.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TXC</name>
                <enumeratedValue>
                  <name>Ongoing</name>
                  <description>Transmission ongoing</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Completed</name>
                  <description>Transmission completed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXPLVL</name>
              <description>RxFIFO packing level 
When RXWNE = 0 and data size is set up to 16-bit, the value gives number of remaining data frames persisting at RxFIFO.
Note: (*): Possible value when data size is set up to 8-bit only.
When data size is greater than 16-bit, these bits are always read as 00. In that consequence, the single data frame received at the FIFO cannot be detected neither by RWNE nor by RXPLVL bits if data size is set from 17 to 24 bits. The user must then apply other methods to detect the number of data received, such as monitor the EOT event when TSIZE &gt; 0 or RXP events when FTHLV = 0.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RXPLVL</name>
                <enumeratedValue>
                  <name>ZeroFrames</name>
                  <description>Zero frames beyond packing ratio available</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>OneFrame</name>
                  <description>One frame beyond packing ratio available</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TwoFrames</name>
                  <description>Two frame beyond packing ratio available</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ThreeFrames</name>
                  <description>Three frame beyond packing ratio available</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXWNE</name>
              <description>RxFIFO word not empty 
Note: This bit value does not depend on DSIZE setting and keeps together with RXPLVL[1:0] information about RxFIFO occupancy by residual data.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RXWNE</name>
                <enumeratedValue>
                  <name>LessThan32</name>
                  <description>Less than 32-bit data frame received</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AtLeast32</name>
                  <description>At least 32-bit data frame received</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CTSIZE</name>
              <description>number of data frames remaining in current TSIZE session
The value is not quite reliable when traffic is ongoing on bus .
Note: CTSIZE[15:0] bits are not available in instances with limited set of features.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-only</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>IFCR</name>
          <displayName>IFCR</displayName>
          <description>SPI/I2S interrupt/status flags clear register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>EOTC</name>
              <description>end of transfer flag clear
Writing a 1 into this bit clears EOT flag in the SPI_SR register</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>EOTCW</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear interrupt flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXTFC</name>
              <description>transmission transfer filled flag clear
Writing a 1 into this bit clears TXTF flag in the SPI_SR register</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="EOTCW"/>
            </field>
            <field>
              <name>UDRC</name>
              <description>underrun flag clear
Writing a 1 into this bit clears UDR flag in the SPI_SR register</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="EOTCW"/>
            </field>
            <field>
              <name>OVRC</name>
              <description>overrun flag clear
Writing a 1 into this bit clears OVR flag in the SPI_SR register</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="EOTCW"/>
            </field>
            <field>
              <name>CRCEC</name>
              <description>CRC error flag clear
Writing a 1 into this bit clears CRCE flag in the SPI_SR register</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="EOTCW"/>
            </field>
            <field>
              <name>TIFREC</name>
              <description>TI frame format error flag clear
Writing a 1 into this bit clears TIFRE flag in the SPI_SR register</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="EOTCW"/>
            </field>
            <field>
              <name>MODFC</name>
              <description>mode fault flag clear
Writing a 1 into this bit clears MODF flag in the SPI_SR register</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="EOTCW"/>
            </field>
            <field>
              <name>SUSPC</name>
              <description>Suspend flag clear
Writing a 1 into this bit clears SUSP flag in the SPI_SR register</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="EOTCW"/>
            </field>
          </fields>
        </register>
        <register>
          <name>TXDR</name>
          <displayName>TXDR</displayName>
          <description>SPI/I2S transmit data register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXDR</name>
              <description>transmit data register
The register serves as an interface with TxFIFO. A write to it accesses TxFIFO.
Note: In SPI mode, data is always right-aligned. Alignment of data at I2S mode depends on DATLEN and DATFMT setting. Unused bits are ignored when writing to the register, and read as zero when the register is read.
Note: DR can be accessed byte-wise (8-bit access): in this case only one data-byte is written by single access.
Note: halfword-wise (16 bit access) in this case 2 data-bytes or 1 halfword-data can be written by single access.
Note: word-wise (32 bit access). In this case 4 data-bytes or 2 halfword-data or word-data can be written by single access.
Note: Write access of this register less than the configured data size is forbidden.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>write-only</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>TXDR16</name>
          <description>Direct 16-bit access to transmit data register</description>
          <alternateRegister>TXDR</alternateRegister>
          <addressOffset>0x20</addressOffset>
          <size>0x10</size>
          <access>write-only</access>
          <fields>
            <field>
              <name>TXDR</name>
              <description>Transmit data register</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>TXDR8</name>
          <description>Direct 8-bit access to transmit data register</description>
          <alternateRegister>TXDR</alternateRegister>
          <addressOffset>0x20</addressOffset>
          <size>0x8</size>
          <access>write-only</access>
          <fields>
            <field>
              <name>TXDR</name>
              <description>Transmit data 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>SPI/I2S receive data register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXDR</name>
              <description>receive data register
The register serves as an interface with RxFIFO. When it is read, RxFIFO is accessed.
Note: In SPI mode, data is always right-aligned. Alignment of data at I2S mode depends on DATLEN and DATFMT setting. Unused bits are read as zero when the register is read. Writing to the register is ignored.
Note: DR can be accessed byte-wise (8-bit access): in this case only one data-byte is read by single access
Note: halfword-wise (16 bit access) in this case 2 data-bytes or 1 halfword-data can be read by single access
Note: word-wise (32 bit access). In this case 4 data-bytes or 2 halfword-data or word-data can be read by single access.
Note: Read access of this register less than the configured data size is forbidden.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>RXDR16</name>
          <description>Direct 16-bit access to receive data register</description>
          <alternateRegister>RXDR</alternateRegister>
          <addressOffset>0x30</addressOffset>
          <size>0x10</size>
          <access>read-only</access>
          <fields>
            <field>
              <name>RXDR</name>
              <description>Receive data register</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>RXDR8</name>
          <description>Direct 8-bit access to receive data register</description>
          <alternateRegister>RXDR</alternateRegister>
          <addressOffset>0x30</addressOffset>
          <size>0x8</size>
          <access>read-only</access>
          <fields>
            <field>
              <name>RXDR</name>
              <description>Receive data register</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CRCPOLY</name>
          <displayName>CRCPOLY</displayName>
          <description>SPI/I2S polynomial register</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000107</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CRCPOLY</name>
              <description>CRC polynomial register
This register contains the polynomial for the CRC calculation.
The default 9-bit polynomial setting 0x107 corresponds to default 8-bit setting of DSIZE. It is compatible with setting 0x07 used in other ST products with fixed length of the polynomial string, where the most significant bit of the string is always kept hidden.
Length of the polynomial is given by the most significant bit of the value stored in this register. It must be set greater than DSIZE. CRC33_17 bit must be set additionally with CRCPOLY register when DSIZE is configured to maximum 32-bit or 16-bit size and CRC is enabled (to keep polynomial length grater than data size).
Note: CRCPOLY[31:16] bits are reserved at instances with data size limited to 16-bit. There is no constrain when 32-bit access is applied at these addresses. Reserved bits 31-16 are always read zero while any write to them is ignored.</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>TXCRC</name>
          <displayName>TXCRC</displayName>
          <description>SPI/I2S transmitter CRC register</description>
          <addressOffset>0x44</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXCRC</name>
              <description>CRC register for transmitter
When CRC calculation is enabled, the TXCRC[31:0] bits contain the computed CRC value of the subsequently transmitted bytes. CRC calculation is initialized when the CRCEN bit of SPI_CR1 is written to 1 or when a data block is transacted completely. The CRC is calculated serially using the polynomial programmed in the SPI_CRCPOLY register.
The number of bits considered at calculation depends on SPI_CRCPOLY register and CRCSIZE bits settings at SPI_CFG1 register.
Note: A read to this register when the communication is ongoing may return an incorrect value.
Note: not used for the I&lt;sup&gt;2&lt;/sup&gt;S mode.
Note: TXCRC[31-16] bits are reserved at instances with data size limited to 16-bit. There is no constrain when 32-bit access is applied at these addresses. Reserved bits 31-16 are always read zero while any write to them is ignored.
Note: The configuration of CRCSIZE bit field is not taken into account when the content of this register is read by software. No masking is applied for unused bits in this case.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RXCRC</name>
          <displayName>RXCRC</displayName>
          <description>SPI/I2S receiver CRC register</description>
          <addressOffset>0x48</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXCRC</name>
              <description>CRC register for receiver
When CRC calculation is enabled, the RXCRC[31:0] bits contain the computed CRC value of the subsequently received bytes. CRC calculation is initialized when the CRCEN bit of SPI_CR1 is written to 1 or when a data block is transacted completely. The CRC is calculated serially using the polynomial programmed in the SPI_CRCPOLY register.
The number of bits considered at calculation depends on SPI_CRCPOLY register and CRCSIZE bits settings at SPI_CFG1 register.
Note: A read to this register when the communication is ongoing may return an incorrect value.
Note: Not used for the I&lt;sup&gt;2&lt;/sup&gt;S mode.
Note: RXCRC[31-16] bits are reserved at the peripheral instances with data size limited to 16-bit. There is no constrain when 32-bit access is applied at these addresses. Reserved bits 31-16 are always read zero while any write to them is ignored.
Note: The configuration of CRCSIZE bit field is not taken into account when the content of this register is read by software. No masking is applied for unused bits in this case.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>UDRDR</name>
          <displayName>UDRDR</displayName>
          <description>SPI/I2S underrun data register</description>
          <addressOffset>0x4C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>UDRDR</name>
              <description>data at slave underrun condition
The register is taken into account in Slave mode and at underrun condition only. The number of bits considered depends on DSIZE bit settings of the SPI_CFG1 register. Underrun condition handling depends on setting UDRCFG bit at SPI_CFG1 register.
Note: UDRDR[31-16] bits are reserved at the peripheral instances with data size limited to 16-bit. There is no constraint when 32-bit access is applied at these addresses. Reserved bits 31-16 are always read zero while any write to them is ignored.</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>I2SCFGR</name>
          <displayName>I2SCFGR</displayName>
          <description>SPI/I2S configuration register</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>I2SMOD</name>
              <description>I2S mode selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>I2SMOD</name>
                <enumeratedValue>
                  <name>SPI</name>
                  <description>SPI mode selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>I2S</name>
                  <description>I2S/PCM mode selected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2SCFG</name>
              <description>I2S configuration mode
others, not used</description>
              <bitOffset>1</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>I2SCFG</name>
                <enumeratedValue>
                  <name>SlaveTransmit</name>
                  <description>Slave, transmit</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SlaveReceive</name>
                  <description>Slave, recteive</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MasterTransmit</name>
                  <description>Master, transmit</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MasterReceive</name>
                  <description>Master, receive</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SlaveFullDuplex</name>
                  <description>Slave, full duplex</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MasterFullDuplex</name>
                  <description>Master, full duplex</description>
                  <value>5</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2SSTD</name>
              <description>I&lt;sup&gt;2&lt;/sup&gt;S standard selection
For more details on I&lt;sup&gt;2&lt;/sup&gt;S standards, refer to Section 80.9.5: Supported audio protocols</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>I2SSTD</name>
                <enumeratedValue>
                  <name>Philips</name>
                  <description>I2S Philips standard</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LeftAligned</name>
                  <description>MSB/left justified standard</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>RightAligned</name>
                  <description>LSB/right 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>
              <access>read-write</access>
              <enumeratedValues>
                <name>PCMSYNC</name>
                <enumeratedValue>
                  <name>Short</name>
                  <description>Short PCM frame synchronization</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Long</name>
                  <description>Long PCM frame synchronization</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DATLEN</name>
              <description>data length to be transferred. Data width of 24 and 32 bits are not always supported, (DATLEN = 01 or 10), refer to Section 80.3: SPI implementation to check the supported data size.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>DATLEN</name>
                <enumeratedValue>
                  <name>Bits16</name>
                  <description>16 bit data length</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bits24</name>
                  <description>24 bit data length</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bits32</name>
                  <description>32 bit data length</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CHLEN</name>
              <description>channel length (number of bits per audio channel)</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>CHLEN</name>
                <enumeratedValue>
                  <name>Bits16</name>
                  <description>16 bit per channel</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bits32</name>
                  <description>32 bit per channel</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CKPOL</name>
              <description>serial audio clock polarity</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>CKPOL</name>
                <enumeratedValue>
                  <name>SampleOnRising</name>
                  <description>Signals are sampled on rising and changed on falling clock edges</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SampleOnFalling</name>
                  <description>Signals are sampled on falling and changed on rising clock edges</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FIXCH</name>
              <description>fixed channel length in slave</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>FIXCH</name>
                <enumeratedValue>
                  <name>NotFixed</name>
                  <description>The channel length in slave mode is different from 16 or 32 bits (CHLEN not taken into account)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Fixed</name>
                  <description>The channel length in slave mode is supposed to be 16 or 32 bits (according to CHLEN)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WSINV</name>
              <description>word select inversion
This bit is used to invert the default polarity of WS signal.
In MSB or LSB justified mode, the left channel is transferred when WS is HIGH, and the right channel when WS is LOW.
In PCM short mode the data transfer starts at the falling edge of WS, while it starts at the rising edge of WS in PCM long mode.
In MSB or LSB justified mode, the left channel is transfered when WS is LOW, and right channel when WS is HIGH. 
In PCM short mode the data transfer starts at the rising edge of WS, while it starts at the falling edge of WS in PCM long mode.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>WSINV</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Word select inversion disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Word select inversion enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DATFMT</name>
              <description>data format</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>DATFMT</name>
                <enumeratedValue>
                  <name>RightAligned</name>
                  <description>The data inside RXDR and TXDR are right aligned</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LeftAligned</name>
                  <description>The data inside RXDR and TXDR are left aligned</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2SDIV</name>
              <description>I&lt;sup&gt;2&lt;/sup&gt;S linear prescaler
I2SDIV can take any values except the value 1, when ODD is also equal to 1.
Refer to Section 80.9.9: Clock generator for details</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ODD</name>
              <description>odd factor for the prescaler
Refer to Section 80.9.9: Clock generator for details</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>MCKOE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Master clock output disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Master clock output 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>59</value>
      </interrupt>
    </peripheral>
    <peripheral derivedFrom="SPI1">
      <name>SPI3</name>
      <baseAddress>0x40003C00</baseAddress>
      <interrupt>
        <name>SPI3</name>
        <description>SPI3 global interrupt</description>
        <value>60</value>
      </interrupt>
    </peripheral>
    <peripheral derivedFrom="SPI1">
      <name>SPI4</name>
      <baseAddress>0x42003400</baseAddress>
      <interrupt>
        <name>SPI4</name>
        <description>SPI4 global interrupt</description>
        <value>61</value>
      </interrupt>
    </peripheral>
    <peripheral derivedFrom="SPI1">
      <name>SPI5</name>
      <baseAddress>0x42005000</baseAddress>
      <interrupt>
        <name>SPI5</name>
        <description>SPI5 global interrupt</description>
        <value>62</value>
      </interrupt>
    </peripheral>
    <peripheral derivedFrom="SPI1">
      <name>SPI6</name>
      <baseAddress>0x58001400</baseAddress>
      <interrupt>
        <name>SPI6</name>
        <description>SPI6 global interrupt</description>
        <value>63</value>
      </interrupt>
    </peripheral>
    <peripheral>
      <name>TAMP</name>
      <description>TAMP register block</description>
      <groupName>TAMP</groupName>
      <baseAddress>0x58004400</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>TAMP</name>
        <description>RTC tamper and timestamp interrupts through the EXTI line</description>
        <value>13</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>TAMP control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TAMP1E</name>
              <description>Tamper detection on TAMP_IN1 enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP2E</name>
              <description>Tamper detection on TAMP_IN2 enable&lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP3E</name>
              <description>Tamper detection on TAMP_IN3 enable&lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP4E</name>
              <description>Tamper detection on TAMP_IN4 enable&lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP5E</name>
              <description>Tamper detection on TAMP_IN5 enable&lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP6E</name>
              <description>Tamper detection on TAMP_IN6 enable&lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP7E</name>
              <description>Tamper detection on TAMP_IN7 enable&lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP8E</name>
              <description>Tamper detection on TAMP_IN8 enable&lt;sup&gt;(1)&lt;/sup&gt;</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP1E</name>
              <description>Internal tamper 1 enable</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP2E</name>
              <description>Internal tamper 2 enable</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP3E</name>
              <description>Internal tamper 3 enable</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP4E</name>
              <description>Internal tamper 4 enable</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP5E</name>
              <description>Internal tamper 5 enable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP6E</name>
              <description>Internal tamper 6 enable</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP7E</name>
              <description>Internal tamper 7 enable</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP8E</name>
              <description>Internal tamper 8 enable</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP9E</name>
              <description>Internal tamper 9 enable</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP11E</name>
              <description>Internal tamper 11 enable</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP15E</name>
              <description>Internal tamper 15 enable</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>TAMP control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TAMP1NOER</name>
              <description>Tamper 1 no erase</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP2NOER</name>
              <description>Tamper 2 no erase</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP3NOER</name>
              <description>Tamper 3 no erase</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP4NOER</name>
              <description>Tamper 4 no erase</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP5NOER</name>
              <description>Tamper 5 no erase</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP6NOER</name>
              <description>Tamper 6 no erase</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP7NOER</name>
              <description>Tamper 7 no erase</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP8NOER</name>
              <description>Tamper 8 no erase</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP1MSK</name>
              <description>Tamper 1 mask
The tamper 1 interrupt must not be enabled when TAMP1MSK is set.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP2MSK</name>
              <description>Tamper 2 mask
The tamper 2 interrupt must not be enabled when TAMP2MSK is set.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP3MSK</name>
              <description>Tamper 3 mask
The tamper 3 interrupt must not be enabled when TAMP3MSK is set.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKBLOCK</name>
              <description>Backup registers and device secrets&lt;sup&gt;(1)&lt;/sup&gt; access blocked</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKERASE</name>
              <description>Backup registers and device secrets&lt;sup&gt;(1)&lt;/sup&gt; erase
Writing 1 to this bit reset the backup registers and device secrets&lt;sup&gt;(1)&lt;/sup&gt;. Writing 0 has no effect. This bit is always read as 0.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>TAMP1TRG</name>
              <description>Active level for tamper 1 input
If TAMPFLT = 00 Tamper 1 input rising edge triggers a tamper detection event.
If TAMPFLT = 00 Tamper 1 input falling edge triggers a tamper detection event.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP2TRG</name>
              <description>Active level for tamper 2 input
If TAMPFLT = 00 Tamper 2 input rising edge triggers a tamper detection event.
If TAMPFLT = 00 Tamper 2 input falling edge triggers a tamper detection event.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP3TRG</name>
              <description>Active level for tamper 3 input
If TAMPFLT = 00 Tamper 3 input rising edge triggers a tamper detection event.
If TAMPFLT = 00 Tamper 3 input falling edge triggers a tamper detection event.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP4TRG</name>
              <description>Active level for tamper 4 input (active mode disabled)
If TAMPFLT = 00 Tamper 4 input rising edge triggers a tamper detection event.
If TAMPFLT = 00 Tamper 4 input falling edge triggers a tamper detection event.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP5TRG</name>
              <description>Active level for tamper 5 input (active mode disabled)
If TAMPFLT = 00 Tamper 5 input rising edge triggers a tamper detection event.
If TAMPFLT = 00 Tamper 5 input falling edge triggers a tamper detection event.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP6TRG</name>
              <description>Active level for tamper 6 input (active mode disabled)
If TAMPFLT = 00 Tamper 6 input rising edge triggers a tamper detection event.
If TAMPFLT = 00 Tamper 6 input falling edge triggers a tamper detection event.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP7TRG</name>
              <description>Active level for tamper 7 input (active mode disabled)
If TAMPFLT = 00 Tamper 7 input rising edge triggers a tamper detection event.
If TAMPFLT = 00 Tamper 7 input falling edge triggers a tamper detection event.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP8TRG</name>
              <description>Active level for tamper 8 input (active mode disabled)
If TAMPFLT = 00 Tamper 8 input rising edge triggers a tamper detection event.
If TAMPFLT  = 00 Tamper 8 input falling edge triggers a tamper detection event.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CR3</name>
          <displayName>CR3</displayName>
          <description>TAMP control register 3</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ITAMP1NOER</name>
              <description>Internal Tamper 1 no erase</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP2NOER</name>
              <description>Internal Tamper 2 no erase</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP3NOER</name>
              <description>Internal Tamper 3 no erase</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP4NOER</name>
              <description>Internal Tamper 4 no erase</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP5NOER</name>
              <description>Internal Tamper 5 no erase</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP6NOER</name>
              <description>Internal Tamper 6 no erase</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP7NOER</name>
              <description>Internal Tamper 7 no erase</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP8NOER</name>
              <description>Internal Tamper 8 no erase</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP9NOER</name>
              <description>Internal Tamper 9 no erase</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP11NOER</name>
              <description>Internal Tamper 11 no erase</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP15NOER</name>
              <description>Internal Tamper 15 no erase</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>FLTCR</name>
          <displayName>FLTCR</displayName>
          <description>TAMP filter control register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TAMPFREQ</name>
              <description>Tamper sampling frequency
Determines the frequency at which each of the TAMP_INx inputs are sampled.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMPFLT</name>
              <description>TAMP_INx filter count
These bits determines the number of consecutive samples at the specified level (TAMP*TRG) needed to activate a tamper event. TAMPFLT is valid for each of the TAMP_INx inputs.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMPPRCH</name>
              <description>TAMP_INx precharge duration
These bit determines the duration of time during which the pull-up/is activated before each sample. TAMPPRCH is valid for each of the TAMP_INx inputs.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMPPUDIS</name>
              <description>TAMP_INx pull-up disable
This bit determines if each of the TAMPx pins are precharged before each sample.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ATCR1</name>
          <displayName>ATCR1</displayName>
          <description>TAMP active tamper control register 1</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00070000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TAMP1AM</name>
              <description>Tamper 1 active mode</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP2AM</name>
              <description>Tamper 2 active mode</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP3AM</name>
              <description>Tamper 3 active mode</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP4AM</name>
              <description>Tamper 4 active mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP5AM</name>
              <description>Tamper 5 active mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP6AM</name>
              <description>Tamper 6 active mode</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP7AM</name>
              <description>Tamper 7 active mode</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP8AM</name>
              <description>Tamper 8 active mode</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ATOSEL1</name>
              <description>Active tamper shared output 1 selection
The selected output must be available in the package pinout</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ATOSEL2</name>
              <description>Active tamper shared output 2 selection
The selected output must be available in the package pinout</description>
              <bitOffset>10</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ATOSEL3</name>
              <description>Active tamper shared output 3 selection
The selected output must be available in the package pinout</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ATOSEL4</name>
              <description>Active tamper shared output 4 selection
The selected output must be available in the package pinout.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ATCKSEL</name>
              <description>Active tamper RTC asynchronous prescaler clock selection
These bits selects the RTC asynchronous prescaler stage output. The selected clock is CK_ATPRE. 
...
Note: These bits can be written only when all active tampers are disabled. The write protection remains for up to 1.5 CK_ATPRE cycles after all the active tampers are disable.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ATPER</name>
              <description>Active tamper output change period
The tamper output is changed every CK_ATPER = (2&lt;sup&gt;ATPER &lt;/sup&gt;x CK_ATPRE) cycles. Refer to Table 386: Minimum ATPER value.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ATOSHARE</name>
              <description>Active tamper output sharing
TAMP_IN1 is compared with TAMPOUTSEL1
TAMP_IN2 is compared with TAMPOUTSEL2
TAMP_IN3 is compared with TAMPOUTSEL3
TAMP_IN4 is compared with TAMPOUTSEL4
TAMP_IN5 is compared with TAMPOUTSEL5
TAMP_IN6 is compared with TAMPOUTSEL6
TAMP_IN7 is compared with TAMPOUTSEL7
TAMP_IN8 is compared with TAMPOUTSEL8</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FLTEN</name>
              <description>Active tamper filter enable</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ATSEEDR</name>
          <displayName>ATSEEDR</displayName>
          <description>TAMP active tamper seed register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SEED</name>
              <description>Pseudo-random generator seed value
This register must be written four times with 32-bit values to provide the 128-bit seed to the PRNG. Writing to this register automatically sends the seed value to the PRNG.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ATOR</name>
          <displayName>ATOR</displayName>
          <description>TAMP active tamper output register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRNG</name>
              <description>Pseudo-random generator value
This field provides the values of the PRNG output. Because of potential inconsistencies due to synchronization delays, PRNG must be read at least twice. The read value is correct if it is equal to previous read value.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SEEDF</name>
              <description>Seed running flag 
This flag is set by hardware when a new seed is written in the TAMP_ATSEEDR. It is cleared by hardware when the PRNG has absorbed this new seed, and by system reset. The TAMP APB cock must not be switched off as long as SEEDF is set.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>INITS</name>
              <description>Active tamper initialization status
This flag is set by hardware when the PRNG has absorbed the first 128-bit seed, meaning that the enabled active tampers are functional. This flag is cleared when the active tampers are disabled.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ATCR2</name>
          <displayName>ATCR2</displayName>
          <description>TAMP active tamper control register 2</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ATOSEL1</name>
              <description>Active tamper shared output 1 selection
The selected output must be available in the package pinout.
Bits 9:8 are the mirror of ATOSEL1[1:0] in the TAMP_ATCR1, and so can also be read or
written through TAMP_ATCR1.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ATOSEL2</name>
              <description>Active tamper shared output 2 selection
The selected output must be available in the package pinout.
Bits 12:11 are the mirror of ATOSEL2[1:0] in the TAMP_ATCR1, and so can also be read or written through TAMP_ATCR1.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ATOSEL3</name>
              <description>Active tamper shared output 3 selection
The selected output must be available in the package pinout.
Bits 15:14 are the mirror of ATOSEL3[1:0] in the TAMP_ATCR1, and so can also be read or written through TAMP_ATCR1.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ATOSEL4</name>
              <description>Active tamper shared output 4 selection
The selected output must be available in the package pinout.
Bits 18:17 are the mirror of ATOSEL2[1:0] in the TAMP_ATCR1, and so can also be read or written through TAMP_ATCR1.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ATOSEL5</name>
              <description>Active tamper shared output 5 selection
The selected output must be available in the package pinout.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ATOSEL6</name>
              <description>Active tamper shared output 6 selection
The selected output must be available in the package pinout.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ATOSEL7</name>
              <description>Active tamper shared output 7 selection
The selected output must be available in the package pinout.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ATOSEL8</name>
              <description>Active tamper shared output 8 selection
The selected output must be available in the package pinout.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CFGR</name>
          <displayName>CFGR</displayName>
          <description>TAMP configuration register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BKPRW</name>
              <description>Backup registers read/write protection offset
BKPRW value must be from 0 to 32.
Protection zone 1 is defined for backup registers from TAMP_BKP0R to TAMP_BKPxR (x = BKPRW-1, with BKPRW more or equal to 1).
If BKPRW = 0: there is no protection zone 1.
Refer to Figure 499: Backup registers protection zones.
Note: If BKPRWPRIV is set, BKPRW[7:0] can be written only in privileged mode.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKPW</name>
              <description>Backup registers write protection offset
BKPW value must be from 0 to 32.
Protection zone 2 is defined for backup registers from TAMP_BKPyR (y = BKPRW) to TAMP_BKPzR (z = BKPW-1, with BKPW &gt; BKPRW): 
If BKPWSEC = 0 or if BKPWSEC UNDER OR EQUAL BKPRWSEC: there is no protection zone 2.
Protection zone 3 is defined for backup registers from TAMP_BKPtR (t = BKPW if BKPWSEC more or equal to BKPRWSEC, else t = BKPRWSEC).
If BKPWSEC = 32: there is no protection zone 3.
Refer to Figure 499: Backup registers protection zones.
Note: If BKPWPRIV is set, BKPRW[7:0] can be written only in privileged mode.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BHKLOCK</name>
              <description>Boot hardware key lock
This bit can be read and can only be written to 1 by software. It is cleared by hardware together with the backup registers following a tamper detection event or when the readout protection (RDP) is disabled.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PRIVCFGR</name>
          <displayName>PRIVCFGR</displayName>
          <description>TAMP privilege configuration register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CNT1PRIV</name>
              <description>Monotonic counter 1 privilege protection</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKPRWPRIV</name>
              <description>Backup registers zone 1 privilege protection</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKPWPRIV</name>
              <description>Backup registers zone 2 privilege protection</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMPPRIV</name>
              <description>Tamper privilege protection (excluding backup registers)
Note: Refer to Section 46.3.6: TAMP privilege protection modes for details on the read protection.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IER</name>
          <displayName>IER</displayName>
          <description>TAMP interrupt enable register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TAMP1IE</name>
              <description>Tamper 1 interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP2IE</name>
              <description>Tamper 2 interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP3IE</name>
              <description>Tamper 3 interrupt enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP4IE</name>
              <description>Tamper 4 interrupt enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP5IE</name>
              <description>Tamper 5 interrupt enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP6IE</name>
              <description>Tamper 6 interrupt enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP7IE</name>
              <description>Tamper 7interrupt enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TAMP8IE</name>
              <description>Tamper 8 interrupt enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP1IE</name>
              <description>Internal tamper 1 interrupt enable</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP2IE</name>
              <description>Internal tamper 2 interrupt enable</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP3IE</name>
              <description>Internal tamper 3 interrupt enable</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP4IE</name>
              <description>Internal tamper 4 interrupt enable</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP5IE</name>
              <description>Internal tamper 5 interrupt enable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP6IE</name>
              <description>Internal tamper 6 interrupt enable</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP7IE</name>
              <description>Internal tamper 7 interrupt enable</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP8IE</name>
              <description>Internal tamper 8 interrupt enable</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP9IE</name>
              <description>Internal tamper 9 interrupt enable</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP11IE</name>
              <description>Internal tamper 11 interrupt enable</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ITAMP15IE</name>
              <description>Internal tamper 15 interrupt enable</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>TAMP status register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TAMP1F</name>
              <description>TAMP1 detection flag
This flag is set by hardware when a tamper detection event is detected on the TAMP1 input.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TAMP2F</name>
              <description>TAMP2 detection flag
This flag is set by hardware when a tamper detection event is detected on the TAMP2 input.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TAMP3F</name>
              <description>TAMP3 detection flag
This flag is set by hardware when a tamper detection event is detected on the TAMP3 input.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TAMP4F</name>
              <description>TAMP4 detection flag
This flag is set by hardware when a tamper detection event is detected on the TAMP4 input.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TAMP5F</name>
              <description>TAMP5 detection flag
This flag is set by hardware when a tamper detection event is detected on the TAMP5 input.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TAMP6F</name>
              <description>TAMP6 detection flag
This flag is set by hardware when a tamper detection event is detected on the TAMP6 input.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TAMP7F</name>
              <description>TAMP7 detection flag
This flag is set by hardware when a tamper detection event is detected on the TAMP7 input.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TAMP8F</name>
              <description>TAMP8 detection flag
This flag is set by hardware when a tamper detection event is detected on the TAMP8 input</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP1F</name>
              <description>Internal tamper 1 flag
This flag is set by hardware when a tamper detection event is detected on the internal tamper 1.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP2F</name>
              <description>Internal tamper 2 flag
This flag is set by hardware when a tamper detection event is detected on the internal tamper 2.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP3F</name>
              <description>Internal tamper 3 flag
This flag is set by hardware when a tamper detection event is detected on the internal tamper 3.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP4F</name>
              <description>Internal tamper 4 flag
This flag is set by hardware when a tamper detection event is detected on the internal tamper 4.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP5F</name>
              <description>Internal tamper 5 flag
This flag is set by hardware when a tamper detection event is detected on the internal tamper 5.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP6F</name>
              <description>Internal tamper 6 flag
This flag is set by hardware when a tamper detection event is detected on the internal tamper 6.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP7F</name>
              <description>Internal tamper 7 flag
This flag is set by hardware when a tamper detection event is detected on the internal tamper 7.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP8F</name>
              <description>Internal tamper 8 flag
This flag is set by hardware when a tamper detection event is detected on the internal tamper 8.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP9F</name>
              <description>Internal tamper 9 flag 
This flag is set by hardware when a tamper detection event is detected on the internal tamper 9.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP11F</name>
              <description>Internal tamper 11 flag 
This flag is set by hardware when a tamper detection event is detected on the internal tamper 11.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP15F</name>
              <description>Internal tamper 15 flag 
This flag is set by hardware when a tamper detection event is detected on the internal tamper 15.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>MISR</name>
          <displayName>MISR</displayName>
          <description>TAMP masked interrupt status register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TAMP1MF</name>
              <description>TAMP1 interrupt masked flag
This flag is set by hardware when the tamper 1 interrupt is raised.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TAMP2MF</name>
              <description>TAMP2 interrupt masked flag
This flag is set by hardware when the tamper 2 interrupt is raised.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TAMP3MF</name>
              <description>TAMP3 interrupt masked flag
This flag is set by hardware when the tamper 3 interrupt is raised.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TAMP4MF</name>
              <description>TAMP4 interrupt masked flag
This flag is set by hardware when the tamper 4 interrupt is raised.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TAMP5MF</name>
              <description>TAMP5 interrupt masked flag
This flag is set by hardware when the tamper 5 interrupt is raised.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TAMP6MF</name>
              <description>TAMP6 interrupt masked flag
This flag is set by hardware when the tamper 6 interrupt is raised.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TAMP7MF</name>
              <description>TAMP7 interrupt masked flag
This flag is set by hardware when the tamper 7 interrupt is raised.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TAMP8MF</name>
              <description>TAMP8 interrupt masked flag
This flag is set by hardware when the tamper 8 interrupt is raised.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP1MF</name>
              <description>Internal tamper 1  interrupt masked flag
This flag is set by hardware when the internal tamper 1 interrupt is raised.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP2MF</name>
              <description>Internal tamper 2  interrupt masked flag
This flag is set by hardware when the internal tamper 2 interrupt is raised.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP3MF</name>
              <description>Internal tamper 3  interrupt masked flag
This flag is set by hardware when the internal tamper 3 interrupt is raised.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP4MF</name>
              <description>Internal tamper 4  interrupt masked flag
This flag is set by hardware when the internal tamper 4 interrupt is raised.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP5MF</name>
              <description>Internal tamper 5  interrupt masked flag
This flag is set by hardware when the internal tamper 5 interrupt is raised.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP6MF</name>
              <description>Internal tamper 6  interrupt masked flag
This flag is set by hardware when the internal tamper 6 interrupt is raised.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP7MF</name>
              <description>Internal tamper 7 tamper  interrupt masked flag
This flag is set by hardware when the internal tamper 7  interrupt is raised.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP8MF</name>
              <description>Internal tamper 8 interrupt masked flag
This flag is set by hardware when the internal tamper 8 interrupt is raised.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP9MF</name>
              <description>internal tamper 9 interrupt masked flag
This flag is set by hardware when the internal tamper 9 interrupt is raised.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP11MF</name>
              <description>internal tamper 11 interrupt masked flag
This flag is set by hardware when the internal tamper 11 interrupt is raised.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ITAMP15MF</name>
              <description>internal tamper 15 interrupt masked flag
This flag is set by hardware when the internal tamper 15 interrupt is raised.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SCR</name>
          <displayName>SCR</displayName>
          <description>TAMP status clear register</description>
          <addressOffset>0x3C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CTAMP1F</name>
              <description>Clear TAMP1 detection flag
Writing 1 in this bit clears the TAMP1F bit in the TAMP_SR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CTAMP2F</name>
              <description>Clear TAMP2 detection flag
Writing 1 in this bit clears the TAMP2F bit in the TAMP_SR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CTAMP3F</name>
              <description>Clear TAMP3 detection flag
Writing 1 in this bit clears the TAMP3F bit in the TAMP_SR register.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CTAMP4F</name>
              <description>Clear TAMP4 detection flag
Writing 1 in this bit clears the TAMP4F bit in the TAMP_SR register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CTAMP5F</name>
              <description>Clear TAMP5 detection flag
Writing 1 in this bit clears the TAMP5F bit in the TAMP_SR register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CTAMP6F</name>
              <description>Clear TAMP6 detection flag
Writing 1 in this bit clears the TAMP6F bit in the TAMP_SR register.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CTAMP7F</name>
              <description>Clear TAMP7 detection flag
Writing 1 in this bit clears the TAMP7F bit in the TAMP_SR register.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CTAMP8F</name>
              <description>Clear TAMP8 detection flag
Writing 1 in this bit clears the TAMP8F bit in the TAMP_SR register.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CITAMP1F</name>
              <description>Clear ITAMP1 detection flag
Writing 1 in this bit clears the ITAMP1F bit in the TAMP_SR register.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CITAMP2F</name>
              <description>Clear ITAMP2 detection flag
Writing 1 in this bit clears the ITAMP2F bit in the TAMP_SR register.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CITAMP3F</name>
              <description>Clear ITAMP3 detection flag
Writing 1 in this bit clears the ITAMP3F bit in the TAMP_SR register.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CITAMP4F</name>
              <description>Clear ITAMP4 detection flag
Writing 1 in this bit clears the ITAMP4F bit in the TAMP_SR register.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CITAMP5F</name>
              <description>Clear ITAMP5 detection flag
Writing 1 in this bit clears the ITAMP5F bit in the TAMP_SR register.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CITAMP6F</name>
              <description>Clear ITAMP6 detection flag
Writing 1 in this bit clears the ITAMP6F bit in the TAMP_SR register.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CITAMP7F</name>
              <description>Clear ITAMP7 detection flag
Writing 1 in this bit clears the ITAMP7F bit in the TAMP_SR register.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CITAMP8F</name>
              <description>Clear ITAMP8 detection flag
Writing 1 in this bit clears the ITAMP8F bit in the TAMP_SR register.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CITAMP9F</name>
              <description>Clear ITAMP9 detection flag
Writing 1 in this bit clears the ITAMP9F bit in the TAMP_SR register.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CITAMP11F</name>
              <description>Clear ITAMP11 detection flag
Writing 1 in this bit clears the ITAMP11F bit in the TAMP_SR register.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CITAMP15F</name>
              <description>Clear ITAMP15 detection flag
Writing 1 in this bit clears the ITAMP15F bit in the TAMP_SR register.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>COUNT1R</name>
          <displayName>COUNT1R</displayName>
          <description>TAMP monotonic counter 1 register</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>COUNT</name>
              <description>This register is read-only only and is incremented by one when a write access is done to this register. This register cannot roll-over and is frozen when reaching the maximum value.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <dim>32</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-31</dimIndex>
          <name>BKP%sR</name>
          <displayName>BKP%sR</displayName>
          <description>TAMP backup %s register</description>
          <addressOffset>0x100</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BKP</name>
              <description>The application can write or read data to and from these registers.
In the default (ERASE) configuration this register is reset on a tamper detection event. It is forced to reset value as long as there is at least one internal or external tamper flag being set. This register is also reset when the readout protection (RDP) is disabled.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>TIM1</name>
      <description>Advanced-control timers</description>
      <groupName>TIM</groupName>
      <baseAddress>0x42000000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x3E4</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>TIM1_BRK</name>
        <description>TIM1 Break interrupt</description>
        <value>47</value>
      </interrupt>
      <interrupt>
        <name>TIM1_UP</name>
        <description>TIM1 Update interrupt (tim_upd_it)</description>
        <value>48</value>
      </interrupt>
      <interrupt>
        <name>TIM1_TRG_COM</name>
        <description>TIM1 Trigger and Commutation interrupts</description>
        <value>49</value>
      </interrupt>
      <interrupt>
        <name>TIM1_CC</name>
        <description>TIM1 Capture Compare interrupt</description>
        <value>50</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>TIM1 control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>CEN</name>
              <description>Counter enable
Note: External clock, gated mode and encoder mode can work only if the CEN bit has been previously set by software. However trigger mode can set the CEN bit automatically by hardware.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit is set and cleared by software to enable/disable UEV event generation.
Counter overflow/underflow
Setting the UG bit
Update generation through the slave mode controller
Buffered registers are then loaded with their preload values.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit is set and cleared by software to select the UEV event sources.
Counter overflow/underflow
Setting the UG bit
Update generation through the slave mode controller</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>DIR</name>
              <description>Direction
Note: This bit is read only when the timer is configured in Center-aligned mode or Encoder mode.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
Note: It is not allowed to switch from edge-aligned mode to center-aligned mode as long as the counter is enabled (CEN=1)</description>
              <bitOffset>5</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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
This bit-field indicates the division ratio between the timer clock (tim_ker_ck) frequency and the dead-time and sampling clock (t&lt;sub&gt;DTS&lt;/sub&gt;)used by the dead-time generators and the digital filters (tim_etr_in, tim_tix),</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <enumeratedValues>
                <name>UIFREMAP</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>No remapping. UIF status bit is not copied to TIMx_CNT register bit 31</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Remapping enabled. UIF status bit is copied to TIMx_CNT register bit 31</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DITHEN</name>
              <description>Dithering enable
Note: The DITHEN bit can only be modified when CEN bit is reset.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>DITHEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Dithering disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Dithering enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>TIM1 control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CCPC</name>
              <description>Capture/compare preloaded control
Note: This bit acts only on channels that have a complementary output.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
            <field>
              <name>CCUS</name>
              <description>Capture/compare control update selection
Note: This bit acts only on channels that have a complementary output.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>CCDS</name>
              <description>Capture/compare DMA selection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>MMS</name>
              <description>MMS[2:0]: Master mode selection
These bits select the information to be sent in master mode to slave timers for synchronization (tim_trgo). The combination is as follows: 
Other codes reserved
Note: The clock of the slave timer or ADC must be enabled prior to receive events from the master timer, and must not be changed on-the-fly while triggers are received from the master timer.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TI1S</name>
              <description>tim_ti1 selection</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <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>
              <access>read-write</access>
              <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>4</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>OIS%sN</name>
              <description>Output Idle state (OC%sN output)</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>MMS2</name>
              <description>Master mode selection 2
These bits allow the information to be sent to ADC for synchronization (tim_trgo2) to be selected. The combination is as follows:
Note: The clock of the slave timer or ADC must be enabled prior to receive events from the master timer, and must not be changed on-the-fly while triggers are received from the master timer.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MMS_3</name>
              <description>MMS[3]</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SMCR</name>
          <displayName>SMCR</displayName>
          <description>TIM1 slave mode control register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SMS</name>
              <description>SMS[2:0]: Slave mode selection
When external signals are selected the active edge of the trigger signal (tim_trgi) is linked to the polarity selected on the external input (see Input Control register and Control Register description.
Note: The gated mode must not be used if tim_ti1f_ed is selected as the trigger input (TS=00100). Indeed, tim_ti1f_ed outputs 1 pulse for each transition on TI1F, whereas the gated mode checks the level of the trigger signal.
Note: The clock of the slave peripherals (timer, ADC, ...) receiving the tim_trgo or the tim_trgo2 signals must be enabled prior to receive events from the master timer, and the clock frequency (prescaler) must not be changed on-the-fly while triggers are received from the master timer.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS</name>
              <description>TS[2:0]: Trigger selection
This bitfield is combined with TS[4:3] bits.
This bit-field selects the trigger input to be used to synchronize the counter. 
Others: Reserved
See Table 613: TIMx internal trigger connection for more details on tim_itrx meaning for each Timer.
Note: These bits must be changed only when they are not used (for example when SMS = 000) to avoid wrong edge detections at the transition.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MSM</name>
              <description>Master/slave mode</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit-field then defines the frequency used to sample tim_etrp signal and the length of the digital filter applied to tim_etrp. The digital filter is made of an event counter in which N consecutive events are needed to validate a transition on the output:</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <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
External trigger signal tim_etrp frequency must be at most 1/4 of TIMxCLK frequency. A prescaler can be enabled to reduce tim_etrp frequency. It is useful when inputting fast external clocks on tim_etr_in.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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
This bit enables External clock mode 2. 
Note: Setting the ECE bit has the same effect as selecting external clock mode 1 with tim_trgi connected to tim_etrf (SMS=111 and TS=00111).
It is possible to simultaneously use external clock mode 2 with the following slave modes: reset mode, gated mode and trigger mode. Nevertheless, tim_trgi must not be connected to tim_etrf in this case (TS bits must not be 00111).
Note: If external clock mode 1 and external clock mode 2 are enabled at the same time, the external clock input is tim_etrf.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit selects whether tim_etr_in or tim_etr_in is used for trigger operations</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>SMS[3]</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS2</name>
              <description>TS[4:3]</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMSPE</name>
              <description>SMS preload enable
This bit selects whether the SMS[3:0] bitfield is preloaded</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMSPS</name>
              <description>SMS preload source
This bit selects whether the events that triggers the SMS[3:0] bitfield transfer from preload to active</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIER</name>
          <displayName>DIER</displayName>
          <description>TIM1 DMA/interrupt enable register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>UIE</name>
              <description>Update interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <name>IDXIE</name>
              <description>Index interrupt enable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DIRIE</name>
              <description>Direction change interrupt enable</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IERRIE</name>
              <description>Index error interrupt enable</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TERRIE</name>
              <description>Transition error interrupt enable</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>TIM1 status register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>UIF</name>
              <description>Update interrupt flag
This bit is set by hardware on an update event. It is cleared by software. 
At overflow or underflow regarding the repetition counter value (update if repetition counter = 0) and if the UDIS=0 in the TIMx_CR1 register.
When CNT is reinitialized by software using the UG bit in TIMx_EGR register, if URS=0 and UDIS=0 in the TIMx_CR1 register.
When CNT is reinitialized by a trigger event (refer to Section 64.6.3: TIM1 slave mode control register (TIM1_SMCR)), if URS=0 and UDIS=0 in the TIMx_CR1 register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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
This flag is set by hardware on COM event (when capture/compare Control bits - CCxE, CCxNE, OCxM - have been updated). It is cleared by software.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This flag is set by hardware on the TRG trigger event (active edge detected on tim_trgi input when the slave mode controller is enabled in all modes but gated mode. It is set when the counter starts or stops when gated mode is selected. It is cleared by software.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This flag is set by hardware as soon as the break input goes active. It can be cleared by software if the break input is not active.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This flag is set by hardware as soon as the break 2 input goes active. It can be cleared by software if the break 2 input is not active.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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
This flag is set by hardware as soon as the system break input goes active. It can be cleared by software if the system break input is not active.
This flag must be reset to re-start PWM operation.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
Refer to CC1IF description
Note: Channel 5 can only be configured as output.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
Refer to CC1IF description
Note: Channel 6 can only be configured as output.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="CC1IFR">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="CC1IFW">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>IDXF</name>
              <description>Index interrupt flag
This flag is set by hardware when an index event is detected. It is cleared by software by writing it to 0.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DIRF</name>
              <description>Direction change interrupt flag
This flag is set by hardware when the direction changes in encoder mode (DIR bit value in TIMx_CR is changing). It is cleared by software by writing it to 0.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IERRF</name>
              <description>Index error interrupt flag
This flag is set by hardware when an index error is detected. It is cleared by software by writing it to 0.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TERRF</name>
              <description>Transition error interrupt flag
This flag is set by hardware when a transition error is detected in encoder mode. It is cleared by software by writing it to 0.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>EGR</name>
          <displayName>EGR</displayName>
          <description>TIM1 event generation register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>UG</name>
              <description>Update generation
This bit can be set by software, it is automatically cleared by hardware.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>
              <access>write-only</access>
              <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
This bit can be set by software, it is automatically cleared by hardware
Note: This bit acts only on channels having a complementary output.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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
This bit is set by software in order to generate an event, it is automatically cleared by hardware.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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
This bit is set by software in order to generate an event, it is automatically cleared by hardware.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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
This bit is set by software in order to generate an event, it is automatically cleared by hardware.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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_Input</name>
          <displayName>CCMR1_Input</displayName>
          <description>TIM1 capture/compare mode register 1</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CC1S</name>
              <description>Capture/compare 1 Selection
This bit-field defines the direction of the channel (input/output) as well as the used input. 
Note: CC1S bits are writable only when the channel is OFF (CC1E = 0 in TIMx_CCER).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <name>CC2S</name>
              <description>Capture/compare 2 selection
This bit-field defines the direction of the channel (input/output) as well as the used input. 
Note: CC2S bits are writable only when the channel is OFF (CC2E = 0 in TIMx_CCER).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>CCMR1_Output</name>
          <displayName>CCMR1_Output</displayName>
          <description>TIM1 capture/compare mode register 1</description>
          <alternateRegister>CCMR1_Input</alternateRegister>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <enumeratedValues>
                <name>OC1CE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>OCxRef is not affected by the ocref_clr_int signal</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>OCxRef is cleared as soon as a High level is detected on ocref_clr_int 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>
              <access>read-write</access>
              <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>CCMR2_Input</name>
          <displayName>CCMR2_Input</displayName>
          <description>TIM1 capture/compare mode register 2</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CC3S</name>
              <description>Capture/compare 3 selection
This bit-field defines the direction of the channel (input/output) as well as the used input. 
Note: CC3S bits are writable only when the channel is OFF (CC3E = 0 in TIMx_CCER).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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 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>
              <access>read-write</access>
            </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>
              <access>read-write</access>
            </field>
            <field>
              <name>CC4S</name>
              <description>Capture/compare 4 selection
This bit-field defines the direction of the channel (input/output) as well as the used input. 
Note: CC4S bits are writable only when the channel is OFF (CC4E = 0 in TIMx_CCER).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>CCMR2_Output</name>
          <displayName>CCMR2_Output</displayName>
          <description>TIM1 capture/compare mode register 2</description>
          <alternateRegister>CCMR2_Input</alternateRegister>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <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>
              <access>read-write</access>
            </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>
              <access>read-write</access>
            </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>
              <access>read-write</access>
            </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>
              <access>read-write</access>
            </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>
              <access>read-write</access>
            </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>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CCER</name>
          <displayName>CCER</displayName>
          <description>TIM1 capture/compare enable register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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%sNE</name>
              <description>Capture/Compare %s complementary output enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>TIM1 counter</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CNT</name>
              <description>Counter value
Non-dithering mode (DITHEN = 0)
The register holds the counter value.
Dithering mode (DITHEN = 1)
The register only holds the non-dithered part in CNT[15:0]. The fractional part is not available.</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
This bit is a read-only copy of the UIF bit of the TIMx_ISR register. If the UIFREMAP bit in the TIMxCR1 is reset, bit 31 is reserved and read at 0.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>UIFCPYR</name>
                <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>
            </field>
          </fields>
        </register>
        <register>
          <name>PSC</name>
          <displayName>PSC</displayName>
          <description>TIM1 prescaler</description>
          <addressOffset>0x28</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>PSC</name>
              <description>Prescaler value
The counter clock frequency (f&lt;sub&gt;tim_cnt_ck&lt;/sub&gt;) is equal to f&lt;sub&gt;tim_psc_ck&lt;/sub&gt; / (PSC[15:0] + 1).
PSC contains the value to be loaded in the active prescaler register at each update event (including when the counter is cleared through UG bit of TIMx_EGR register or through trigger controller when configured in reset mode).</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>ARR</name>
          <displayName>ARR</displayName>
          <description>TIM1 auto-reload register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x0000FFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ARR</name>
              <description>Auto-reload value
ARR is the value to be loaded in the actual auto-reload register.
Refer to the Section 64.3.3: Time-base unit on page 3685 for more details about ARR update and behavior.
The counter is blocked while the auto-reload value is null.
Non-dithering mode (DITHEN = 0)
The register holds the auto-reload value.
Dithering mode (DITHEN = 1)
The register holds the integer part in ARR[19:4]. The ARR[3:0] bitfield contains the dithered part.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>20</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1048575</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RCR</name>
          <displayName>RCR</displayName>
          <description>TIM1 repetition counter register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>REP</name>
              <description>Repetition counter reload value
This bitfield defines the update rate of the compare registers (i.e. periodic transfers from preload to active registers) when preload registers are enable. It also defines the update interrupt generation rate, if this interrupt is enable.
When the repetition down-counter reaches zero, an update event is generated and it restarts counting from REP value. As the repetition counter is reloaded with REP value only at the repetition update event UEV, any write to the TIMx_RCR register is not taken in account until the next repetition update event.
It means in PWM mode (REP+1) corresponds to:
the number of PWM periods in edge-aligned mode
the number of half PWM period in center-aligned mode.</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>
          <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>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CCR</name>
              <description>Capture/Compare value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>20</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1048575</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>BDTR</name>
          <displayName>BDTR</displayName>
          <description>TIM1 break and dead-time register</description>
          <addressOffset>0x44</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DTG</name>
              <description>Dead-time generator setup
This bit-field defines the duration of the dead-time inserted between the complementary outputs. DT correspond to this duration.
DTG[7:5]=0xx =&gt; DT=DTG[7:0]x t&lt;sub&gt;dtg&lt;/sub&gt; with t&lt;sub&gt;dtg&lt;/sub&gt;=t&lt;sub&gt;DTS&lt;/sub&gt;.
DTG[7:5]=10x =&gt; DT=(64+DTG[5:0])xt&lt;sub&gt;dtg&lt;/sub&gt; with T&lt;sub&gt;dtg&lt;/sub&gt;=2xt&lt;sub&gt;DTS&lt;/sub&gt;.
DTG[7:5]=110 =&gt; DT=(32+DTG[4:0])xt&lt;sub&gt;dtg&lt;/sub&gt; with T&lt;sub&gt;dtg&lt;/sub&gt;=8xt&lt;sub&gt;DTS&lt;/sub&gt;.
DTG[7:5]=111 =&gt; DT=(32+DTG[4:0])xt&lt;sub&gt;dtg&lt;/sub&gt; with T&lt;sub&gt;dtg&lt;/sub&gt;=16xt&lt;sub&gt;DTS&lt;/sub&gt;.
Example if T&lt;sub&gt;DTS&lt;/sub&gt;=125ns (8MHz), dead-time possible values are:
0 to 15875 ns by 125 ns steps,
16 us to 31750 ns by 250 ns steps,
32 us to 63us by 1 us steps,
64 us to 126 us by 2 us steps
Note: This bit-field can not be modified as long as LOCK level 1, 2 or 3 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>LOCK</name>
              <description>Lock configuration
These bits offer a write protection against software errors.
Note: The LOCK bits can be written only once after the reset. Once the TIMx_BDTR register has been written, their content is frozen until the next reset.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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
This bit is used when MOE=0 due to a break event or by a software write, on channels configured as outputs.
See OC/OCN enable description for more details (Section 64.6.11: TIM1 capture/compare enable register (TIM1_CCER)).
Note: This bit can not be modified as soon as the LOCK level 2 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit is used when MOE=1 on channels having a complementary output which are configured as outputs. OSSR is not implemented if no complementary output is implemented in the timer.
See OC/OCN enable description for more details (Section 64.6.11: TIM1 capture/compare enable register (TIM1_CCER)).
Note: This bit can not be modified as soon as the LOCK level 2 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit enables the complete break protection (including all sources connected to bk_acth and BKIN sources, as per Figure 618: Break and Break2 circuitry overview).
Note: This bit cannot be modified when LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).
Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).
Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit is cleared asynchronously by hardware as soon as one of the break inputs is active (tim_brk or tim_brk2). It is set by software or automatically depending on the AOE bit. It is acting only on the channels which are configured in output. 
In response to a break event or if MOE is written to 0: OC and OCN outputs are disabled or forced to idle state depending on the OSSI bit.
See OC/OCN enable description for more details (Section 64.6.11: TIM1 capture/compare enable register (TIM1_CCER)).</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit-field defines the frequency used to sample tim_brk input and the length of the digital filter applied to tim_brk. The digital filter is made of an event counter in which N consecutive events are needed to validate a transition on the output:
Note: This bit cannot be modified when LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BK2F</name>
              <description>Break 2 filter
This bit-field defines the frequency used to sample tim_brk2 input and the length of the digital filter applied to tim_brk2. The digital filter is made of an event counter in which N consecutive events are needed to validate a transition on the output:
Note: This bit cannot be modified when LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>20</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BK2E</name>
              <description>Break 2 enable
This bit enables the complete break 2 protection (including all sources connected to bk_acth and BKIN sources, as per Figure 618: Break and Break2 circuitry overview).
Note: The BRKIN2 must only be used with OSSR = OSSI = 1.
Note: This bit cannot be modified when LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).
Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="BKE"/>
            </field>
            <field>
              <name>BK2P</name>
              <description>Break 2 polarity
Note: This bit cannot be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).
Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="BKP"/>
            </field>
            <field>
              <name>BKDSRM</name>
              <description>Break disarm
This bit is cleared by hardware when no break source is active.
The BKDSRM bit must be set by software to release the bidirectional output control (open-drain output in Hi-Z state) and then be polled it until it is reset by hardware, indicating that the fault condition has disappeared.
Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BK2DSRM</name>
              <description>Break2 disarm
Refer to BKDSRM description</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKBID</name>
              <description>Break bidirectional
In the bidirectional mode (BKBID bit set to 1), the break input is configured both in input mode and in open drain output mode. Any active break event asserts a low logic level on the Break input to indicate an internal break event to external devices.
Note: This bit cannot be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).
Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BK2BID</name>
              <description>Break2 bidirectional
Refer to BKBID description</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CCR5</name>
          <displayName>CCR5</displayName>
          <description>capture/compare register</description>
          <addressOffset>0x48</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CCR</name>
              <description>Capture/Compare value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>20</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1048575</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>GC5C1</name>
              <description>Group channel 5 and channel 1
Distortion on channel 1 output:
This bit can either have immediate effect or be preloaded and taken into account after an update event (if preload feature is selected in TIMxCCMR1).
Note: it is also possible to apply this distortion on combined PWM signals.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GC5C2</name>
              <description>Group channel 5 and channel 2
Distortion on channel 2 output:
This bit can either have immediate effect or be preloaded and taken into account after an update event (if preload feature is selected in TIMxCCMR1).
Note: it is also possible to apply this distortion on combined PWM signals.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>GC5C3</name>
              <description>Group channel 5 and channel 3
Distortion on channel 3 output:
This bit can either have immediate effect or be preloaded and taken into account after an update event (if preload feature is selected in TIMxCCMR2).
Note: it is also possible to apply this distortion on combined PWM signals.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CCR6</name>
          <displayName>CCR6</displayName>
          <description>capture/compare register</description>
          <addressOffset>0x4C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CCR</name>
              <description>Capture/Compare value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>20</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1048575</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>CCMR3_Output</name>
          <displayName>CCMR3_Output</displayName>
          <description>TIM1 capture/compare mode register 3</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <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>
              <access>read-write</access>
            </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>
              <access>read-write</access>
            </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>
              <access>read-write</access>
            </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>
              <access>read-write</access>
            </field>
            <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>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DTR2</name>
          <displayName>DTR2</displayName>
          <description>TIM1 timer deadtime register 2</description>
          <addressOffset>0x54</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DTGF</name>
              <description>Dead-time falling edge generator setup
This bit-field defines the duration of the dead-time inserted between the complementary outputs, on the falling edge.
DTGF[7:5]=0xx =&gt; DTF=DTGF[7:0]x t&lt;sub&gt;dtg&lt;/sub&gt; with t&lt;sub&gt;dtg&lt;/sub&gt;=t&lt;sub&gt;DTS&lt;/sub&gt;.
DTGF[7:5]=10x =&gt; DTF=(64+DTGF[5:0])xt&lt;sub&gt;dtg&lt;/sub&gt; with T&lt;sub&gt;dtg&lt;/sub&gt;=2xt&lt;sub&gt;DTS&lt;/sub&gt;.
DTGF[7:5]=110 =&gt; DTF=(32+DTGF[4:0])xt&lt;sub&gt;dtg&lt;/sub&gt; with T&lt;sub&gt;dtg&lt;/sub&gt;=8xt&lt;sub&gt;DTS&lt;/sub&gt;.
DTGF[7:5]=111 =&gt; DTF=(32+DTGF[4:0])xt&lt;sub&gt;dtg&lt;/sub&gt; with T&lt;sub&gt;dtg&lt;/sub&gt;=16xt&lt;sub&gt;DTS&lt;/sub&gt;.
Example if T&lt;sub&gt;DTS&lt;/sub&gt;=125ns (8MHz), dead-time possible values are:
0 to 15875 ns by 125 ns steps,
16 us to 31750 ns by 250 ns steps,
32 us to 63us by 1 us steps,
64 us to 126 us by 2 us steps
Note: This bit-field can not be modified as long as LOCK level 1, 2 or 3 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTAE</name>
              <description>Deadtime asymmetric enable
Note: This bit can not be modified as long as LOCK level 1, 2 or 3 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTPE</name>
              <description>Deadtime preload enable
Note: This bit can not be modified as long as LOCK level 1, 2 or 3 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ECR</name>
          <displayName>ECR</displayName>
          <description>TIM1 timer encoder control register</description>
          <addressOffset>0x58</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IE</name>
              <description>Index enable
This bit indicates if the Index event resets the counter.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IDIR</name>
              <description>Index direction
This bit indicates in which direction the Index event resets the counter.
Note: The IDR[1:0] bitfield must be written when IE bit is reset (index disabled).</description>
              <bitOffset>1</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IBLK</name>
              <description>Index blanking
This bit indicates if the Index event is conditioned by the tim_ti3 or tim_ti4 input</description>
              <bitOffset>3</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FIDX</name>
              <description>First index 
This bit indicates if the first index only is taken into account</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IPOS</name>
              <description>Index positioning</description>
              <bitOffset>6</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PW</name>
              <description>Pulse width
This bitfield defines the pulse duration, as following:
t&lt;sub&gt;PW&lt;/sub&gt; = PW[7:0] x t&lt;sub&gt;PWG&lt;/sub&gt;</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PWPRSC</name>
              <description>Pulse width prescaler
This bitfield sets the clock prescaler for the pulse generator, as following:
t&lt;sub&gt;PWG&lt;/sub&gt; = (2&lt;sup&gt;(PWPRSC[2:0])&lt;/sup&gt;) x t&lt;sub&gt;tim_ker_ck&lt;/sub&gt;</description>
              <bitOffset>24</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TISEL</name>
          <displayName>TISEL</displayName>
          <description>TIM1 timer input selection register</description>
          <addressOffset>0x5C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TI1SEL</name>
              <description>Selects tim_ti1[15:0] input
...
Refer to Section 64.3.2: TIM1 pins and internal signals for interconnects list.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TI2SEL</name>
              <description>Selects tim_ti2[15:0] input
...
Refer to Section 64.3.2: TIM1 pins and internal signals for interconnects list.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TI3SEL</name>
              <description>Selects tim_ti3[15:0] input
...
Refer to Section 64.3.2: TIM1 pins and internal signals for interconnects list.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TI4SEL</name>
              <description>Selects tim_ti4[15:0] input
...
Refer to Section 64.3.2: TIM1 pins and internal signals for interconnects list.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>AF1</name>
          <displayName>AF1</displayName>
          <description>TIM1 alternate function option register 1</description>
          <addressOffset>0x60</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000001</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BKINE</name>
              <description>TIMx_BKIN input enable
This bit enables the TIMx_BKIN alternate function input for the timers tim_brk input. TIMx_BKIN input is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP1E</name>
              <description>tim_brk_cmp1 enable
This bit enables the tim_brk_cmp1 for the timers tim_brk input. tim_brk_cmp1 output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP2E</name>
              <description>tim_brk_cmp2 enable
This bit enables the tim_brk_cmp2 for the timers tim_brk input. tim_brk_cmp2 output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP3E</name>
              <description>tim_brk_cmp3 enable
This bit enables the tim_brk_cmp3 for the timers tim_brk input. tim_brk_cmp3 output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP4E</name>
              <description>tim_brk_cmp4 enable
This bit enables the tim_brk_cmp4 for the timers tim_brk input. tim_brk_cmp4 output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP5E</name>
              <description>tim_brk_cmp5 enable
This bit enables the tim_brk_cmp5 for the timers tim_brk input. tim_brk_cmp5 output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP6E</name>
              <description>tim_brk_cmp6 enable
This bit enables the tim_brk_cmp6 for the timers tim_brk input. tim_brk_cmp6 output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP7E</name>
              <description>tim_brk_cmp7 enable
This bit enables the tim_brk_cmp7 for the timers tim_brk input. tim_brk_cmp7 output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP8E</name>
              <description>tim_brk_cmp8 enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKINP</name>
              <description>TIMx_BKIN input polarity
This bit selects the TIMx_BKIN alternate function input sensitivity. It must be programmed together with the BKP polarity bit.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP1P</name>
              <description>tim_brk_cmp1 input polarity
This bit selects the tim_brk_cmp1 input sensitivity. It must be programmed together with the BKP polarity bit.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP2P</name>
              <description>tim_brk_cmp2 input polarity
This bit selects the tim_brk_cmp2 input sensitivity. It must be programmed together with the BKP polarity bit.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP3P</name>
              <description>tim_brk_cmp3 input polarity
This bit selects the tim_brk_cmp3 input sensitivity. It must be programmed together with the BKP polarity bit.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP4P</name>
              <description>tim_brk_cmp4 input polarity
This bit selects the tim_brk_cmp4 input sensitivity. It must be programmed together with the BKP polarity bit.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ETRSEL</name>
              <description>etr_in source selection
These bits select the etr_in input source.
...
Refer to Section 64.3.2: TIM1 pins and internal signals for product specific implementation.
Note: These bits can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>14</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>AF2</name>
          <displayName>AF2</displayName>
          <description>TIM1 alternate function register 2</description>
          <addressOffset>0x64</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000001</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BK2INE</name>
              <description>TIMx_BKIN2 input enable
This bit enables the TIMx_BKIN2 alternate function input for the timers tim_brk2 input. TIMx_BKIN2 input is ORed with the other tim_brk2 sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BK2CMP1E</name>
              <description>tim_brk2_cmp1 enable
This bit enables the tim_brk2_cmp1 for the timers tim_brk2 input. tim_brk2_cmp1 output is ORed with the other tim_brk2 sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BK2CMP2E</name>
              <description>tim_brk2_cmp2 enable
This bit enables the tim_brk2_cmp2 for the timers tim_brk2 input. tim_brk2_cmp2 output is ORed with the other tim_brk2 sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BK2CMP3E</name>
              <description>tim_brk2_cmp3 enable
This bit enables the tim_brk2_cmp3 for the timers tim_brk2 input. tim_brk2_cmp3 output is ORed with the other tim_brk2 sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BK2CMP4E</name>
              <description>tim_brk2_cmp4 enable
This bit enables the tim_brk2_cmp4 for the timers tim_brk2 input. tim_brk2_cmp4 output is ORed with the other tim_brk2 sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BK2CMP5E</name>
              <description>tim_brk2_cmp5 enable
This bit enables the tim_brk2_cmp5 for the timers tim_brk2 input. tim_brk2_cmp5 output is ORed with the other tim_brk2 sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BK2CMP6E</name>
              <description>tim_brk2_cmp6 enable
This bit enables the tim_brk2_cmp6 for the timers tim_brk2 input. tim_brk2_cmp6 output is ORed with the other tim_brk2 sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BK2CMP7E</name>
              <description>tim_brk2_cmp7 enable
This bit enables the tim_brk2_cmp7 for the timers tim_brk2 input. tim_brk2_cmp7 output is ORed with the other tim_brk2 sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BK2CMP8E</name>
              <description>tim_brk2_cmp8 enable
This bit enables the tim_brk2_cmp8 for the timers tim_brk2 input. tim_brk2_cmp8 output is ORed with the other tim_brk2 sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BK2INP</name>
              <description>TIMx_BKIN2 input polarity
This bit selects the TIMx_BKIN2 alternate function input sensitivity. It must be programmed together with the BK2P polarity bit.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BK2CMP1P</name>
              <description>tim_brk2_cmp1 input polarity
This bit selects the tim_brk2_cmp1 input sensitivity. It must be programmed together with the BK2P polarity bit.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BK2CMP2P</name>
              <description>tim_brk2_cmp2 input polarity
This bit selects the tim_brk2_cmp2 input sensitivity. It must be programmed together with the BK2P polarity bit.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BK2CMP3P</name>
              <description>tim_brk2_cmp3 input polarity
This bit selects the tim_brk2_cmp3 input sensitivity. It must be programmed together with the BK2P polarity bit.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BK2CMP4P</name>
              <description>tim_brk2_cmp4 input polarity
This bit selects the tim_brk2_cmp4 input sensitivity. It must be programmed together with the BK2P polarity bit.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OCRSEL</name>
              <description>ocref_clr source selection
These bits select the ocref_clr input source.
...
Refer to Section 64.3.2: TIM1 pins and internal signals for product specific information.
Note: These bits can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DCR</name>
          <displayName>DCR</displayName>
          <description>TIM1 DMA control register</description>
          <addressOffset>0x3DC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DBA</name>
              <description>DMA base address
This 5-bits vector defines the base-address for DMA transfers (when read/write access are done through the TIMx_DMAR address). DBA is defined as an offset starting from the address of the TIMx_CR1 register.
Example:
...</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DBL</name>
              <description>DMA burst length
This 5-bit vector defines the length of DMA transfers (the timer recognizes a burst transfer when a read or a write access is done to the TIMx_DMAR address), i.e. the number of transfers. Transfers can be in half-words or in bytes (see example below).
...
Example: Let us consider the following transfer: DBL = 7 bytes &amp; DBA = TIM2_CR1.
If DBL = 7 bytes and DBA = TIM2_CR1 represents the address of the byte to be transferred, the address of the transfer should be given by the following equation:
(TIMx_CR1 address) + DBA + (DMA index), where DMA index = DBL
In this example, 7 bytes are added to (TIMx_CR1 address) + DBA, which gives us the address from/to which the data are copied. In this case, the transfer is done to 7 registers starting from the following address: (TIMx_CR1 address) + DBA
According to the configuration of the DMA Data Size, several cases may occur:
If the DMA Data Size is configured in half-words, 16-bit data are transferred to each of the 7 registers.
If the DMA Data Size is configured in bytes, the data are also transferred to 7 registers: the first register contains the first MSB byte, the second register, the first LSB byte and so on. So with the transfer Timer, one also has to specify the size of data transferred by DMA.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>18</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DBSS</name>
              <description>DMA burst source selection
This bitfield defines the interrupt source that triggers the DMA burst transfers (the timer recognizes a burst transfer when a read or a write access is done to the TIMx_DMAR address).
Others: reserved</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMAR</name>
          <displayName>DMAR</displayName>
          <description>TIM1 DMA address for full transfer</description>
          <addressOffset>0x3E0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAB</name>
              <description>DMA register for burst accesses
A read or write operation to the DMAR register accesses the register located at the address (TIMx_CR1 address) + (DBA + DMA index) x 4 
where TIMx_CR1 address is the address of the control register 1, DBA is the DMA base address configured in TIMx_DCR register, DMA index is automatically controlled by the DMA transfer, and ranges from 0 to DBL (DBL configured in TIMx_DCR).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </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>0x3E4</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>TIM2</name>
        <description>TIM2 global interrupt</description>
        <value>51</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>TIM2 control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>CEN</name>
              <description>Counter enable
Note: External clock, gated mode and encoder mode can work only if the CEN bit has been previously set by software. However trigger mode can set the CEN bit automatically by hardware. 
CEN is cleared automatically in one-pulse mode, when an update event occurs.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit is set and cleared by software to enable/disable UEV event generation.
Counter overflow/underflow
Setting the UG bit
Update generation through the slave mode controller
Buffered registers are then loaded with their preload values.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit is set and cleared by software to select the UEV event sources.
Counter overflow/underflow
Setting the UG bit
Update generation through the slave mode controller</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>DIR</name>
              <description>Direction
Note: This bit is read only when the timer is configured in Center-aligned mode or Encoder mode.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
Note: It is not allowed to switch from edge-aligned mode to center-aligned mode as long as the counter is enabled (CEN=1)</description>
              <bitOffset>5</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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
This bit-field indicates the division ratio between the timer clock (tim_ker_ck) frequency and sampling clock used by the digital filters (tim_etr_in, tim_tix),</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <enumeratedValues>
                <name>UIFREMAP</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>No remapping. UIF status bit is not copied to TIMx_CNT register bit 31</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Remapping enabled. UIF status bit is copied to TIMx_CNT register bit 31</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DITHEN</name>
              <description>Dithering Enable
Note: The DITHEN bit can only be modified when CEN bit is reset.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>DITHEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Dithering disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Dithering enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>TIM2 control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CCDS</name>
              <description>Capture/compare DMA selection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>MMS</name>
              <description>MMS[0]: Master mode selection
These bits are used to select the information to be sent in master mode to slave timers for synchronization (tim_trgo). The combination is as follows:
When the Counter Enable signal is controlled by the trigger input, there is a delay on tim_trgo, except if the master/slave mode is selected (see the MSM bit description in TIMx_SMCR register).
Others: Reserved
Note: The clock of the slave timer or ADC must be enabled prior to receive events from the master timer, and must not be changed on-the-fly while triggers are received from the master timer.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TI1S</name>
              <description>tim_ti1 selection</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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_3</name>
              <description>MMS[3]</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SMCR</name>
          <displayName>SMCR</displayName>
          <description>TIM2 slave mode control register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SMS</name>
              <description>SMS[0]: Slave mode selection
When external signals are selected the active edge of the trigger signal (tim_trgi) is linked to the polarity selected on the external input (see Input Control register and Control Register description.
Note: The gated mode must not be used if tim_ti1f_ed is selected as the trigger input (TS=00100). Indeed, tim_ti1f_ed outputs 1 pulse for each transition on tim_ti1f, whereas the gated mode checks the level of the trigger signal.
Note: The clock of the slave peripherals (timer, ADC, ...) receiving the tim_trgo signal must be enabled prior to receive events from the master timer, and the clock frequency (prescaler) must not be changed on-the-fly while triggers are received from the master timer.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OCCS</name>
              <description>OCREF clear selection
This bit is used to select the OCREF clear source
Note: If the OCREF clear selection feature is not supported, this bit is reserved and forced by hardware to 0. Section 65.3: TIM2/TIM3/TIM4/TIM5 implementation.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS</name>
              <description>TS[0]: Trigger selection
This bit-field selects the trigger input to be used to synchronize the counter.
Others: Reserved
See Section 65.4.2: TIM2/TIM3/TIM4/TIM5 pins and internal signals for product specific implementation details.
Note: These bits must be changed only when they are not used (for example when SMS = 000) to avoid wrong edge detections at the transition.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MSM</name>
              <description>Master/Slave mode</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit-field then defines the frequency used to sample tim_etrp signal and the length of the digital filter applied to tim_etrp. The digital filter is made of an event counter in which N consecutive events are needed to validate a transition on the output:</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <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
External trigger signal tim_etrp frequency must be at most 1/4 of tim_ker_ck frequency. A prescaler can be enabled to reduce tim_etrp frequency. It is useful when inputting fast external clocks on tim_etr_in.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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
This bit enables External clock mode 2.
Setting the ECE bit has the same effect as selecting external clock mode 1 with tim_trgi connected to tim_etrf (SMS=111 and TS=00111).
It is possible to simultaneously use external clock mode 2 with the following slave modes: reset mode, gated mode and trigger mode. Nevertheless, tim_trgi must not be connected to tim_etrf in this case (TS bits must not be 00111).
Note: If external clock mode 1 and external clock mode 2 are enabled at the same time, the external clock input is tim_etrf.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit selects whether tim_etr_in or tim_etr_in is used for trigger operations</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>SMS[3]</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS2</name>
              <description>TS[4:3]</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMSPE</name>
              <description>SMS preload enable
This bit selects whether the SMS[3:0] bitfield is preloaded</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMSPS</name>
              <description>SMS preload source
This bit selects whether the events that triggers the SMS[3:0] bitfield transfer from preload to active</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIER</name>
          <displayName>DIER</displayName>
          <description>TIM2 DMA/Interrupt enable register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>UIE</name>
              <description>Update interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>TIE</name>
              <description>Trigger interrupt enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>UDE</name>
              <description>Update DMA request enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>TDE</name>
              <description>Trigger DMA request enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <name>IDXIE</name>
              <description>Index interrupt enable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DIRIE</name>
              <description>Direction change interrupt enable</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IERRIE</name>
              <description>Index error interrupt enable</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TERRIE</name>
              <description>Transition error interrupt enable</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>TIM2 status register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>UIF</name>
              <description>Update interrupt flag
This bit is set by hardware on an update event. It is cleared by software.
At overflow or underflow and if UDIS=0 in the TIMx_CR1 register.
When CNT is reinitialized by software using the UG bit in TIMx_EGR register, if URS=0 and UDIS=0 in the TIMx_CR1 register.
When CNT is reinitialized by a trigger event (refer to the synchro control register description), if URS=0 and UDIS=0 in the TIMx_CR1 register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>TIF</name>
              <description>Trigger interrupt flag
This flag is set by hardware on the TRG trigger event (active edge detected on tim_trgi input when the slave mode controller is enabled in all modes but gated mode. It is set when the counter starts or stops when gated mode is selected. It is cleared by software.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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%sOF</name>
              <description>Capture/Compare %s overcapture flag</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>IDXF</name>
              <description>Index interrupt flag
This flag is set by hardware when an index event is detected. It is cleared by software by
writing it to 0.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DIRF</name>
              <description>Direction change interrupt flag
This flag is set by hardware when the direction changes in encoder mode (DIR bit value in
TIMx_CR is changing). It is cleared by software by writing it to 0.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IERRF</name>
              <description>Index error interrupt flag
This flag is set by hardware when an index error is detected. It is cleared by software by
writing it to 0.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TERRF</name>
              <description>Transition error interrupt flag
This flag is set by hardware when a transition error is detected in encoder mode. It is cleared
by software by writing it to 0.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>EGR</name>
          <displayName>EGR</displayName>
          <description>TIM2 event generation register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>UG</name>
              <description>Update generation
This bit can be set by software, it is automatically cleared by hardware.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>
              <access>write-only</access>
              <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>TG</name>
              <description>Trigger generation
This bit is set by software in order to generate an event, it is automatically cleared by hardware.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>
          </fields>
        </register>
        <register>
          <name>CCMR1_Input</name>
          <displayName>CCMR1_Input</displayName>
          <description>TIM2 capture/compare mode register 1</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CC1S</name>
              <description>Capture/Compare 1 selection
This bit-field defines the direction of the channel (input/output) as well as the used input. 
Note: CC1S bits are writable only when the channel is OFF (CC1E = 0 in TIMx_CCER).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <name>CC2S</name>
              <description>Capture/compare 2 selection
This bit-field defines the direction of the channel (input/output) as well as the used input. 
Note: CC2S bits are writable only when the channel is OFF (CC2E = 0 in TIMx_CCER).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>CCMR1_Output</name>
          <displayName>CCMR1_Output</displayName>
          <description>TIM2 capture/compare mode register 1</description>
          <alternateRegister>CCMR1_Input</alternateRegister>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <enumeratedValues>
                <name>OC1CE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>OCxRef is not affected by the ocref_clr_int signal</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>OCxRef is cleared as soon as a High level is detected on ocref_clr_int 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>
              <access>read-write</access>
              <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>CCMR2_Input</name>
          <displayName>CCMR2_Input</displayName>
          <description>TIM2 capture/compare mode register 2</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CC3S</name>
              <description>Capture/Compare 3 selection
This bit-field defines the direction of the channel (input/output) as well as the used input. 
Note: CC3S bits are writable only when the channel is OFF (CC3E = 0 in TIMx_CCER).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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 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>
              <access>read-write</access>
            </field>
            <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>
              <access>read-write</access>
            </field>
            <field>
              <name>CC4S</name>
              <description>Capture/Compare 4 selection
This bit-field defines the direction of the channel (input/output) as well as the used input. 
Note: CC4S bits are writable only when the channel is OFF (CC4E = 0 in TIMx_CCER).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>CCMR2_Output</name>
          <displayName>CCMR2_Output</displayName>
          <description>TIM2 capture/compare mode register 2</description>
          <alternateRegister>CCMR2_Input</alternateRegister>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <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>
              <access>read-write</access>
            </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>
              <access>read-write</access>
            </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>
              <access>read-write</access>
            </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>
              <access>read-write</access>
            </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>
              <access>read-write</access>
            </field>
            <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>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CCER</name>
          <displayName>CCER</displayName>
          <description>TIM2 capture/compare enable register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <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>
              <access>read-write</access>
              <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>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>
              <access>read-write</access>
              <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%sNP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT</name>
          <displayName>CNT</displayName>
          <description>TIM2 counter</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CNT</name>
              <description>Least significant part of counter value
Non-dithering mode (DITHEN = 0)
The register holds the counter value.
Dithering mode (DITHEN = 1)
The register holds the non-dithered part in CNT[30:0]. The fractional part is not available.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>UIFCPY</name>
              <description>Value depends on IUFREMAP in TIMx_CR1.
If UIFREMAP = 0
CNT[31]: Most significant bit of counter value
If UIFREMAP = 1
UIFCPY: UIF Copy
This bit is a read-only copy of the UIF bit of the TIMx_ISR register</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>UIFCPYR</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>
            </field>
          </fields>
        </register>
        <register>
          <name>PSC</name>
          <displayName>PSC</displayName>
          <description>TIM2 prescaler</description>
          <addressOffset>0x28</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>PSC</name>
              <description>Prescaler value
The counter clock frequency tim_cnt_ck is equal to f&lt;sub&gt;tim_psc_ck&lt;/sub&gt; / (PSC[15:0] + 1).
PSC contains the value to be loaded in the active prescaler register at each update event (including when the counter is cleared through UG bit of TIMx_EGR register or through trigger controller when configured in reset mode).</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>ARR</name>
          <displayName>ARR</displayName>
          <description>TIM2 auto-reload register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0xFFFFFFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ARR</name>
              <description>Auto-reload value
ARR is the value to be loaded in the actual auto-reload register.
Refer to the Section 65.4.3: Time-base unit on page 3820 for more details about ARR update and behavior.
The counter is blocked while the auto-reload value is null.
Non-dithering mode (DITHEN = 0)
The register holds the auto-reload value.
Dithering mode (DITHEN = 1)
The register holds the integer part in ARR[31:4]. The ARR[3:0] bitfield contains the dithered part.</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>
          <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>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CCR</name>
              <description>Capture/Compare 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>ECR</name>
          <displayName>ECR</displayName>
          <description>TIM2 timer encoder control register</description>
          <addressOffset>0x58</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IE</name>
              <description>Index enable
This bit indicates if the Index event resets the counter.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IDIR</name>
              <description>Index direction
This bit indicates in which direction the Index event resets the counter.
Note: The IDR[1:0] bitfield must be written when IE bit is reset (index disabled).</description>
              <bitOffset>1</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IBLK</name>
              <description>Index blanking
This bit indicates if the Index event is conditioned by the tim_ti3 input</description>
              <bitOffset>3</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FIDX</name>
              <description>First index 
This bit indicates if the first index only is taken into account</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IPOS</name>
              <description>Index positioning</description>
              <bitOffset>6</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PW</name>
              <description>Pulse width
This bitfield defines the pulse duration, as following:
t&lt;sub&gt;PW&lt;/sub&gt; = PW[7:0] x t&lt;sub&gt;PWG&lt;/sub&gt;</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PWPRSC</name>
              <description>Pulse width prescaler
This bitfield sets the clock prescaler for the pulse generator, as following:
t&lt;sub&gt;PWG&lt;/sub&gt; = (2&lt;sup&gt;(PWPRSC[2:0])&lt;/sup&gt;) x t&lt;sub&gt;tim_ker_ck&lt;/sub&gt;</description>
              <bitOffset>24</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TISEL</name>
          <displayName>TISEL</displayName>
          <description>TIM2 timer input selection register</description>
          <addressOffset>0x5C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TI1SEL</name>
              <description>Selects tim_ti1[15:0] input
...
Refer to Section 65.4.2: TIM2/TIM3/TIM4/TIM5 pins and internal signals for product specific implementation.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TI2SEL</name>
              <description>Selects tim_ti2[15:0] input
...
Refer to Section 65.4.2: TIM2/TIM3/TIM4/TIM5 pins and internal signals for product specific implementation.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TI3SEL</name>
              <description>Selects tim_ti3[15:0] input
...
Refer to Section 65.4.2: TIM2/TIM3/TIM4/TIM5 pins and internal signals for product specific implementation.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TI4SEL</name>
              <description>Selects tim_ti4[15:0] input
...
Refer to Section 65.4.2: TIM2/TIM3/TIM4/TIM5 pins and internal signals for product specific implementation.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>AF1</name>
          <displayName>AF1</displayName>
          <description>TIM2 alternate function register 1</description>
          <addressOffset>0x60</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ETRSEL</name>
              <description>etr_in source selection
These bits select the etr_in input source.
...
Refer to Section 65.4.2: TIM2/TIM3/TIM4/TIM5 pins and internal signals for product specific implementation.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>AF2</name>
          <displayName>AF2</displayName>
          <description>TIM2 alternate function register 2</description>
          <addressOffset>0x64</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OCRSEL</name>
              <description>ocref_clr source selection
These bits select the ocref_clr input source.
...
Refer to Section 65.4.2: TIM2/TIM3/TIM4/TIM5 pins and internal signals for product specific implementation.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DCR</name>
          <displayName>DCR</displayName>
          <description>TIM2 DMA control register</description>
          <addressOffset>0x3DC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DBA</name>
              <description>DMA base address
This 5-bits vector defines the base-address for DMA transfers (when read/write access are done through the TIMx_DMAR address). DBA is defined as an offset starting from the address of the TIMx_CR1 register.
Example:
...</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DBL</name>
              <description>DMA burst length
This 5-bit vector defines the length of DMA transfers (the timer recognizes a burst transfer when a read or a write access is done to the TIMx_DMAR address), i.e. the number of transfers. Transfers can be in half-words or in bytes (see example below).
...
Example: Let us consider the following transfer: DBL = 7 bytes &amp; DBA = TIM2_CR1.
If DBL = 7 bytes and DBA = TIM2_CR1 represents the address of the byte to be transferred, the address of the transfer should be given by the following equation:
(TIMx_CR1 address) + DBA + (DMA index), where DMA index = DBL
In this example, 7 bytes are added to (TIMx_CR1 address) + DBA, which gives us the address from/to which the data are copied. In this case, the transfer is done to 7 registers starting from the following address: (TIMx_CR1 address) + DBA
According to the configuration of the DMA Data Size, several cases may occur:
If the DMA Data Size is configured in half-words, 16-bit data are transferred to each of the 7 registers.
If the DMA Data Size is configured in bytes, the data are also transferred to 7 registers: the first register contains the first MSB byte, the second register, the first LSB byte and so on. So with the transfer Timer, one also has to specify the size of data transferred by DMA.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>18</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DBSS</name>
              <description>DMA burst source selection
This bitfield defines the interrupt source that triggers the DMA burst transfers (the timer recognizes a burst transfer when a read or a write access is done to the TIMx_DMAR address).
Others: reserved</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMAR</name>
          <displayName>DMAR</displayName>
          <description>TIM2 DMA address for full transfer</description>
          <addressOffset>0x3E0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAB</name>
              <description>DMA register for burst accesses
A read or write operation to the DMAR register accesses the register located at the address
(TIMx_CR1 address) + (DBA + DMA index) x 4 
where TIMx_CR1 address is the address of the control register 1, DBA is the DMA base address configured in TIMx_DCR register, DMA index is automatically controlled by the DMA transfer, and ranges from 0 to DBL (DBL configured in TIMx_DCR).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="TIM2">
      <name>TIM3</name>
      <description>General-purpose timers</description>
      <groupName>TIM</groupName>
      <baseAddress>0x40000400</baseAddress>
      <interrupt>
        <name>TIM3</name>
        <description>TIM3 global interrupt</description>
        <value>52</value>
      </interrupt>
    </peripheral>
    <peripheral derivedFrom="TIM2">
      <name>TIM4</name>
      <description>General-purpose timers</description>
      <groupName>TIM</groupName>
      <baseAddress>0x40000800</baseAddress>
      <interrupt>
        <name>TIM4</name>
        <description>TIM4 global interrupt</description>
        <value>53</value>
      </interrupt>
    </peripheral>
    <peripheral derivedFrom="TIM2">
      <name>TIM5</name>
      <description>General-purpose timers</description>
      <groupName>TIM</groupName>
      <baseAddress>0x40000C00</baseAddress>
      <interrupt>
        <name>TIM5</name>
        <description>TIM5 global interrupt</description>
        <value>54</value>
      </interrupt>
    </peripheral>
    <peripheral>
      <name>TIM6</name>
      <description>Basic timers</description>
      <groupName>TIM</groupName>
      <baseAddress>0x40001000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x30</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>TIM6</name>
        <description>TIM6 global interrupt</description>
        <value>55</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>TIM6 control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>CEN</name>
              <description>Counter enable
CEN is cleared automatically in one-pulse mode, when an update event occurs.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit is set and cleared by software to enable/disable UEV event generation.
Counter overflow/underflow
Setting the UG bit
Update generation through the slave mode controller
Buffered registers are then loaded with their preload values.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit is set and cleared by software to select the UEV event sources.
Counter overflow/underflow
Setting the UG bit
Update generation through the slave mode controller</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>UIFREMAP</name>
              <description>UIF status bit remapping</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>UIFREMAP</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>No remapping. UIF status bit is not copied to TIMx_CNT register bit 31</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Remapping enabled. UIF status bit is copied to TIMx_CNT register bit 31</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DITHEN</name>
              <description>Dithering enable
Note: The DITHEN bit can only be modified when CEN bit is reset.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>DITHEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Dithering disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Dithering enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>TIM6 control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>MMS</name>
              <description>Master mode selection
These bits are used to select the information to be sent in master mode to slave timers for synchronization (TRGO). The combination is as follows:
Note: The clock of the slave timer or he peripheral receiving the tim_trgo must be enabled prior to receive events from the master timer, and must not be changed on-the-fly while triggers are received from the master timer.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>MMS</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Use UG bit from TIMx_EGR register</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enable</name>
                  <description>Use CNT bit from TIMx_CEN register</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Update</name>
                  <description>Use the update event</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>DIER</name>
          <displayName>DIER</displayName>
          <description>TIM6 DMA/Interrupt enable register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>UIE</name>
              <description>Update interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <name>UDE</name>
              <description>Update DMA request enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>TIM6 status register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>UIF</name>
              <description>Update interrupt flag
This bit is set by hardware on an update event. It is cleared by software.
On counter overflow if UDIS = 0 in the TIMx_CR1 register.
When CNT is reinitialized by software using the UG bit in the TIMx_EGR register, if URS = 0 and UDIS = 0 in the TIMx_CR1 register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>TIM6 event generation register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>UG</name>
              <description>Update generation
This bit can be set by software, it is automatically cleared by hardware.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>CNT</name>
          <displayName>CNT</displayName>
          <description>TIM6 counter</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CNT</name>
              <description>Counter value
Non-dithering mode (DITHEN = 0)
The register holds the counter value.
Dithering mode (DITHEN = 1)
The register only holds the non-dithered part in CNT[15:0]. The fractional part is not available.</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
This bit is a read-only copy of the UIF bit of the TIMx_ISR register. If the UIFREMAP bit in TIMx_CR1 is reset, bit 31 is reserved and read as 0.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>UIFCPYR</name>
                <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>
            </field>
          </fields>
        </register>
        <register>
          <name>PSC</name>
          <displayName>PSC</displayName>
          <description>TIM6 prescaler</description>
          <addressOffset>0x28</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>PSC</name>
              <description>Prescaler value
The counter clock frequency f&lt;sub&gt;tim_cnt_ck&lt;/sub&gt; is equal to f&lt;sub&gt;tim_psc_ck&lt;/sub&gt; / (PSC[15:0] + 1).
PSC contains the value to be loaded into the active prescaler register at each update event.
(including when the counter is cleared through UG bit of TIMx_EGR register.</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>ARR</name>
          <displayName>ARR</displayName>
          <description>TIM6 auto-reload register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x0000FFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ARR</name>
              <description>Auto-reload value
ARR is the value to be loaded into the actual auto-reload register.
Refer to Section 66.3.4: Time-base unit on page 3923 for more details about ARR update and behavior.
The counter is blocked while the auto-reload value is null.
Non-dithering mode (DITHEN = 0)
The register holds the auto-reload value in ARR[15:0]. The ARR[19:16] bits are reserved.
Dithering mode (DITHEN = 1)
The register holds the integer part in ARR[19:4]. The ARR[3:0] bitfield contains the dithered part.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>20</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1048575</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="TIM6">
      <name>TIM7</name>
      <description>Basic timers</description>
      <groupName>TIM</groupName>
      <baseAddress>0x40001400</baseAddress>
      <interrupt>
        <name>TIM7</name>
        <description>TIM7 global interrupt</description>
        <value>56</value>
      </interrupt>
    </peripheral>
    <peripheral>
      <name>TIM9</name>
      <description>General-purpose timers</description>
      <groupName>TIM</groupName>
      <baseAddress>0x42004C00</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x60</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>TIM9</name>
        <description>TIM9 global interrupt</description>
        <value>57</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>TIM9 control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>CEN</name>
              <description>Counter enable
CEN is cleared automatically in one-pulse mode, when an update event occurs.
Note: External clock and gated mode can work only if the CEN bit has been previously set by
software. However trigger mode can set the CEN bit automatically by hardware.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit is set and cleared by software to enable/disable update event (UEV) generation.
Counter overflow
Setting the UG bit
Buffered registers are then loaded with their preload values.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit is set and cleared by software to select the UEV event sources.
Counter overflow
Setting the UG bit
Update generation through the slave mode controller</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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
This bit-field indicates the division ratio between the timer clock (tim_ker_ck) frequency and sampling clock used by the digital filters (tim_tix),</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <enumeratedValues>
                <name>UIFREMAP</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>No remapping. UIF status bit is not copied to TIMx_CNT register bit 31</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Remapping enabled. UIF status bit is copied to TIMx_CNT register bit 31</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DITHEN</name>
              <description>Dithering enable
Note: The DITHEN bit can only be modified when CEN bit is reset.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>DITHEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Dithering disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Dithering enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>TIM12 control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>MMS</name>
              <description>Master mode selection
These bits allow to select the information to be sent in master mode to slave timers for
synchronization (tim_trgo). The combination is as follows:</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TI1S</name>
              <description>tim_ti1 selection</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SMCR</name>
          <displayName>SMCR</displayName>
          <description>TIM9 slave mode control register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SMS</name>
              <description>SMS[0]: Slave mode selection
When external signals are selected the active edge of the trigger signal (tim_trgi) is linked to the polarity selected on the external input (see Input Control register and Control Register description.
Other codes: reserved.
Note: The gated mode (including gated + reset mode) must not be used if tim_ti1f_ed is selected as the trigger input (TS=00100). Indeed, tim_ti1f_ed outputs 1 pulse for each transition on tim_ti1f, whereas the gated mode checks the level of the trigger signal.
Note: The clock of the slave peripherals (timer, ADC,...) receiving the tim_trgo signals must be enabled prior to receive events from the master timer, and must not be changed on-the-fly while triggers are received from the master timer.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS</name>
              <description>TS[0]: Trigger selection
This TS[4:0] bitfield selects the trigger input to be used to synchronize the counter.
Others: Reserved
See Table 658: TIMx internal trigger connection for more details on the meaning of tim_itrx for each timer.
Note: These bits must be changed only when they are not used (for example when SMS=000) to avoid wrong edge detections at the transition.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MSM</name>
              <description>Master/Slave mode</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMS_3</name>
              <description>SMS[3]</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS2</name>
              <description>TS[4:3]</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIER</name>
          <displayName>DIER</displayName>
          <description>TIM9 Interrupt enable register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>UIE</name>
              <description>Update interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sIE</name>
              <description>Capture/Compare %s interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>TIE</name>
              <description>Trigger interrupt enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>TIM9 status register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>UIF</name>
              <description>Update interrupt flag
This bit is set by hardware on an update event. It is cleared by software.
At overflow and if UDIS=0 in the TIMx_CR1 register.
When CNT is reinitialized by software using the UG bit in TIMx_EGR register, if URS=0 and UDIS=0 in the TIMx_CR1 register.
When CNT is reinitialized by a trigger event (refer toSection 67.7.3: TIMx slave mode control register (TIMx_SMCR)(x = 9, 12) ), if URS=0 and UDIS=0 in the TIMx_CR1 register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sIF</name>
              <description>Capture/compare %s interrupt flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>TIF</name>
              <description>Trigger interrupt flag
This flag is set by hardware on the TRG trigger event (active edge detected on tim_trgi input when the slave mode controller is enabled in all modes but gated mode. It is set when the counter starts or stops when gated mode is selected. It is cleared by software.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sOF</name>
              <description>Capture/Compare %s overcapture flag</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>EGR</name>
          <displayName>EGR</displayName>
          <description>TIM9 event generation register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>UG</name>
              <description>Update generation
This bit can be set by software, it is automatically cleared by hardware.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sG</name>
              <description>Capture/compare %s generation</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>TG</name>
              <description>Trigger generation
This bit is set by software in order to generate an event, it is automatically cleared by hardware.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>
          </fields>
        </register>
        <register>
          <name>CCMR1_Input</name>
          <displayName>CCMR1_Input</displayName>
          <description>TIM9 capture/compare mode register 1</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CC1S</name>
              <description>Capture/Compare 1 selection
This bitfield defines the direction of the channel (input/output) as well as the used input.
Note: The CC1S bits are writable only when the channel is OFF (CC1E = 0 in TIMx_CCER).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <name>CC2S</name>
              <description>Capture/compare 2 selection
This bitfield defines the direction of the channel (input/output) as well as the used input. 
Note: The CC2S bits are writable only when the channel is OFF (CC2E = 0 in TIMx_CCER).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>CCMR1_Output</name>
          <displayName>CCMR1_Output</displayName>
          <description>TIM9 capture/compare mode register 1</description>
          <alternateRegister>CCMR1_Input</alternateRegister>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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 / Reserved</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PwmMode2</name>
                  <description>Inversely to PwmMode1 / Reserved</description>
                  <value>7</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>
              <access>read-write</access>
              <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>CCER</name>
          <displayName>CCER</displayName>
          <description>TIM9 capture/compare enable register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <dim>2</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sE</name>
              <description>Capture/Compare %s output enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>2</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>2</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sNP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT</name>
          <displayName>CNT</displayName>
          <description>TIM9 counter</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CNT</name>
              <description>Counter value
Non-dithering mode (DITHEN = 0)
The register holds the counter value.
Dithering mode (DITHEN = 1)
The register only holds the non-dithered part in CNT[15:0]. The fractional part is not available.</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
This bit is a read-only copy of the UIF bit in the TIMx_ISR register.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>UIFCPYR</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>
            </field>
          </fields>
        </register>
        <register>
          <name>PSC</name>
          <displayName>PSC</displayName>
          <description>TIM9 prescaler</description>
          <addressOffset>0x28</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>PSC</name>
              <description>Prescaler value
The counter clock frequency tim_cnt_ck is equal to f&lt;sub&gt;tim_psc_ck&lt;/sub&gt; / (PSC[15:0] + 1).
PSC contains the value to be loaded into the active prescaler register at each update event.
(including when the counter is cleared through UG bit of TIMx_EGR register or through trigger controller when configured in reset mode).</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>ARR</name>
          <displayName>ARR</displayName>
          <description>TIM9 auto-reload register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x0000FFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ARR</name>
              <description>Auto-reload value
ARR is the value to be loaded in the actual auto-reload register.
Refer to the Section 67.4.3: Time-base unit on page 3951 for more details about ARR update and behavior.
The counter is blocked while the auto-reload value is null.
Non-dithering mode (DITHEN = 0)
The register holds the auto-reload value in ARR[15:0]. The ARR[19:16] bits are reset.
Dithering mode (DITHEN = 1)
The register holds the integer part in ARR[19:4]. The ARR[3:0] bitfield contains the dithered part.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>20</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1048575</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>2</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>1-2</dimIndex>
          <name>CCR%s</name>
          <displayName>CCR%s</displayName>
          <description>capture/compare register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CCR</name>
              <description>Capture/Compare value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>20</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1048575</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>TISEL</name>
          <displayName>TISEL</displayName>
          <description>TIM9 timer input selection register</description>
          <addressOffset>0x5C</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>TI1SEL</name>
              <description>selects tim_ti1_in[15:0] input
...
Refer to Table 656: Interconnect to the tim_ti1 input multiplexer for interconnects list.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TI2SEL</name>
              <description>selects tim_ti2_in[15:0] input
...
Refer to Table 657: Interconnect to the tim_ti2 input multiplexer for interconnects list.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="TIM9">
      <name>TIM12</name>
      <description>General-purpose timers</description>
      <groupName>TIM</groupName>
      <baseAddress>0x40001800</baseAddress>
      <interrupt>
        <name>TIM12</name>
        <description>TIM12 global interrupt</description>
        <value>113</value>
      </interrupt>
    </peripheral>
    <peripheral>
      <name>TIM13</name>
      <description>General-purpose timers</description>
      <groupName>TIM</groupName>
      <baseAddress>0x40001C00</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x60</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>TIM13</name>
        <description>TIM13 global interrupt</description>
        <value>114</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>TIM13 control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>CEN</name>
              <description>Counter enable
Note: External clock and gated mode can work only if the CEN bit has been previously set by
software. However trigger mode can set the CEN bit automatically by hardware.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit is set and cleared by software to enable/disable update interrupt (UEV) event generation.
Counter overflow
Setting the UG bit.
Buffered registers are then loaded with their preload values.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit is set and cleared by software to select the update interrupt (UEV) sources.
Counter overflow
Setting the UG bit</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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
This bit-field indicates the division ratio between the timer clock (tim_ker_ck) frequency and sampling clock used by the digital filters (tim_tix),</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <enumeratedValues>
                <name>UIFREMAP</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>No remapping. UIF status bit is not copied to TIMx_CNT register bit 31</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Remapping enabled. UIF status bit is copied to TIMx_CNT register bit 31</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DITHEN</name>
              <description>Dithering enable
Note: The DITHEN bit can only be modified when CEN bit is reset.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>DITHEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Dithering disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Dithering enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>DIER</name>
          <displayName>DIER</displayName>
          <description>TIM13 Interrupt enable register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>UIE</name>
              <description>Update interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>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>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>TIM13 status register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>UIF</name>
              <description>Update interrupt flag
This bit is set by hardware on an update event. It is cleared by software.
At overflow and if UDIS=0 in the TIMx_CR1 register.
When CNT is reinitialized by software using the UG bit in TIMx_EGR register, if URS=0 and UDIS=0 in the TIMx_CR1 register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>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>
              <access>read-write</access>
              <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>
              <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>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>EGR</name>
          <displayName>EGR</displayName>
          <description>TIM13 event generation register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>UG</name>
              <description>Update generation
This bit can be set by software, it is automatically cleared by hardware.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>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>
              <access>write-only</access>
              <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>
          </fields>
        </register>
        <register>
          <name>CCMR1_Input</name>
          <displayName>CCMR1_Input</displayName>
          <description>TIM13 capture/compare mode register 1</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CC1S</name>
              <description>Capture/Compare 1 selection
This bit-field defines the direction of the channel (input/output) as well as the used input. 
Note: CC1S bits are writable only when the channel is OFF (CC1E = 0 in TIMx_CCER).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
            <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>
              <access>read-write</access>
              <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>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>
              <access>read-write</access>
              <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>CCMR1_Output</name>
          <displayName>CCMR1_Output</displayName>
          <description>TIM13 capture/compare mode register 1</description>
          <alternateRegister>CCMR1_Input</alternateRegister>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <name>OC1M_1</name>
              <description>OC1M[3]</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CCER</name>
          <displayName>CCER</displayName>
          <description>TIM13 capture/compare enable register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <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>
              <access>read-write</access>
              <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>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>
              <access>read-write</access>
              <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%sNP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT</name>
          <displayName>CNT</displayName>
          <description>TIM13 counter</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CNT</name>
              <description>Counter value
Non-dithering mode (DITHEN = 0)
The register holds the counter value.
Dithering mode (DITHEN = 1)
The register only holds the non-dithered part in CNT[15:0]. The fractional part is not available.</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
This bit is a read-only copy of the UIF bit in the TIMx_ISR register.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>UIFCPYR</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>
            </field>
          </fields>
        </register>
        <register>
          <name>PSC</name>
          <displayName>PSC</displayName>
          <description>TIM13 prescaler</description>
          <addressOffset>0x28</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>PSC</name>
              <description>Prescaler value
The counter clock frequency tim_cnt_ck is equal to f&lt;sub&gt;tim_psc_ck&lt;/sub&gt; / (PSC[15:0] + 1).
PSC contains the value to be loaded in the active prescaler register at each update event.
(including when the counter is cleared through UG bit of TIMx_EGR register or through trigger controller when configured in reset mode).</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>ARR</name>
          <displayName>ARR</displayName>
          <description>TIM13 auto-reload register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x0000FFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ARR</name>
              <description>Auto-reload value
ARR is the value to be loaded in the actual auto-reload register.
Refer to the Section 67.4.3: Time-base unit on page 3951 for more details about ARR update and behavior.
The counter is blocked while the auto-reload value is null.
Non-dithering mode (DITHEN = 0)
The register holds the auto-reload value in ARR[15:0]. The ARR[19:16] bits are reset.
Dithering mode (DITHEN = 1)
The register holds the integer part in ARR[19:4]. The ARR[3:0] bitfield contains the dithered part.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>20</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1048575</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>1</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>1-1</dimIndex>
          <name>CCR%s</name>
          <displayName>CCR%s</displayName>
          <description>capture/compare register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CCR</name>
              <description>Capture/Compare value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>20</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1048575</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>TISEL</name>
          <displayName>TISEL</displayName>
          <description>TIM13 timer input selection register</description>
          <addressOffset>0x5C</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>TI1SEL</name>
              <description>selects tim_ti1_in[15:0] input
...
Refer to Table 656: Interconnect to the tim_ti1 input multiplexer for interconnects list.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="TIM13">
      <name>TIM14</name>
      <description>General-purpose timers</description>
      <groupName>TIM</groupName>
      <baseAddress>0x40002000</baseAddress>
      <interrupt>
        <name>TIM14</name>
        <description>TIM14 global interrupt</description>
        <value>115</value>
      </interrupt>
    </peripheral>
    <peripheral>
      <name>TIM15</name>
      <description>General purpose timers</description>
      <groupName>TIM</groupName>
      <baseAddress>0x42004000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x3E4</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>TIM15</name>
        <description>TIM15 global interrupt</description>
        <value>116</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>TIM15 control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>CEN</name>
              <description>Counter enable
Note: External clock and gated mode can work only if the CEN bit has been previously set by software. However trigger mode can set the CEN bit automatically by hardware.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit is set and cleared by software to enable/disable UEV event generation.
Counter overflow/underflow
Setting the UG bit
Update generation through the slave mode controller
	Buffered registers are then loaded with their preload values.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit is set and cleared by software to select the UEV event sources.
Counter overflow/underflow
Setting the UG bit
Update generation through the slave mode controller</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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
This bitfield indicates the division ratio between the timer clock (tim_ker_ck) frequency and the dead-time and sampling clock (t&lt;sub&gt;DTS&lt;/sub&gt;) used by the dead-time generators and the digital filters (tim_tix)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <enumeratedValues>
                <name>UIFREMAP</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>No remapping. UIF status bit is not copied to TIMx_CNT register bit 31</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Remapping enabled. UIF status bit is copied to TIMx_CNT register bit 31</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DITHEN</name>
              <description>Dithering enable
Note: The DITHEN bit can only be modified when CEN bit is reset.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>DITHEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Dithering disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Dithering enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>TIM15 control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>CCPC</name>
              <description>Capture/compare preloaded control
Note: This bit acts only on channels that have a complementary output.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
            <field>
              <name>CCUS</name>
              <description>Capture/compare control update selection
Note: This bit acts only on channels that have a complementary output.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>CCDS</name>
              <description>Capture/compare DMA selection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>MMS</name>
              <description>Master mode selection
These bits are used to select the information to be sent in master mode to slave timers for synchronization (tim_trgo). The combination is as follows:</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TI1S</name>
              <description>tim_ti1 selection</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OIS%s</name>
              <description>Output Idle state (OC%s output)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>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>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>SMCR</name>
          <displayName>SMCR</displayName>
          <description>TIM15 slave mode control register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SMS</name>
              <description>SMS[0]: Slave mode selection
When external signals are selected the active edge of the trigger signal (tim_trgi) is linked to the polarity selected on the external input (see Input Control register and Control Register description.
Others: Reserved.
Note: The gated mode must not be used if tim_ti1f_ed is selected as the trigger input (TS=00100). Indeed, tim_ti1f_ed outputs 1 pulse for each transition on tim_ti1f, whereas the gated mode checks the level of the trigger signal.
Note: The clock of the slave peripherals (timer, ADC, ...) receiving the tim_trgo signal must be enabled prior to receive events from the master timer, and the clock frequency (prescaler) must not be changed on-the-fly while triggers are received from the master timer.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS</name>
              <description>TS[0]: Trigger selection
This bit field selects the trigger input to be used to synchronize the counter.
Others: Reserved
See Section 68.4.2: TIM15/TIM16/TIM17 pins and internal signals for more details on tim_itrx meaning for each timer.
Note: These bits must be changed only when they are not used (for example when SMS=000) to avoid wrong edge detections at the transition.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MSM</name>
              <description>Master/slave mode</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMS_3</name>
              <description>SMS[3]</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TS2</name>
              <description>TS[4:3]</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DIER</name>
          <displayName>DIER</displayName>
          <description>TIM15 DMA/interrupt enable register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>UIE</name>
              <description>Update interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sIE</name>
              <description>Capture/Compare %s interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sDE</name>
              <description>Capture/Compare %s DMA request enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>TIM15 status register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>UIF</name>
              <description>Update interrupt flag
This bit is set by hardware on an update event. It is cleared by software.
At overflow regarding the repetition counter value (update if repetition counter = 0) and if the UDIS=0 in the TIM15_CR1 register.
When CNT is reinitialized by software using the UG bit in TIM15_EGR register, if URS=0 and UDIS=0 in the TIM15_CR1 register.
When CNT is reinitialized by a trigger event (refer to Section 68.7.3: TIM15 slave mode control register (TIM15_SMCR)), if URS=0 and UDIS=0 in the TIM15_CR1 register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sIF</name>
              <description>Capture/compare %s interrupt flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This flag is set by hardware on a COM event (once the capture/compare control bits  CCxE, CCxNE, OCxM  have been updated). It is cleared by software.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This flag is set by hardware on the TRG trigger event (active edge detected on tim_trgi input when the slave mode controller is enabled in all modes but gated mode, both edges in case gated mode is selected). It is set when the counter starts or stops when gated mode is selected. It is cleared by software.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This flag is set by hardware as soon as the break input goes active. It can be cleared by software if the break input is not active.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <dim>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sOF</name>
              <description>Capture/Compare %s overcapture flag</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>EGR</name>
          <displayName>EGR</displayName>
          <description>TIM15 event generation register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>UG</name>
              <description>Update generation
This bit can be set by software, it is automatically cleared by hardware.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sG</name>
              <description>Capture/compare %s generation</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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
This bit can be set by software, it is automatically cleared by hardware.
Note: This bit acts only on channels that have a complementary output.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>COMGW</name>
                <usage>write</usage>
                <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
This bit is set by software in order to generate an event, it is automatically cleared by hardware.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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
This bit is set by software in order to generate an event, it is automatically cleared by hardware.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>
          </fields>
        </register>
        <register>
          <name>CCMR1_Input</name>
          <displayName>CCMR1_Input</displayName>
          <description>TIM15 capture/compare mode register 1 [alternate]</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CC1S</name>
              <description>Capture/Compare 1 selection
This bit-field defines the direction of the channel (input/output) as well as the used input. 
Note: CC1S bits are writable only when the channel is OFF (CC1E = 0 in TIM15_CCER).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <name>CC2S</name>
              <description>Capture/Compare 2 selection
This bit-field defines the direction of the channel (input/output) as well as the used input. 
Note: CC2S bits are writable only when the channel is OFF (CC2E = 0 in TIM15_CCER).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>CCMR1_Output</name>
          <displayName>CCMR1_Output</displayName>
          <description>TIM15 capture/compare mode register 1 [alternate]</description>
          <alternateRegister>CCMR1_Input</alternateRegister>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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 / Reserved</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PwmMode2</name>
                  <description>Inversely to PwmMode1 / Reserved</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>
              <access>read-write</access>
              <enumeratedValues>
                <name>OC1CE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>OCxRef is not affected by the ocref_clr_int signal</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>OCxRef is cleared as soon as a High level is detected on ocref_clr_int 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>
              <access>read-write</access>
              <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>CCER</name>
          <displayName>CCER</displayName>
          <description>TIM15 capture/compare enable register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <dim>2</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sE</name>
              <description>Capture/Compare %s output enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>2</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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%sNE</name>
              <description>Capture/Compare %s complementary output enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>2</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sNP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>TIM15 counter</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CNT</name>
              <description>Counter value
Non-dithering mode (DITHEN = 0)
The register holds the counter value.
Dithering mode (DITHEN = 1)
The register only holds the non-dithered part in CNT[15:0]. The fractional part is not available.</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
This bit is a read-only copy of the UIF bit in the TIM15_ISR register.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>UIFCPYR</name>
                <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>
            </field>
          </fields>
        </register>
        <register>
          <name>PSC</name>
          <displayName>PSC</displayName>
          <description>TIM15 prescaler</description>
          <addressOffset>0x28</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>PSC</name>
              <description>Prescaler value
The counter clock frequency (f&lt;sub&gt;tim_cnt_ck&lt;/sub&gt;) is equal to f&lt;sub&gt;tim_psc_ck&lt;/sub&gt; / (PSC[15:0] + 1).
PSC contains the value to be loaded in the active prescaler register at each update event (including when the counter is cleared through UG bit of TIM15_EGR register or through trigger controller when configured in reset mode).</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>ARR</name>
          <displayName>ARR</displayName>
          <description>TIM15 auto-reload register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x0000FFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ARR</name>
              <description>Auto-reload value
ARR is the value to be loaded in the actual auto-reload register.
Refer to the Section 68.4.3: Time-base unit on page 4032 for more details about ARR update and behavior.
The counter is blocked while the auto-reload value is null.
Non-dithering mode (DITHEN = 0)
The register holds the auto-reload value in ARR[15:0]. The ARR[19:16] bits are reset.
Dithering mode (DITHEN = 1)
The register holds the integer part in ARR[19:4]. The ARR[3:0] bitfield contains the dithered part.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>20</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1048575</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RCR</name>
          <displayName>RCR</displayName>
          <description>TIM15 repetition counter register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>REP</name>
              <description>Repetition counter reload value
This bitfield defines the update rate of the compare registers (i.e. periodic transfers from preload to active registers) when preload registers are enable. It also defines the update interrupt generation rate, if this interrupt is enable.
When the repetition down-counter reaches zero, an update event is generated and it restarts counting from REP value. As the reptition counter is reloaded with REP value only at the repetition update event UEV, any write to the TIM15_RCR register is not taken in account until the next repetition update event.
It means in PWM mode (REP+1) corresponds to the number of PWM periods in edge-aligned mode:
the number of PWM periods in edge-aligned mode
the number of half PWM period in center-aligned mode</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>2</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>1-2</dimIndex>
          <name>CCR%s</name>
          <displayName>CCR%s</displayName>
          <description>capture/compare register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CCR</name>
              <description>Capture/Compare value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>20</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1048575</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>BDTR</name>
          <displayName>BDTR</displayName>
          <description>TIM15 break and dead-time register</description>
          <addressOffset>0x44</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DTG</name>
              <description>Dead-time generator setup
This bit-field defines the duration of the dead-time inserted between the complementary outputs. DT correspond to this duration.
DTG[7:5]=0xx =&gt; DT=DTG[7:0]x t&lt;sub&gt;dtg&lt;/sub&gt; with t&lt;sub&gt;dtg&lt;/sub&gt;=t&lt;sub&gt;DTS&lt;/sub&gt;
DTG[7:5]=10x =&gt; DT=(64+DTG[5:0])xt&lt;sub&gt;dtg&lt;/sub&gt; with T&lt;sub&gt;dtg&lt;/sub&gt;=2xt&lt;sub&gt;DTS&lt;/sub&gt;
DTG[7:5]=110 =&gt; DT=(32+DTG[4:0])xt&lt;sub&gt;dtg&lt;/sub&gt; with T&lt;sub&gt;dtg&lt;/sub&gt;=8xt&lt;sub&gt;DTS&lt;/sub&gt;
DTG[7:5]=111 =&gt; DT=(32+DTG[4:0])xt&lt;sub&gt;dtg&lt;/sub&gt; with T&lt;sub&gt;dtg&lt;/sub&gt;=16xt&lt;sub&gt;DTS&lt;/sub&gt;
Example if T&lt;sub&gt;DTS&lt;/sub&gt;=125ns (8MHz), dead-time possible values are:
0 to 15875 ns by 125 ns steps,
16  s to 31750 ns by 250 ns steps,
32  s to 63  s by 1  s steps,
64  s to 126  s by 2  s steps
Note: This bit-field can not be modified as long as LOCK level 1, 2 or 3 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>LOCK</name>
              <description>Lock configuration
These bits offer a write protection against software errors.
Note: The LOCK bits can be written only once after the reset. Once the TIM15_BDTR register has been written, their content is frozen until the next reset.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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
This bit is used when MOE=0 on channels configured as outputs.
See tim_ocx/tim_ocxn enable description for more details (Section 68.7.9: TIM15 capture/compare enable register (TIM15_CCER) on page 4085).
Note: This bit can not be modified as soon as the LOCK level 2 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit is used when MOE=1 on channels that have a complementary output which are configured as outputs. OSSR is not implemented if no complementary output is implemented in the timer.
See tim_ocx/tim_ocxn enable description for more details (Section 68.7.9: TIM15 capture/compare enable register (TIM15_CCER) on page 4085).
Note: This bit can not be modified as soon as the LOCK level 2 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
1; Break inputs (tim_brk and tim_sys_brk clock failure event) enabled
This bit cannot be modified when LOCK level 1 has been programmed (LOCK bits in TIM15_BDTR register).
Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIM15_BDTR register).
Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit is cleared asynchronously by hardware as soon as the tim_brk input is active. It is set by software or automatically depending on the AOE bit. It is acting only on the channels which are configured in output.
See tim_ocx/tim_ocxn enable description for more details (Section 68.7.9: TIM15 capture/compare enable register (TIM15_CCER) on page 4085).</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit-field defines the frequency used to sample the tim_brk input signal and the length of the digital filter applied to tim_brk. The digital filter is made of an event counter in which N events are needed to validate a transition on the output:
Note: This bit cannot be modified when LOCK level 1 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKDSRM</name>
              <description>Break disarm
This bit is cleared by hardware when no break source is active.
The BKDSRM bit must be set by software to release the bidirectional output control (open-drain output in Hi-Z state) and then be polled until it is reset by hardware, indicating that the fault condition has disappeared.
Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKBID</name>
              <description>Break bidirectional
In the bidirectional mode (BKBID bit set to 1), the break input is configured both in input mode and in open drain output mode. Any active break event asserts a low logic level on the Break input to indicate an internal break event to external devices.
Note: This bit cannot be modified as long as LOCK level 1 has been programmed (LOCK bits in TIM15_BDTR register).
Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DTR2</name>
          <displayName>DTR2</displayName>
          <description>TIM15 timer deadtime register 2</description>
          <addressOffset>0x54</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DTGF</name>
              <description>Dead-time falling edge generator setup
This bit-field defines the duration of the dead-time inserted between the complementary outputs, on the falling edge.
DTGF[7:5]=0xx =&gt; DTF=DTGF[7:0]x t&lt;sub&gt;dtg&lt;/sub&gt; with t&lt;sub&gt;dtg&lt;/sub&gt;=t&lt;sub&gt;DTS&lt;/sub&gt;.
DTGF[7:5]=10x =&gt; DTF=(64+DTGF[5:0])xt&lt;sub&gt;dtg&lt;/sub&gt; with T&lt;sub&gt;dtg&lt;/sub&gt;=2xt&lt;sub&gt;DTS&lt;/sub&gt;.
DTGF[7:5]=110 =&gt; DTF=(32+DTGF[4:0])xt&lt;sub&gt;dtg&lt;/sub&gt; with T&lt;sub&gt;dtg&lt;/sub&gt;=8xt&lt;sub&gt;DTS&lt;/sub&gt;.
DTGF[7:5]=111 =&gt; DTF=(32+DTGF[4:0])xt&lt;sub&gt;dtg&lt;/sub&gt; with T&lt;sub&gt;dtg&lt;/sub&gt;=16xt&lt;sub&gt;DTS&lt;/sub&gt;.
Example if T&lt;sub&gt;DTS&lt;/sub&gt;=125ns (8MHz), dead-time possible values are:
0 to 15875 ns by 125 ns steps,
16 us to 31750 ns by 250 ns steps,
32 us to 63us by 1 us steps,
64 us to 126 us by 2 us steps
Note: This bit-field can not be modified as long as LOCK level 1, 2 or 3 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTAE</name>
              <description>Deadtime asymmetric enable
Note: This bit can not be modified as long as LOCK level 1, 2 or 3 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTPE</name>
              <description>Deadtime preload enable
Note: This bit can not be modified as long as LOCK level 1, 2 or 3 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TISEL</name>
          <displayName>TISEL</displayName>
          <description>TIM15 input selection register</description>
          <addressOffset>0x5C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TI1SEL</name>
              <description>selects tim_ti1_in[15:0] input
...
Refer to Section 68.4.2: TIM15/TIM16/TIM17 pins and internal signals for interconnects list.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TI2SEL</name>
              <description>selects tim_ti2_in[15:0] input
...
Refer to Section 68.4.2: TIM15/TIM16/TIM17 pins and internal signals for interconnects list.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>AF1</name>
          <displayName>AF1</displayName>
          <description>TIM15 alternate function register 1</description>
          <addressOffset>0x60</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000001</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BKINE</name>
              <description>TIMx_BKIN input enable
This bit enables the TIMx_BKIN alternate function input for the timers tim_brk input. TIMx_BKIN input is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP1E</name>
              <description>tim_brk_cmp1 enable
This bit enables the tim_brk_cmp1 for the timers tim_brk input. tim_brk_cmp1 output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP2E</name>
              <description>tim_brk_cmp2 enable
This bit enables the tim_brk_cmp2 for the timers tim_brk input. tim_brk_cmp2 output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP3E</name>
              <description>tim_brk_cmp3 enable
This bit enables the tim_brk_cmp3 for the timers tim_brk input. tim_brk_cmp3 output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP4E</name>
              <description>tim_brk_cmp4 enable
This bit enables the tim_brk_cmp4 for the timers tim_brk input. tim_brk_cmp4 output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP5E</name>
              <description>tim_brk_cmp5 enable
This bit enables the tim_brk_cmp5 for the timers tim_brk input. tim_brk_cmp5 output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP6E</name>
              <description>tim_brk_cmp6 enable
This bit enables the tim_brk_cmp6 for the timers tim_brk input. tim_brk_cmp6 output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP7E</name>
              <description>tim_brk_cmp7 enable
This bit enables the tim_brk_cmp7 for the timers tim_brk input. COMP7 output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP8E</name>
              <description>tim_brk_cmp8 enable
This bit enables the tim_brk_cmp8 for the timers tim_brk input. mdf_brkx output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKINP</name>
              <description>TIMx_BKIN input polarity
This bit selects the TIMx_BKIN alternate function input sensitivity. It must be programmed together with the BKP polarity bit.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP1P</name>
              <description>tim_brk_cmp1 input polarity
This bit selects the tim_brk_cmp1 input sensitivity. It must be programmed together with the BKP polarity bit.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP2P</name>
              <description>tim_brk_cmp2 input polarity
This bit selects the tim_brk_cmp2 input sensitivity. It must be programmed together with the BKP polarity bit.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP3P</name>
              <description>tim_brk_cmp3 input polarity
This bit selects the tim_brk_cmp3 input sensitivity. It must be programmed together with the BKP polarity bit.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP4P</name>
              <description>tim_brk_cmp4 input polarity
This bit selects the tim_brk_cmp4 input sensitivity. It must be programmed together with the BKP polarity bit.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>AF2</name>
          <displayName>AF2</displayName>
          <description>TIM15 alternate function register 2</description>
          <addressOffset>0x64</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OCRSEL</name>
              <description>ocref_clr source selection
These bits select the ocref_clr input source.
Refer to Section 68.4.2: TIM15/TIM16/TIM17 pins and internal signals for product specific implementation.
Note: These bits can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIM15_BDTR register).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DCR</name>
          <displayName>DCR</displayName>
          <description>TIM15 DMA control register</description>
          <addressOffset>0x3DC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DBA</name>
              <description>DMA base address
This 5-bit field defines the base-address for DMA transfers (when read/write access are done through the TIM15_DMAR address). DBA is defined as an offset starting from the address of the TIM15_CR1 register.
Example:
...</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBL</name>
              <description>DMA burst length
This 5-bit field defines the length of DMA transfers (the timer recognizes a burst transfer when a read or a write access is done to the TIM15_DMAR address).
...</description>
              <bitOffset>8</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBSS</name>
              <description>DMA burst source selection
This bitfield defines the interrupt source that triggers the DMA burst transfers (the timer recognizes a burst transfer when a read or a write access is done to the TIMx_DMAR address).
Other: reserved</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMAR</name>
          <displayName>DMAR</displayName>
          <description>TIM15 DMA address for full transfer</description>
          <addressOffset>0x3E0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAB</name>
              <description>DMA register for burst accesses
A read or write operation to the DMAR register accesses the register located at the address
(TIM15_CR1 address) + (DBA + DMA index) x 4 
where TIM15_CR1 address is the address of the control register 1, DBA is the DMA base address configured in TIM15_DCR register, DMA index is automatically controlled by the DMA transfer, and ranges from 0 to DBL (DBL configured in TIM15_DCR).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>TIM16</name>
      <description>General purpose timers</description>
      <groupName>TIM</groupName>
      <baseAddress>0x42004400</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x3E4</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>TIM16</name>
        <description>TIM16 global interrupt</description>
        <value>117</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>TIM16 control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>CEN</name>
              <description>Counter enable
Note: External clock and gated mode can work only if the CEN bit has been previously set by software. However trigger mode can set the CEN bit automatically by hardware.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit is set and cleared by software to enable/disable UEV event generation.
Counter overflow/underflow
Setting the UG bit
Update generation through the slave mode controller
	Buffered registers are then loaded with their preload values.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit is set and cleared by software to select the UEV event sources.
Counter overflow/underflow
Setting the UG bit
Update generation through the slave mode controller</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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
This bit-field indicates the division ratio between the timer clock (tim_ker_ck) frequency and the dead-time and sampling clock (t&lt;sub&gt;DTS&lt;/sub&gt;)used by the dead-time generators and the digital filters (tim_tix),</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <enumeratedValues>
                <name>UIFREMAP</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>No remapping. UIF status bit is not copied to TIMx_CNT register bit 31</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Remapping enabled. UIF status bit is copied to TIMx_CNT register bit 31</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DITHEN</name>
              <description>Dithering enable
Note: The DITHEN bit can only be modified when CEN bit is reset.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>DITHEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Dithering disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Dithering enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>TIM16 control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>CCPC</name>
              <description>Capture/compare preloaded control
Note: This bit acts only on channels that have a complementary output.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
            <field>
              <name>CCUS</name>
              <description>Capture/compare control update selection
Note: This bit acts only on channels that have a complementary output.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>CCDS</name>
              <description>Capture/compare DMA selection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <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>
              <access>read-write</access>
              <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>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>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>DIER</name>
          <displayName>DIER</displayName>
          <description>TIM16 DMA/interrupt enable register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>UIE</name>
              <description>Update interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>BIE</name>
              <description>Break interrupt enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>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>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>TIM16 status register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>UIF</name>
              <description>Update interrupt flag
This bit is set by hardware on an update event. It is cleared by software.
At overflow regarding the repetition counter value (update if repetition counter = 0) and if the UDIS=0 in the TIMx_CR1 register.
When CNT is reinitialized by software using the UG bit in TIMx_EGR register, if URS=0 and UDIS=0 in the TIMx_CR1 register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>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>
              <access>read-write</access>
              <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
This flag is set by hardware on a COM event (once the capture/compare control bits  CCxE, CCxNE, OCxM  have been updated). It is cleared by software.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>BIF</name>
              <description>Break interrupt flag
This flag is set by hardware as soon as the tim_brk input goes active. It can be cleared by software if the break input is not active.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
              <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>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>EGR</name>
          <displayName>EGR</displayName>
          <description>TIM16 event generation register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>UG</name>
              <description>Update generation
This bit can be set by software, it is automatically cleared by hardware.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>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>
              <access>write-only</access>
              <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
This bit can be set by software, it is automatically cleared by hardware.
Note: This bit acts only on channels that have a complementary output.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>BG</name>
              <description>Break generation
This bit is set by software in order to generate an event, it is automatically cleared by hardware.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>
          </fields>
        </register>
        <register>
          <name>CCMR1_Input</name>
          <displayName>CCMR1_Input</displayName>
          <description>TIM16 capture/compare mode register 1</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CC1S</name>
              <description>Capture/Compare 1 selection
This bit-field defines the direction of the channel (input/output) as well as the used input.
Others: Reserved
Note: CC1S bits are writable only when the channel is OFF (CC1E = 0 in TIMx_CCER).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>
            <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>
              <access>read-write</access>
              <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>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>
              <access>read-write</access>
              <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>CCMR1_Output</name>
          <displayName>CCMR1_Output</displayName>
          <description>TIM16 capture/compare mode register 1 [alternate]</description>
          <alternateRegister>CCMR1_Input</alternateRegister>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>
              <access>read-write</access>
              <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>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>
              <access>read-write</access>
              <enumeratedValues>
                <name>OC1CE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>OCxRef is not affected by the ocref_clr_int signal</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>OCxRef is cleared as soon as a High level is detected on ocref_clr_int signal</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OC1M_1</name>
              <description>OC1M[3]</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>OC2M_1</name>
              <description>OC2M[3]</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CCER</name>
          <displayName>CCER</displayName>
          <description>TIM16 capture/compare enable register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <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>
              <access>read-write</access>
              <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>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>
              <access>read-write</access>
              <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%sNE</name>
              <description>Capture/Compare %s complementary output enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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%sNP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>TIM16 counter</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CNT</name>
              <description>Counter value
Non-dithering mode (DITHEN = 0)
The register holds the counter value.
Dithering mode (DITHEN = 1)
The register only holds the non-dithered part in CNT[15:0]. The fractional part is not available.</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
This bit is a read-only copy of the UIF bit of the TIMx_ISR register. If the UIFREMAP bit in TIMx_CR1 is reset, bit 31 is reserved.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>UIFCPYR</name>
                <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>
            </field>
          </fields>
        </register>
        <register>
          <name>PSC</name>
          <displayName>PSC</displayName>
          <description>TIM16 prescaler</description>
          <addressOffset>0x28</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>PSC</name>
              <description>Prescaler value
The counter clock frequency (tim_cnt_ck) is equal to f&lt;sub&gt;tim_psc_ck&lt;/sub&gt; / (PSC[15:0] + 1).
PSC contains the value to be loaded in the active prescaler register at each update event (including when the counter is cleared through UG bit of TIMx_EGR register or through trigger controller when configured in reset mode).</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>ARR</name>
          <displayName>ARR</displayName>
          <description>TIM16 auto-reload register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x0000FFFF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ARR</name>
              <description>Auto-reload value
ARR is the value to be loaded in the actual auto-reload register.
Refer to the Section 68.4.3: Time-base unit on page 4032 for more details about ARR update and behavior.
The counter is blocked while the auto-reload value is null.
Non-dithering mode (DITHEN = 0)
The register holds the auto-reload value in ARR[15:0]. The ARR[19:16] bits are reset.
Dithering mode (DITHEN = 1)
The register holds the integer part in ARR[19:4]. The ARR[3:0] bitfield contains the dithered part.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>20</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1048575</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RCR</name>
          <displayName>RCR</displayName>
          <description>TIM16 repetition counter register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>REP</name>
              <description>Repetition counter reload value
This bitfield defines the update rate of the compare registers (i.e. periodic transfers from preload to active registers) when preload registers are enable. It also defines the update interrupt generation rate, if this interrupt is enable.
When the repetition down-counter reaches zero, an update event is generated and it restarts counting from REP value. As the repetition counter is reloaded with REP value only at the repetition update event UEV, any write to the TIMx_RCR register is not taken in account until the next repetition update event.
It means in PWM mode (REP+1) corresponds to the number of PWM periods in edge-aligned mode:
the number of PWM periods in edge-aligned mode
the number of half PWM period in center-aligned mode</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>1</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>1-1</dimIndex>
          <name>CCR%s</name>
          <displayName>CCR%s</displayName>
          <description>capture/compare register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CCR</name>
              <description>Capture/Compare value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>20</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1048575</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>BDTR</name>
          <displayName>BDTR</displayName>
          <description>TIM16 break and dead-time register</description>
          <addressOffset>0x44</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DTG</name>
              <description>Dead-time generator setup
This bit-field defines the duration of the dead-time inserted between the complementary outputs. DT correspond to this duration.
DTG[7:5]=0xx =&gt; DT=DTG[7:0]x t&lt;sub&gt;dtg&lt;/sub&gt; with t&lt;sub&gt;dtg&lt;/sub&gt;=t&lt;sub&gt;DTS&lt;/sub&gt;
DTG[7:5]=10x =&gt; DT=(64+DTG[5:0])xt&lt;sub&gt;dtg&lt;/sub&gt; with T&lt;sub&gt;dtg&lt;/sub&gt;=2xt&lt;sub&gt;DTS&lt;/sub&gt;
DTG[7:5]=110 =&gt; DT=(32+DTG[4:0])xt&lt;sub&gt;dtg&lt;/sub&gt; with T&lt;sub&gt;dtg&lt;/sub&gt;=8xt&lt;sub&gt;DTS&lt;/sub&gt;
DTG[7:5]=111 =&gt; DT=(32+DTG[4:0])xt&lt;sub&gt;dtg&lt;/sub&gt; with T&lt;sub&gt;dtg&lt;/sub&gt;=16xt&lt;sub&gt;DTS&lt;/sub&gt;
Example if T&lt;sub&gt;DTS&lt;/sub&gt;=125ns (8MHz), dead-time possible values are:
0 to 15875 ns by 125 ns steps,
16  s to 31750 ns by 250 ns steps,
32  s to 63  s by 1  s steps,
64  s to 126  s by 2  s steps
Note: This bit-field can not be modified as long as LOCK level 1, 2 or 3 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>LOCK</name>
              <description>Lock configuration
These bits offer a write protection against software errors.
Note: The LOCK bits can be written only once after the reset. Once the TIMx_BDTR register has been written, their content is frozen until the next reset.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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
This bit is used when MOE=0 on channels configured as outputs.
See tim_oc1/tim_oc1n enable description for more details (Section 68.8.8: TIMx capture/compare enable register (TIMx_CCER)(x = 16 to 17) on page 4111).
Note: This bit can not be modified as soon as the LOCK level 2 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit is used when MOE=1 on channels that have a complementary output which are configured as outputs. OSSR is not implemented if no complementary output is implemented in the timer.
See tim_oc1/tim_oc1n enable description for more details (Section 68.8.8: TIMx capture/compare enable register (TIMx_CCER)(x = 16 to 17) on page 4111).
Note: This bit can not be modified as soon as the LOCK level 2 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
1; Break inputs (tim_brk and tim_sys_brk event) enabled
Note: This bit cannot be modified when LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).
Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).
Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit is cleared asynchronously by hardware as soon as the tim_brk input is active. It is set by software or automatically depending on the AOE bit. It is acting only on the channels which are configured in output.
See tim_oc1/tim_oc1n enable description for more details (Section 68.8.8: TIMx capture/compare enable register (TIMx_CCER)(x = 16 to 17) on page 4111).</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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
This bit-field defines the frequency used to sample tim_brk input and the length of the digital filter applied to tim_brk. The digital filter is made of an event counter in which N events are needed to validate a transition on the output:
This bit cannot be modified when LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKDSRM</name>
              <description>Break Disarm
This bit is cleared by hardware when no break source is active.
The BKDSRM bit must be set by software to release the bidirectional output control (open-drain output in Hi-Z state) and then be polled it until it is reset by hardware, indicating that the fault condition has disappeared.
Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKBID</name>
              <description>Break Bidirectional
In the bidirectional mode (BKBID bit set to 1), the break input is configured both in input mode and in open drain output mode. Any active break event asserts a low logic level on the Break input to indicate an internal break event to external devices.
Note: This bit cannot be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).
Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DTR2</name>
          <displayName>DTR2</displayName>
          <description>TIM16 timer deadtime register 2</description>
          <addressOffset>0x54</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DTGF</name>
              <description>Dead-time falling edge generator setup
This bit-field defines the duration of the dead-time inserted between the complementary outputs, on the falling edge.
DTGF[7:5]=0xx =&gt; DTF=DTGF[7:0]x t&lt;sub&gt;dtg&lt;/sub&gt; with t&lt;sub&gt;dtg&lt;/sub&gt;=t&lt;sub&gt;DTS&lt;/sub&gt;.
DTGF[7:5]=10x =&gt; DTF=(64+DTGF[5:0])xt&lt;sub&gt;dtg&lt;/sub&gt; with T&lt;sub&gt;dtg&lt;/sub&gt;=2xt&lt;sub&gt;DTS&lt;/sub&gt;.
DTGF[7:5]=110 =&gt; DTF=(32+DTGF[4:0])xt&lt;sub&gt;dtg&lt;/sub&gt; with T&lt;sub&gt;dtg&lt;/sub&gt;=8xt&lt;sub&gt;DTS&lt;/sub&gt;.
DTGF[7:5]=111 =&gt; DTF=(32+DTGF[4:0])xt&lt;sub&gt;dtg&lt;/sub&gt; with T&lt;sub&gt;dtg&lt;/sub&gt;=16xt&lt;sub&gt;DTS&lt;/sub&gt;.
Example if T&lt;sub&gt;DTS&lt;/sub&gt;=125ns (8MHz), dead-time possible values are:
0 to 15875 ns by 125 ns steps,
16 us to 31750 ns by 250 ns steps,
32 us to 63us by 1 us steps,
64 us to 126 us by 2 us steps
Note: This bit-field can not be modified as long as LOCK level 1, 2 or 3 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTAE</name>
              <description>Deadtime asymmetric enable
Note: This bit can not be modified as long as LOCK level 1, 2 or 3 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DTPE</name>
              <description>Deadtime preload enable
Note: This bit can not be modified as long as LOCK level 1, 2 or 3 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TISEL</name>
          <displayName>TISEL</displayName>
          <description>TIM16 input selection register</description>
          <addressOffset>0x5C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TI1SEL</name>
              <description>selects tim_ti1_in[15:0] input
...
Refer to Section 68.4.2: TIM15/TIM16/TIM17 pins and internal signals for interconnects list.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>AF1</name>
          <displayName>AF1</displayName>
          <description>TIM16 alternate function register 1</description>
          <addressOffset>0x60</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000001</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BKINE</name>
              <description>TIMx_BKIN input enable
This bit enables the TIMx_BKIN alternate function input for the timers tim_brk input. TIMx_BKIN input is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP1E</name>
              <description>tim_brk_cmp1 enable
This bit enables the tim_brk_cmp1 for the timers tim_brk input. tim_brk_cmp1 output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP2E</name>
              <description>tim_brk_cmp2 enable
This bit enables the tim_brk_cmp2 for the timers tim_brk input. tim_brk_cmp2 output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP3E</name>
              <description>tim_brk_cmp3 enable
This bit enables the tim_brk_cmp3 for the timers tim_brk input. tim_brk_cmp3 output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP4E</name>
              <description>tim_brk_cmp4 enable
This bit enables the tim_brk_cmp4 for the timers tim_brk input. tim_brk_cmp4 output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP5E</name>
              <description>tim_brk_cmp5 enable
This bit enables the tim_brk_cmp5 for the timers tim_brk input. tim_brk_cmp5 output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP6E</name>
              <description>tim_brk_cmp6 enable
This bit enables the tim_brk_cmp6 for the timers tim_brk input. tim_brk_cmp6 output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP7E</name>
              <description>tim_brk_cmp7 enable
This bit enables the tim_brk_cmp7 for the timers tim_brk input. tim_brk_cmp7 output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP8E</name>
              <description>tim_brk_cmp8 enable
This bit enables the tim_brk_cmp8 for the timers tim_brk input. mdf_brkx output is ORed with the other tim_brk sources.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKINP</name>
              <description>TIMx_BKIN input polarity
This bit selects the TIMx_BKIN alternate function input sensitivity. It must be programmed together with the BKP polarity bit.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP1P</name>
              <description>tim_brk_cmp1 input polarity
This bit selects the tim_brk_cmp1 input sensitivity. It must be programmed together with the BKP polarity bit.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP2P</name>
              <description>tim_brk_cmp2 input polarity
This bit selects the tim_brk_cmp2 input sensitivity. It must be programmed together with the BKP polarity bit.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP3P</name>
              <description>tim_brk_cmp3 input polarity
This bit selects the tim_brk_cmp3 input sensitivity. It must be programmed together with the BKP polarity bit.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>BKCMP4P</name>
              <description>tim_brk_cmp4 input polarity
This bit selects the tim_brk_cmp4 input sensitivity. It must be programmed together with the BKP polarity bit.
Note: This bit can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>AF2</name>
          <displayName>AF2</displayName>
          <description>TIM16 alternate function register 2</description>
          <addressOffset>0x64</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>OCRSEL</name>
              <description>tim_ocref_clr source selection
These bits select the tim_ocref_clr input source.
Refer to Section 68.4.2: TIM15/TIM16/TIM17 pins and internal signals for product specific implementation.
Note: These bits can not be modified as long as LOCK level 1 has been programmed (LOCK bits in TIMx_BDTR register).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DCR</name>
          <displayName>DCR</displayName>
          <description>TIM16 DMA control register</description>
          <addressOffset>0x3DC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DBA</name>
              <description>DMA base address
This 5-bit field defines the base-address for DMA transfers (when read/write access are done through the TIMx_DMAR address). DBA is defined as an offset starting from the address of the TIMx_CR1 register.
Example:
...
Example: Let us consider the following transfer: DBL = 7 transfers and DBA = TIMx_CR1. In this case the transfer is done to/from 7 registers starting from the TIMx_CR1 address.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBL</name>
              <description>DMA burst length
This 5-bit field defines the length of DMA transfers (the timer recognizes a burst transfer when a read or a write access is done to the TIMx_DMAR address), i.e. the number of transfers. Transfers can be in half-words or in bytes (see example below).
...</description>
              <bitOffset>8</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DBSS</name>
              <description>DMA burst source selection
This bitfield defines the interrupt source that triggers the DMA burst transfers (the timer recognizes a burst transfer when a read or a write access is done to the TIMx_DMAR address).
Other: reserved</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DMAR</name>
          <displayName>DMAR</displayName>
          <description>TIM16/TIM17 DMA address for full transfer</description>
          <addressOffset>0x3E0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DMAB</name>
              <description>DMA register for burst accesses
A read or write operation to the DMAR register accesses the register located at the address
(TIMx_CR1 address) + (DBA + DMA index) x 4 
where TIMx_CR1 address is the address of the control register 1, DBA is the DMA base address configured in TIMx_DCR register, DMA index is automatically controlled by the DMA transfer, and ranges from 0 to DBL (DBL configured in TIMx_DCR).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="TIM16">
      <name>TIM17</name>
      <description>General purpose timers</description>
      <groupName>TIM</groupName>
      <baseAddress>0x42004800</baseAddress>
      <interrupt>
        <name>TIM17</name>
        <description>TIM17 global interrupt</description>
        <value>118</value>
      </interrupt>
    </peripheral>
    <peripheral>
      <name>UCPD</name>
      <description>USB Type-C/USB Power Delivery interface</description>
      <groupName>UCPD</groupName>
      <baseAddress>0x4000EC00</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>UCPD1</name>
        <description>UCPD global interrupt</description>
        <value>128</value>
      </interrupt>
      <registers>
        <register>
          <name>CFGR1</name>
          <displayName>CFGR1</displayName>
          <description>UCPD configuration register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>HBITCLKDIV</name>
              <description>Division ratio for producing half-bit clock
The bitfield determines the division ratio (the bitfield value plus one) of a ucpd_clk divider producing half-bit clock (hbit_clk).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>63</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>IFRGAP</name>
              <description>Division ratio for producing inter-frame gap timer clock
The bitfield determines the division ratio (the bitfield value minus one) of a ucpd_clk divider producing inter-frame gap timer clock (tInterFrameGap).
The division ratio 15 is to apply for Tx clock at the USB PD 2.0 specification nominal value. The division ratios below 15 are to apply for Tx clock below nominal, and the division ratios above 15 for Tx clock above nominal.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>1</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>TRANSWIN</name>
              <description>Transition window duration
The bitfield determines the division ratio (the bitfield value minus one) of a hbit_clk divider producing tTransitionWindow interval.
Set a value that produces an interval of 12 to 20 us, taking into account the ucpd_clk frequency and the HBITCLKDIV[5:0] bitfield setting.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>1</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>PSC_USBPDCLK</name>
              <description>Pre-scaler division ratio for generating ucpd_clk
The bitfield determines the division ratio of a kernel clock pre-scaler producing UCPD peripheral clock (ucpd_clk).
It is recommended to use the pre-scaler so as to set the ucpd_clk frequency in the range from 6 to 9 MHz.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PSC_USBPDCLK</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>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>Divide by 16</description>
                  <value>4</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXDMAEN</name>
              <description>Transmission DMA mode enable
When set, the bit enables DMA mode for transmission.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>TXDMAEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DMA mode for transmission disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DMA mode for transmission enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXDMAEN</name>
              <description>Reception DMA mode enable
When set, the bit enables DMA mode for reception.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RXDMAEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DMA mode for reception disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DMA mode for reception enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UCPDEN</name>
              <description>UCPD peripheral enable
General enable of the UCPD peripheral.
Upon disabling, the peripheral instantly quits any ongoing activity and all control bits and bitfields default to their reset values. They must be set to their desired values each time the peripheral transits from disabled to enabled state.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>UCPDEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>UCPD peripheral disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>UCPD peripheral enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXORDSETEN0</name>
              <description>SOP detection</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXORDSETEN0</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Flag disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Flag enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXORDSETEN1</name>
              <description>SOP' detection</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RXORDSETEN0"/>
            </field>
            <field>
              <name>RXORDSETEN2</name>
              <description>SOP'' detection</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RXORDSETEN0"/>
            </field>
            <field>
              <name>RXORDSETEN3</name>
              <description>Hard Reset detection</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RXORDSETEN0"/>
            </field>
            <field>
              <name>RXORDSETEN4</name>
              <description>Cable Detect reset</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RXORDSETEN0"/>
            </field>
            <field>
              <name>RXORDSETEN5</name>
              <description>SOP'_Debug</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RXORDSETEN0"/>
            </field>
            <field>
              <name>RXORDSETEN6</name>
              <description>SOP'' Debug</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RXORDSETEN0"/>
            </field>
            <field>
              <name>RXORDSETEN7</name>
              <description>SOP extension #1</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RXORDSETEN0"/>
            </field>
            <field>
              <name>RXORDSETEN8</name>
              <description>SOP extension #2</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RXORDSETEN0"/>
            </field>
          </fields>
        </register>
        <register>
          <name>CFGR2</name>
          <displayName>CFGR2</displayName>
          <description>UCPD configuration register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXFILTDIS</name>
              <description>BMC decoder Rx pre-filter enable
The sampling clock is that of the receiver (that is, after pre-scaler).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RXFILTDIS</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Rx pre-filter enabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Rx pre-filter disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXFILT2N3</name>
              <description>BMC decoder Rx pre-filter sampling method
Number of consistent consecutive samples before confirming a new value.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RXFILT2N3</name>
                <enumeratedValue>
                  <name>Samp3</name>
                  <description>3 samples</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Samp2</name>
                  <description>2 samples</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FORCECLK</name>
              <description>Force ClkReq clock request</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>FORCECLK</name>
                <enumeratedValue>
                  <name>NoForce</name>
                  <description>Do not force clock request</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Force</name>
                  <description>Force clock request</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WUPEN</name>
              <description>Wakeup from Stop mode enable
Setting the bit enables the UCPD_ASYNC_INT signal.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>WUPEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXAFILTEN</name>
              <description>Rx analog filter enable
Setting the bit enables the Rx analog filter required for optimum Power Delivery reception.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="WUPEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>UCPD control register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXMODE</name>
              <description>Type of Tx packet</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>TXMODE</name>
                <enumeratedValue>
                  <name>RegisterSet</name>
                  <description>Transmission of Tx packet previously defined in other registers</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CableReset</name>
                  <description>Cable Reset sequence</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>BISTTest</name>
                  <description>BIST test sequence (BIST Carrier Mode 2)</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXSEND</name>
              <description>Command to send a Tx packet
The bit is cleared by hardware as soon as the packet transmission begins or is discarded.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>TXSEND</name>
                <enumeratedValue>
                  <name>NoEffect</name>
                  <description>No effect</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Start</name>
                  <description>Start Tx packet transmission</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXHRST</name>
              <description>Command to send a Tx Hard Reset
The bit is cleared by hardware as soon as the message transmission begins or is discarded.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>TXHRST</name>
                <enumeratedValue>
                  <name>NoEffect</name>
                  <description>No effect</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Start</name>
                  <description>Start Tx Hard Reset message</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXMODE</name>
              <description>Receiver mode
Determines the mode of the receiver.
When the bit is set, RXORDSET behaves normally, RXDR no longer receives bytes yet the CRC checking still proceeds as for a normal message. As this mode prevents reception of the header (containing MessageID), software has to auto-increment a received MessageID counter for inclusion in the GoodCRC acknowledge that must still be transmitted during this test.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RXMODE</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>Normal receive mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>BIST</name>
                  <description>BIST receive mode (BIST test data mode)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PHYRXEN</name>
              <description>USB Power Delivery receiver enable
Both CC1 and CC2 receivers are disabled when the bit is cleared. Only the CC receiver selected via the PHYCCSEL bit is enabled when the bit is set.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PHYRXEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>USB Power Delivery receiver disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>USB Power Delivery receiver enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PHYCCSEL</name>
              <description>CC1/CC2 line selector for USB Power Delivery signaling
The selection depends on the cable orientation as discovered at attach.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PHYCCSEL</name>
                <enumeratedValue>
                  <name>CC1</name>
                  <description>Use CC1 IO for Power Delivery communication</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CC2</name>
                  <description>Use CC2 IO for Power Delivery communication</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ANASUBMODE</name>
              <description>Analog PHY sub-mode
Refer to Table 876: Coding for ANAMODE, ANASUBMODE and link with TYPEC_VSTATE_CCx for the effect of this bitfield.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>ANASUBMODE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Rp_DefaultUSB</name>
                  <description>Default USB Rp</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Rp_1_5A</name>
                  <description>1.5A Rp</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Rp_3A</name>
                  <description>3A Rp</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ANAMODE</name>
              <description>Analog PHY operating mode
The use of CC1 and CC2 depends on CCENABLE. Refer to Table 876: Coding for ANAMODE, ANASUBMODE and link with TYPEC_VSTATE_CCx for the effect of this bitfield in conjunction with ANASUBMODE[1:0].</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>ANAMODE</name>
                <enumeratedValue>
                  <name>Source</name>
                  <description>Source</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Sink</name>
                  <description>Sink</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CCENABLE</name>
              <description>CC line enable
This bitfield enables CC1 and CC2 line analog PHYs (pull-ups and pull-downs) according to ANAMODE and ANASUBMODE[1:0] setting.
A single line PHY can be enabled when, for example, the other line is driven by VCONN via an external VCONN switch. Enabling both PHYs is the normal usage for sink/source.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>CCENABLE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Both PHYs disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CC1Enabled</name>
                  <description>CC1 PHY enabled</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CC2Enabled</name>
                  <description>CC2 PHY enabled</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>BothEnabled</name>
                  <description>CC1 and CC2 PHYs enabled</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FRSRXEN</name>
              <description>FRS event detection enable
Setting the bit enables FRS Rx event (FRSEVT) detection on the CC line selected through the PHYCCSEL bit. 0: Disable
Clear the bit when the device is attached to an FRS-incapable source/sink.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>FRSRXEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>FRS Rx event detection disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>FRS Rx event detection enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FRSTX</name>
              <description>FRS Tx signaling enable.
Setting the bit enables FRS Tx signaling.
The bit is cleared by hardware after a delay respecting the USB Power Delivery specification Revision 3.1.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>FRSTX</name>
                <enumeratedValue>
                  <name>NoEffect</name>
                  <description>No effect</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>FRS Tx signaling enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RDCH</name>
              <description>Rdch condition drive</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RDCH</name>
                <enumeratedValue>
                  <name>NoEffect</name>
                  <description>No effect</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ConditionDrive</name>
                  <description>Rdch condition drive</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC1TCDIS</name>
              <description>CC1 Type-C detector disable
The bit disables the Type-C detector on the CC1 line.
When enabled, the Type-C detector for CC1 is configured through ANAMODE and ANASUBMODE[1:0].</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>CC1TCDIS</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Type-C detector on the CCx line enabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Type-C detector on the CCx line disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC2TCDIS</name>
              <description>CC2 Type-C detector disable
The bit disables the Type-C detector on the CC2 line.
When enabled, the Type-C detector for CC2 is configured through ANAMODE and ANASUBMODE[1:0].</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="CC1TCDIS"/>
            </field>
          </fields>
        </register>
        <register>
          <name>IMR</name>
          <displayName>IMR</displayName>
          <description>UCPD interrupt mask register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXISIE</name>
              <description>TXIS interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>TXISIE</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>TXMSGDISCIE</name>
              <description>TXMSGDISC interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TXISIE"/>
            </field>
            <field>
              <name>TXMSGSENTIE</name>
              <description>TXMSGSENT interrupt enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TXISIE"/>
            </field>
            <field>
              <name>TXMSGABTIE</name>
              <description>TXMSGABT interrupt enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TXISIE"/>
            </field>
            <field>
              <name>HRSTDISCIE</name>
              <description>HRSTDISC interrupt enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TXISIE"/>
            </field>
            <field>
              <name>HRSTSENTIE</name>
              <description>HRSTSENT interrupt enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TXISIE"/>
            </field>
            <field>
              <name>TXUNDIE</name>
              <description>TXUND interrupt enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TXISIE"/>
            </field>
            <field>
              <name>RXNEIE</name>
              <description>RXNE interrupt enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TXISIE"/>
            </field>
            <field>
              <name>RXORDDETIE</name>
              <description>RXORDDET interrupt enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TXISIE"/>
            </field>
            <field>
              <name>RXHRSTDETIE</name>
              <description>RXHRSTDET interrupt enable</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TXISIE"/>
            </field>
            <field>
              <name>RXOVRIE</name>
              <description>RXOVR interrupt enable</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TXISIE"/>
            </field>
            <field>
              <name>RXMSGENDIE</name>
              <description>RXMSGEND interrupt enable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TXISIE"/>
            </field>
            <field>
              <name>TYPECEVT1IE</name>
              <description>TYPECEVT1 interrupt enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TXISIE"/>
            </field>
            <field>
              <name>TYPECEVT2IE</name>
              <description>TYPECEVT2 interrupt enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="TXISIE"/>
            </field>
            <field>
              <name>FRSEVTIE</name>
              <description>FRSEVT interrupt enable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="TXISIE"/>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>UCPD status register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXIS</name>
              <description>Transmit interrupt status
The flag indicates that the UCPD_TXDR register is empty and new data write is required (as the amount of data sent has not reached the payload size defined in the TXPAYSZ bitfield). The flag is cleared with the data write into the UCPD_TXDR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TXIS</name>
                <enumeratedValue>
                  <name>NotRequired</name>
                  <description>New Tx data write not required</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Required</name>
                  <description>New Tx data write required</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXMSGDISC</name>
              <description>Message transmission discarded
The flag indicates that a message transmission was dropped. The flag is cleared by setting the TXMSGDISCCF bit.
Transmission of a message can be dropped if there is a concurrent receive in progress or at excessive noise on the line. After a Tx message is discarded, the flag is only raised when the CC line becomes idle.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TXMSGDISC</name>
                <enumeratedValue>
                  <name>NotDiscarded</name>
                  <description>No Tx message discarded</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Discarded</name>
                  <description>Tx message discarded</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXMSGSENT</name>
              <description>Message transmission completed
The flag indicates the completion of packet transmission. It is cleared by setting the TXMSGSENTCF bit.
In the event of a message transmission interrupted by a Hard Reset, the flag is not raised.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TXMSGSENT</name>
                <enumeratedValue>
                  <name>NotCompleted</name>
                  <description>No Tx message completed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Completed</name>
                  <description>Tx message completed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXMSGABT</name>
              <description>Transmit message abort
The flag indicates that a Tx message is aborted due to a subsequent Hard Reset message send request taking priority during transmit. It is cleared by setting the TXMSGABTCF bit.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TXMSGABT</name>
                <enumeratedValue>
                  <name>NoAbort</name>
                  <description>No transmit message abort</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Abort</name>
                  <description>Transmit message abort</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HRSTDISC</name>
              <description>Hard Reset discarded
The flag indicates that the Hard Reset message is discarded. The flag is cleared by setting the HRSTDISCCF bit.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>HRSTDISC</name>
                <enumeratedValue>
                  <name>NotDiscarded</name>
                  <description>No Hard Reset discarded</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Discarded</name>
                  <description>Hard Reset discarded</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HRSTSENT</name>
              <description>Hard Reset message sent
The flag indicates that the Hard Reset message is sent. The flag is cleared by setting the HRSTSENTCF bit.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>HRSTSENT</name>
                <enumeratedValue>
                  <name>NotSent</name>
                  <description>No Hard Reset message sent</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Sent</name>
                  <description>Hard Reset message sent</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXUND</name>
              <description>Tx data underrun detection
The flag indicates that the Tx data register (UCPD_TXDR) was not written in time for a transmit message to execute normally. It is cleared by setting the TXUNDCF bit.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TXUND</name>
                <enumeratedValue>
                  <name>NoUnderrun</name>
                  <description>No Tx data underrun detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Underrun</name>
                  <description>Tx data underrun detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXNE</name>
              <description>Receive data register not empty detection
The flag indicates that the UCPD_RXDR register is not empty. It is automatically cleared upon reading UCPD_RXDR.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RXNE</name>
                <enumeratedValue>
                  <name>Empty</name>
                  <description>Rx data register empty</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotEmpty</name>
                  <description>Rx data register not empty</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXORDDET</name>
              <description>Rx ordered set (4 K-codes) detection
The flag indicates the detection of an ordered set. The relevant information is stored in the RXORDSET[2:0] bitfield of the UCPD_RX_ORDSET register. It is cleared by setting the RXORDDETCF bit.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RXORDDET</name>
                <enumeratedValue>
                  <name>NoOrderedSet</name>
                  <description>No ordered set detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>OrderedSet</name>
                  <description>Ordered set detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXHRSTDET</name>
              <description>Rx Hard Reset receipt detection
The flag indicates the receipt of valid Hard Reset message. It is cleared by setting the RXHRSTDETCF bit.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RXHRSTDET</name>
                <enumeratedValue>
                  <name>NoHardReset</name>
                  <description>Hard Reset not received</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HardReset</name>
                  <description>Hard Reset received</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXOVR</name>
              <description>Rx data overflow detection
The flag indicates Rx data buffer overflow. It is cleared by setting the RXOVRCF bit.
The buffer overflow can occur if the received data are not read fast enough.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RXOVR</name>
                <enumeratedValue>
                  <name>NoOverflow</name>
                  <description>No overflow</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overflow</name>
                  <description>Overflow</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXMSGEND</name>
              <description>Rx message received
The flag indicates whether a message (except Hard Reset message) has been received, regardless the CRC value. The flag is cleared by setting the RXMSGENDCF bit.
The RXERR flag set when the RXMSGEND flag goes high indicates errors in the last-received message.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RXMSGEND</name>
                <enumeratedValue>
                  <name>NoNewMessage</name>
                  <description>No new Rx message received</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NewMessage</name>
                  <description>A new Rx message received</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXERR</name>
              <description>Receive message error
The flag indicates errors of the last Rx message declared (via RXMSGEND), such as incorrect CRC or truncated message (a line becoming static before EOP is met). It is asserted whenever the RXMSGEND flag is set.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RXERR</name>
                <enumeratedValue>
                  <name>NoError</name>
                  <description>No error detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>Error(s) detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TYPECEVT1</name>
              <description>Type-C voltage level event on CC1 line
The flag indicates a change of the TYPEC_VSTATE_CC1[1:0] bitfield value, which corresponds to a new Type-C event. It is cleared by setting the TYPECEVT2CF bit.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TYPECEVT1</name>
                <enumeratedValue>
                  <name>NoNewEvent</name>
                  <description>No new event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NewEvent</name>
                  <description>A new Type-C event occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TYPECEVT2</name>
              <description>Type-C voltage level event on CC2 line
The flag indicates a change of the TYPEC_VSTATE_CC2[1:0] bitfield value, which corresponds to a new Type-C event. It is cleared by setting the TYPECEVT2CF bit.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="TYPECEVT1"/>
            </field>
            <field>
              <name>TYPEC_VSTATE_CC1</name>
              <description>The status bitfield indicates the voltage level on the CC1 line in its steady state.
The voltage variation on the CC1 line during USB PD messages due to the BMC PHY modulation does not impact the bitfield value.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TYPEC_VSTATE_CC1</name>
                <enumeratedValue>
                  <name>Lowest</name>
                  <description>Lowest</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Low</name>
                  <description>Low</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>High</name>
                  <description>High</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Highest</name>
                  <description>Highest</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TYPEC_VSTATE_CC2</name>
              <description>CC2 line voltage level
The status bitfield indicates the voltage level on the CC2 line in its steady state.
The voltage variation on the CC2 line during USB PD messages due to the BMC PHY modulation does not impact the bitfield value.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="TYPEC_VSTATE_CC1"/>
            </field>
            <field>
              <name>FRSEVT</name>
              <description>FRS detection event
The flag is cleared by setting the FRSEVTCF bit.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>FRSEVT</name>
                <enumeratedValue>
                  <name>NoNewEvent</name>
                  <description>No new event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NewEvent</name>
                  <description>New FRS receive event occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ICR</name>
          <displayName>ICR</displayName>
          <description>UCPD interrupt clear register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXMSGDISCCF</name>
              <description>Tx message discard flag (TXMSGDISC) clear
Setting the bit clears the TXMSGDISC flag in the UCPD_SR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues>
                <name>TXMSGDISCCFW</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag in UCPD_SR</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXMSGSENTCF</name>
              <description>Tx message send flag (TXMSGSENT) clear
Setting the bit clears the TXMSGSENT flag in the UCPD_SR register.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="TXMSGDISCCFW"/>
            </field>
            <field>
              <name>TXMSGABTCF</name>
              <description>Tx message abort flag (TXMSGABT) clear
Setting the bit clears the TXMSGABT flag in the UCPD_SR register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="TXMSGDISCCFW"/>
            </field>
            <field>
              <name>HRSTDISCCF</name>
              <description>Hard reset discard flag (HRSTDISC) clear
Setting the bit clears the HRSTDISC flag in the UCPD_SR register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="TXMSGDISCCFW"/>
            </field>
            <field>
              <name>HRSTSENTCF</name>
              <description>Hard reset send flag (HRSTSENT) clear
Setting the bit clears the HRSTSENT flag in the UCPD_SR register.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="TXMSGDISCCFW"/>
            </field>
            <field>
              <name>TXUNDCF</name>
              <description>Tx underflow flag (TXUND) clear
Setting the bit clears the TXUND flag in the UCPD_SR register.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="TXMSGDISCCFW"/>
            </field>
            <field>
              <name>RXORDDETCF</name>
              <description>Rx ordered set detect flag (RXORDDET) clear
Setting the bit clears the RXORDDET flag in the UCPD_SR register.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="TXMSGDISCCFW"/>
            </field>
            <field>
              <name>RXHRSTDETCF</name>
              <description>Rx Hard Reset detect flag (RXHRSTDET) clear
Setting the bit clears the RXHRSTDET flag in the UCPD_SR register.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="TXMSGDISCCFW"/>
            </field>
            <field>
              <name>RXOVRCF</name>
              <description>Rx overflow flag (RXOVR) clear
Setting the bit clears the RXOVR flag in the UCPD_SR register.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="TXMSGDISCCFW"/>
            </field>
            <field>
              <name>RXMSGENDCF</name>
              <description>Rx message received flag (RXMSGEND) clear
Setting the bit clears the RXMSGEND flag in the UCPD_SR register.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="TXMSGDISCCFW"/>
            </field>
            <field>
              <name>TYPECEVT1CF</name>
              <description>Type-C CC1 event flag (TYPECEVT1) clear
Setting the bit clears the TYPECEVT1 flag in the UCPD_SR register</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="TXMSGDISCCFW"/>
            </field>
            <field>
              <name>TYPECEVT2CF</name>
              <description>Type-C CC2 line event flag (TYPECEVT2) clear
Setting the bit clears the TYPECEVT2 flag in the UCPD_SR register</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="TXMSGDISCCFW"/>
            </field>
            <field>
              <name>FRSEVTCF</name>
              <description>FRS event flag (FRSEVT) clear
Setting the bit clears the FRSEVT flag in the UCPD_SR register.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="TXMSGDISCCFW"/>
            </field>
          </fields>
        </register>
        <register>
          <name>TX_ORDSETR</name>
          <displayName>TX_ORDSETR</displayName>
          <description>UCPD Tx ordered set type register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXORDSET</name>
              <description>Ordered set to transmit
The bitfield determines a full 20-bit sequence to transmit, consisting of four K-codes, each of five bits, defining the packet to transmit. The bit 0 (bit 0 of K-code1) is the first, the bit 19 (bit 4 of code 4) the last.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>20</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1048575</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>TX_PAYSZR</name>
          <displayName>TX_PAYSZR</displayName>
          <description>UCPD Tx payload size register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXPAYSZ</name>
              <description>Payload size yet to transmit
The bitfield is modified by software and by hardware. It contains the number of bytes of a payload (including header but excluding CRC) yet to transmit: each time a data byte is written into the UCPD_TXDR register, the bitfield value decrements and the TXIS bit is set, except when the bitfield value reaches zero. The enumerated values are standard payload sizes before the start of transmission.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1023</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>TXDR</name>
          <displayName>TXDR</displayName>
          <description>UCPD Tx data register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TXDATA</name>
              <description>Data byte to transmit</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RX_ORDSETR</name>
          <displayName>RX_ORDSETR</displayName>
          <description>UCPD Rx ordered set register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXORDSET</name>
              <description>Rx ordered set code detected</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RXORDSET</name>
                <enumeratedValue>
                  <name>SOP</name>
                  <description>SOP code detected in receiver</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SOPPrime</name>
                  <description>SOP' code detected in receiver</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SOPDoublePrime</name>
                  <description>SOP'' code detected in receiver</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SOPPrimeDebug</name>
                  <description>SOP'_Debug detected in receiver</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SOPDoublePrimeDebug</name>
                  <description>SOP''_Debug detected in receiver</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CableReset</name>
                  <description>Cable Reset detected in receiver</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SOPExtension1</name>
                  <description>SOP extension #1 detected in receiver</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SOPExtension2</name>
                  <description>SOP extension #2 detected in receiver</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXSOP3OF4</name>
              <description>The bit indicates the number of correct codes. For debug purposes only.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RXSOP3OF4</name>
                <enumeratedValue>
                  <name>AllCorrect</name>
                  <description>4 correct K-codes out of 4</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>OneIncorrect</name>
                  <description>3 correct K-codes out of 4</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXSOPKINVALID</name>
              <description>The bitfield is for debug purposes only.
Others: Invalid</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RXSOPKINVALID</name>
                <enumeratedValue>
                  <name>Valid</name>
                  <description>No K-code corrupted</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FirstCorrupted</name>
                  <description>First K-code corrupted</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SecondCorrupted</name>
                  <description>Second K-code corrupted</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ThirdCorrupted</name>
                  <description>Third K-code corrupted</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FourthCorrupted</name>
                  <description>Fourth K-code corrupted</description>
                  <value>4</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>RX_PAYSZR</name>
          <displayName>RX_PAYSZR</displayName>
          <description>UCPD Rx payload size register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXPAYSZ</name>
              <description>Rx payload size received
This bitfield contains the number of bytes of a payload (including header but excluding CRC) received: each time a new data byte is received in the UCPD_RXDR register, the bitfield value increments and the RXMSGEND flag is set (and an interrupt generated if enabled).
The bitfield may return a spurious value when a byte reception is ongoing (the RXMSGEND flag is low).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>10</bitWidth>
              <access>read-only</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1023</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RXDR</name>
          <displayName>RXDR</displayName>
          <description>UCPD receive data register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXDATA</name>
              <description>Data byte received</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RX_ORDEXTR1</name>
          <displayName>RX_ORDEXTR1</displayName>
          <description>UCPD Rx ordered set extension register 1</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXSOPX1</name>
              <description>Ordered set 1 received</description>
              <bitOffset>0</bitOffset>
              <bitWidth>20</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1048575</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RX_ORDEXTR2</name>
          <displayName>RX_ORDEXTR2</displayName>
          <description>UCPD Rx ordered set extension register 2</description>
          <addressOffset>0x38</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RXSOPX2</name>
              <description>Ordered set 2 received</description>
              <bitOffset>0</bitOffset>
              <bitWidth>20</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1048575</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>USART1</name>
      <description>Universal synchronous/asynchronous receiver transmitter</description>
      <groupName>USART</groupName>
      <baseAddress>0x42001000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>USART1</name>
        <description>USART1 global interrupt</description>
        <value>82</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1_ENABLED</displayName>
          <description>USART control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>UE</name>
              <description>USART enable
When this bit is cleared, the USART prescalers and outputs are stopped immediately, and all current operations are discarded. The USART configuration is kept, but all the USART_ISR status flags are reset. This bit is set and cleared by software.
Note: To enter low-power mode without generating errors on the line, the TE bit must be previously reset and the software must wait for the TC bit in the USART_ISR to be set before resetting the UE bit. 
Note: The DMA requests are also reset when UE = 0 so the DMA channel must be disabled before resetting the UE bit.
Note: In Smartcard mode, (SCEN = 1), the CK is always available when CLKEN = 1, regardless of the UE bit value.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
            <field>
              <name>UESM</name>
              <description>USART enable in low-power mode 
When this bit is cleared, the USART cannot wake up the MCU from low-power mode.
When this bit is set, the USART can wake up the MCU from low-power mode.
This bit is set and cleared by software.
Note: It is recommended to set the UESM bit just before entering low-power mode, and clear it when exiting low-power mode.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>RE</name>
              <description>Receiver enable
This bit enables the receiver. It is set and cleared by software.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>TE</name>
              <description>Transmitter enable
This bit enables the transmitter. It is set and cleared by software.
Note: During transmission, a low pulse on the TE bit (0 followed by 1) sends a preamble (idle line) after the current word, except in Smartcard mode. In order to generate an idle character, the TE must not be immediately written to 1. To ensure the required duration, the software can poll the TEACK bit in the USART_ISR register.
Note: In Smartcard mode, when TE is set, there is a 1 bit-time delay before the transmission starts.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>IDLEIE</name>
              <description>IDLE interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>RXNEIE</name>
              <description>RXFIFO not empty interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>TCIE</name>
              <description>Transmission complete interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>TXEIE</name>
              <description>TXFIFO not full interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>PEIE</name>
              <description>PE interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>PS</name>
              <description>Parity selection
This bit selects the odd or even parity when the parity generation/detection is enabled (PCE bit set). It is set and cleared by software. The parity is selected after the current byte.
This bitfield can only be written when the USART is disabled (UE=0).</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>PCE</name>
              <description>Parity control enable
This bit selects the hardware parity control (generation and detection). When the parity control is enabled, the computed parity is inserted at the MSB position (9th bit if M=1; 8th bit if M=0) and the parity is checked on the received data. This bit is set and cleared by software. Once it is set, PCE is active after the current byte (in reception and in transmission).
This bitfield can only be written when the USART is disabled (UE=0).</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>WAKE</name>
              <description>Receiver wakeup method
This bit determines the USART wakeup method from Mute mode. It is set or cleared by software.
This bitfield can only be written when the USART is disabled (UE=0).</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>M0</name>
              <description>Word length
This bit is used in conjunction with bit 28 (M1) to determine the word length. It is set or cleared by software (refer to bit 28 (M1)description).
This bit can only be written when the USART is disabled (UE=0).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>MME</name>
              <description>Mute mode enable
This bit enables the USART Mute mode function. When set, the USART can switch between active and Mute mode, as defined by the WAKE bit. It is set and cleared by software.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>CMIE</name>
              <description>Character match interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>OVER8</name>
              <description>Oversampling mode
This bit can only be written when the USART is disabled (UE=0).
Note: In LIN, IrDA and Smartcard modes, this bit must be kept cleared.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>DEDT</name>
              <description>Driver Enable deassertion time
This 5-bit value defines the time between the end of the last stop bit, in a transmitted message, and the de-activation of the DE (Driver Enable) signal. It is expressed in sample time units (1/8 or 1/16 bit time, depending on the oversampling rate).
If the USART_TDR register is written during the DEDT time, the new data is transmitted only when the DEDT and DEAT times have both elapsed.
This bitfield can only be written when the USART is disabled (UE=0).
Note: If the Driver Enable feature is not supported, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DEAT</name>
              <description>Driver Enable assertion time
This 5-bit value defines the time between the activation of the DE (Driver Enable) signal and the beginning of the start bit. It is expressed in sample time units (1/8 or 1/16 bit time, depending on the oversampling rate). 
This bitfield can only be written when the USART is disabled (UE=0).
Note: If the Driver Enable feature is not supported, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>RTOIE</name>
              <description>Receiver timeout interrupt enable
This bit is set and cleared by software.
Note: If the USART does not support the Receiver timeout feature, this bit is reserved and must be kept at reset value. Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>EOBIE</name>
              <description>End of Block interrupt enable
This bit is set and cleared by software.
Note: If the USART does not support Smartcard mode, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>M1</name>
              <description>Word length
This bit must be used in conjunction with bit 12 (M0) to determine the word length. It is set or cleared by software.
M[1:0] = 00: 1 start bit, 8 Data bits, n Stop bit
M[1:0] = 01: 1 start bit, 9 Data bits, n Stop bit
M[1:0] = 10: 1 start bit, 7 Data bits, n Stop bit
This bit can only be written when the USART is disabled (UE=0).
Note: In 7-bits data length mode, the Smartcard mode, LIN master mode and auto baud rate (0x7F and 0x55 frames detection) are not supported.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>FIFOEN</name>
              <description>FIFO mode enable
This bit is set and cleared by software.
This bitfield can only be written when the USART is disabled (UE=0).
Note: FIFO mode can be used on standard UART communication, in SPI Master/Slave mode and in Smartcard modes only. It must not be enabled in IrDA and LIN modes.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>TXFEIE</name>
              <description>TXFIFO empty interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>RXFFIE</name>
              <description>RXFIFO Full interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>USART control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>SLVEN</name>
              <description>Synchronous Slave mode enable
When the SLVEN bit is set, the Synchronous slave mode is enabled.
Note: When SPI slave mode is not supported, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>DIS_NSS</name>
              <description>When the DIS_NSS bit is set, the NSS pin input is ignored.
Note: When SPI slave mode is not supported, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>ADDM7</name>
              <description>7-bit Address Detection/4-bit Address Detection
This bit is for selection between 4-bit address detection or 7-bit address detection. 
This bit can only be written when the USART is disabled (UE=0)
Note: In 7-bit and 9-bit data modes, the address detection is done on 6-bit and 8-bit address (ADD[5:0] and ADD[7:0]) respectively.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>LBDL</name>
              <description>LIN break detection length
This bit is for selection between 11 bit or 10 bit break detection.
This bit can only be written when the USART is disabled (UE=0).
Note: If LIN mode is not supported, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>LBDIE</name>
              <description>LIN break detection interrupt enable
Break interrupt mask (break detection using break delimiter).
Note: If LIN mode is not supported, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>LBCL</name>
              <description>Last bit clock pulse
This bit is used to select whether the clock pulse associated with the last data bit transmitted (MSB) has to be output on the CK pin in Synchronous mode. 
The last bit is the 7th or 8th or 9th data bit transmitted depending on the 7 or 8 or 9 bit format selected by the M bit in the USART_CR1 register.
This bit can only be written when the USART is disabled (UE=0).
Note: If Synchronous mode is not supported, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>CPHA</name>
              <description>Clock phase
This bit is used to select the phase of the clock output on the CK pin in Synchronous mode. It works in conjunction with the CPOL bit to produce the desired clock/data relationship (see Figure 917 and Figure 918)
This bit can only be written when the USART is disabled (UE=0).
Note: If Synchronous mode is not supported, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>CPOL</name>
              <description>Clock polarity
This bit enables the user to select the polarity of the clock output on the CK pin in Synchronous mode. It works in conjunction with the CPHA bit to produce the desired clock/data relationship 
This bit can only be written when the USART is disabled (UE=0).
Note: If Synchronous mode is not supported, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>CLKEN</name>
              <description>Clock enable
This bit enables the user to enable the CK pin.
This bit can only be written when the USART is disabled (UE=0).
Note: If neither Synchronous mode nor Smartcard mode is supported, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.
In Smartcard mode, in order to provide correctly the CK clock to the smartcard, the steps below must be respected:
UE = 0
SCEN = 1
GTPR configuration
CLKEN= 1
Note: UE = 1</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>STOP</name>
              <description>stop bits
These bits are used for programming the stop bits.
This bitfield can only be written when the USART is disabled (UE=0).</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>LINEN</name>
              <description>LIN mode enable
This bit is set and cleared by software.
The LIN mode enables the capability to send LIN synchronous breaks (13 low bits) using the SBKRQ bit in the USART_CR1 register, and to detect LIN Sync breaks.
This bitfield can only be written when the USART is disabled (UE=0).
Note: If the USART does not support LIN mode, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>SWAP</name>
              <description>Swap TX/RX pins
This bit is set and cleared by software.
This bitfield can only be written when the USART is disabled (UE=0).</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>RXINV</name>
              <description>RX pin active level inversion
This bit is set and cleared by software.
This enables the use of an external inverter on the RX line. 
This bitfield can only be written when the USART is disabled (UE=0).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>TXINV</name>
              <description>TX pin active level inversion
This bit is set and cleared by software.
This enables the use of an external inverter on the TX line. 
This bitfield can only be written when the USART is disabled (UE=0).</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>DATAINV</name>
              <description>Binary data inversion
This bit is set and cleared by software.
This bitfield can only be written when the USART is disabled (UE=0).</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>MSBFIRST</name>
              <description>Most significant bit first
This bit is set and cleared by software.
This bitfield can only be written when the USART is disabled (UE=0).</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>ABREN</name>
              <description>Auto baud rate enable
This bit is set and cleared by software.
Note: If the USART does not support the auto baud rate feature, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>ABRMOD</name>
              <description>Auto baud rate mode
These bits are set and cleared by software.
This bitfield can only be written when ABREN = 0 or the USART is disabled (UE=0).
Note: If DATAINV=1 and/or MSBFIRST=1 the patterns must be the same on the line, for example 0xAA for MSBFIRST)
Note: If the USART does not support the auto baud rate feature, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <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>RTOEN</name>
              <description>Receiver timeout enable
This bit is set and cleared by software.
When this feature is enabled, the RTOF flag in the USART_ISR register is set if the RX line is idle (no reception) for the duration programmed in the RTOR (receiver timeout register).
Note: If the USART does not support the Receiver timeout feature, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>ADD</name>
              <description>Address of the USART node 
These bits give the address of the USART node in Mute mode or a character code to be recognized in low-power or Run mode:
In Mute mode: they are used in multiprocessor communication to wakeup from Mute mode with 4-bit/7-bit address mark detection. The MSB of the character sent by the transmitter should be equal to 1. In 4-bit address mark detection, only ADD[3:0] bits are used.
In low-power mode: they are used for wake up from low-power mode on character match.
When WUS[1:0] is programmed to 0b00 (WUF active on address match), the wakeup from low-power mode is performed when the received character corresponds to the character programmed through ADD[6:0] or ADD[3:0] bitfield (depending on ADDM7 bit), and WUF interrupt is enabled by setting WUFIE bit. The MSB of the character sent by transmitter should be equal to 1.
In Run mode with Mute mode inactive (for example, end-of-block detection in ModBus protocol): the whole received character (8 bits) is compared to ADD[7:0] value and CMF flag is set on match. An interrupt is generated if the CMIE bit is set.
These bits can only be written when the reception is disabled (RE = 0) or when the USART is disabled (UE = 0).</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>CR3</name>
          <displayName>CR3</displayName>
          <description>USART control register 3</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>EIE</name>
              <description>Error interrupt enable
Error Interrupt Enable Bit is required to enable interrupt generation in case of a framing error, overrun error noise flag or SPI slave underrun error (FE=1 or ORE=1 or NE=1or UDR = 1 in the USART_ISR register).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>
            <field>
              <name>IREN</name>
              <description>IrDA mode enable
This bit is set and cleared by software.
This bit can only be written when the USART is disabled (UE=0).
Note: If IrDA mode is not supported, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>IRLP</name>
              <description>IrDA low-power
This bit is used for selecting between normal and low-power IrDA modes
This bit can only be written when the USART is disabled (UE=0).
Note: If IrDA mode is not supported, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>HDSEL</name>
              <description>Half-duplex selection
Selection of Single-wire Half-duplex mode 
This bit can only be written when the USART is disabled (UE=0).</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>NACK</name>
              <description>Smartcard NACK enable
This bitfield can only be written when the USART is disabled (UE=0).
Note: If the USART does not support Smartcard mode, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>SCEN</name>
              <description>Smartcard mode enable
This bit is used for enabling Smartcard mode.
This bitfield can only be written when the USART is disabled (UE=0).
Note: If the USART does not support Smartcard mode, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>DMAR</name>
              <description>DMA enable receiver
This bit is set/reset by software</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>DMAT</name>
              <description>DMA enable transmitter
This bit is set/reset by software</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>RTSE</name>
              <description>RTS enable
This bit can only be written when the USART is disabled (UE=0).
Note: If the hardware flow control feature is not supported, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>CTSE</name>
              <description>CTS enable
This bit can only be written when the USART is disabled (UE=0)
Note: If the hardware flow control feature is not supported, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>CTSIE</name>
              <description>CTS interrupt enable
Note: If the hardware flow control feature is not supported, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>ONEBIT</name>
              <description>One sample bit method enable
This bit enables the user to select the sample method. When the one sample bit method is selected the noise detection flag (NE) is disabled.
This bit can only be written when the USART is disabled (UE=0).</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>OVRDIS</name>
              <description>Overrun Disable
This bit is used to disable the receive overrun detection. 
the ORE flag is not set and the new received data overwrites the previous content of the USART_RDR register. When FIFO mode is enabled, the RXFIFO is bypassed and data are written directly in USART_RDR register. Even when FIFO management is enabled, the RXNE flag is to be used.
This bit can only be written when the USART is disabled (UE=0).
Note: This control bit enables checking the communication flow w/o reading the data</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>DDRE</name>
              <description>DMA Disable on Reception Error
This bit can only be written when the USART is disabled (UE=0).
Note: The reception errors are: parity error, framing error or noise error.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>DEM</name>
              <description>Driver enable mode 
This bit enables the user to activate the external transceiver control, through the DE signal. 
This bit can only be written when the USART is disabled (UE=0).
Note: If the Driver Enable feature is not supported, this bit is reserved and must be kept at reset value. Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>DEP</name>
              <description>Driver enable polarity selection
This bit can only be written when the USART is disabled (UE=0).
Note: If the Driver Enable feature is not supported, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>SCARCNT</name>
              <description>Smartcard auto-retry count
This bitfield specifies the number of retries for transmission and reception in Smartcard mode.
In Transmission mode, it specifies the number of automatic retransmission retries, before generating a transmission error (FE bit set).
In Reception mode, it specifies the number or erroneous reception trials, before generating a reception error (RXNE/RXFNE and PE bits set).
This bitfield must be programmed only when the USART is disabled (UE=0).
When the USART is enabled (UE=1), this bitfield may only be written to 0x0, in order to stop retransmission. 
0x1 to 0x7: number of automatic retransmission attempts (before signaling error)
Note: If Smartcard mode is not supported, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>7</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>WUS</name>
              <description>Wakeup from low-power mode interrupt flag selection
This bitfield specifies the event which activates the WUF (Wakeup from low-power mode flag). 
This bitfield can only be written when the USART is disabled (UE=0).
Note: If the USART does not support the wakeup from Stop feature, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</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>WUFIE</name>
              <description>Wakeup from low-power mode interrupt enable
This bit is set and cleared by software.
Note: WUFIE must be set before entering in low-power mode.
Note: If the USART does not support the wakeup from Stop feature, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>TXFTIE</name>
              <description>TXFIFO threshold interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>TCBGTIE</name>
              <description>Transmission Complete before guard time, interrupt enable
This bit is set and cleared by software.
Note: If the USART does not support the Smartcard mode, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>RXFTCFG</name>
              <description>Receive FIFO threshold configuration
Remaining combinations: Reserved</description>
              <bitOffset>25</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <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>RXFTIE</name>
              <description>RXFIFO threshold interrupt enable
This bit is set and cleared by software.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <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>TXFTCFG</name>
              <description>TXFIFO threshold configuration
Remaining combinations: Reserved</description>
              <bitOffset>29</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <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>
          </fields>
        </register>
        <register>
          <name>BRR</name>
          <displayName>BRR</displayName>
          <description>USART baud rate register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>BRR</name>
              <description>USART baud rate
BRR[15:4]
BRR[15:4] correspond to USARTDIV[15:4]
BRR[3:0]
When OVER8 = 0, BRR[3:0] = USARTDIV[3:0].
When OVER8 = 1:
BRR[2:0] = USARTDIV[3:0] shifted 1 bit to the right.
BRR[3] must be kept cleared.</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>GTPR</name>
          <displayName>GTPR</displayName>
          <description>USART guard time and prescaler register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PSC</name>
              <description>Prescaler value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>GT</name>
              <description>Guard time value
This bitfield is used to program the Guard time value in terms of number of baud clock periods. 
This is used in Smartcard mode. The Transmission Complete flag is set after this guard time value.
This bitfield can only be written when the USART is disabled (UE=0).
Note: If Smartcard mode is not supported, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RTOR</name>
          <displayName>RTOR</displayName>
          <description>USART receiver timeout register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RTO</name>
              <description>Receiver timeout value
This bitfield gives the Receiver timeout value in terms of number of bit duration.
In Standard mode, the RTOF flag is set if, after the last received character, no new start bit is detected for more than the RTO value.
In Smartcard mode, this value is used to implement the CWT and BWT. See Smartcard chapter for more details. In the standard, the CWT/BWT measurement is done starting from the start bit of the last received character.
Note: This value must only be programmed once per received character.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>24</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>16777215</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>BLEN</name>
              <description>Block Length 
This bitfield gives the Block length in Smartcard T=1 Reception. Its value equals the number of information characters + the length of the Epilogue Field (1-LEC/2-CRC) - 1.
Examples: 
BLEN = 0 -&gt; 0 information characters + LEC
BLEN = 1 -&gt; 0 information characters + CRC
BLEN = 255 -&gt; 254 information characters + CRC (total 256 characters))
In Smartcard mode, the Block length counter is reset when TXE=0 (TXFE = 0 in case FIFO mode is enabled).
This bitfield can be used also in other modes. In this case, the Block length counter is reset when RE=0 (receiver disabled) and/or when the EOBCF bit is written to 1. 
Note: This value can be programmed after the start of the block reception (using the data from the LEN character in the Prologue Field). It must be programmed only once per received block.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RQR</name>
          <displayName>RQR</displayName>
          <description>USART request register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ABRRQ</name>
              <description>Auto baud rate request
Writing 1 to this bit resets the ABRF and ABRE flags in the USART_ISR and requests an automatic baud rate measurement on the next received data frame. 
Note: If the USART does not support the auto baud rate feature, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>
            <field>
              <name>SBKRQ</name>
              <description>Send break request
Writing 1 to this bit sets the SBKF flag and request to send a BREAK on the line, as soon as the transmit machine is available.
Note: When the application needs to send the break character following all previously inserted data, including the ones not yet transmitted, the software should wait for the TXE flag assertion before setting the SBKRQ bit.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>MMRQ</name>
              <description>Mute mode request
Writing 1 to this bit puts the USART in Mute mode and resets the RWU flag.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>RXFRQ</name>
              <description>Receive data flush request
Writing 1 to this bit empties the entire receive FIFO i.e. clears the bit RXFNE.
This enables to discard the received data without reading them, and avoid an overrun condition.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>TXFRQ</name>
              <description>Transmit data flush request
When FIFO mode is disabled, writing 1 to this bit sets the TXE flag. This enables to discard the transmit data. This bit must be used only in Smartcard mode, when data have not been sent due to errors (NACK) and the FE flag is active in the USART_ISR register. If the USART does not support Smartcard mode, this bit is reserved and must be kept at reset value.
When FIFO is enabled, TXFRQ bit is set to flush the whole FIFO. This sets the TXFE flag (Transmit FIFO empty, bit 23 in the USART_ISR register). Flushing the Transmit FIFO is supported in both UART and Smartcard modes. 
Note: In FIFO mode, the TXFNF flag is reset during the flush request until TxFIFO is empty in order to ensure that no data are written in the data register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>
          </fields>
        </register>
        <register>
          <name>ISR</name>
          <displayName>ISR_ENABLED</displayName>
          <description>USART interrupt and status register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <resetValue>0x000000C0</resetValue>
          <resetMask>0xF00FFFFF</resetMask>
          <fields>
            <field>
              <name>PE</name>
              <description>Parity error
This bit is set by hardware when a parity error occurs in Reception mode. It is cleared by software, writing 1 to the PECF in the USART_ICR register. 
An interrupt is generated if PEIE = 1 in the USART_CR1 register.
Note: This error is associated with the character in the USART_RDR.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>
            <field>
              <name>FE</name>
              <description>Framing error
This bit is set by hardware when a de-synchronization, excessive noise or a break character is detected. It is cleared by software, writing 1 to the FECF bit in the USART_ICR register.
When transmitting data in Smartcard mode, this bit is set when the maximum number of transmit attempts is reached without success (the card NACKs the data frame).
An interrupt is generated if EIE = 1 in the USART_CR3 register.
Note: This error is associated with the character in the USART_RDR.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>NE</name>
              <description>Noise detection flag
This bit is set by hardware when noise is detected on a received frame. It is cleared by software, writing 1 to the NFCF bit in the USART_ICR register.
Note: This bit does not generate an interrupt as it appears at the same time as the RXFNE bit which itself generates an interrupt. An interrupt is generated when the NE flag is set during multi buffer communication if the EIE bit is set.
Note: When the line is noise-free, the NE flag can be disabled by programming the ONEBIT bit to 1 to increase the USART tolerance to deviations (Refer to Section 78.5.9: Tolerance of the USART receiver to clock deviation on page 4568).
Note: This error is associated with the character in the USART_RDR.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>NE</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>ORE</name>
              <description>Overrun error
This bit is set by hardware when the data currently being received in the shift register is
ready to be transferred into the USART_RDR register while RXFF = 1. It is cleared by a software, writing 1 to the ORECF, in the USART_ICR register.
An interrupt is generated if RXFNEIE=1 in the USART_CR1 register, or EIE = 1 in the USART_CR3 register.
Note: When this bit is set, the USART_RDR register content is not lost but the shift register is overwritten. An interrupt is generated if the ORE flag is set during multi buffer communication if the EIE bit is set.
Note: This bit is permanently forced to 0 (no overrun detection) when the bit OVRDIS is set in the USART_CR3 register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>IDLE</name>
              <description>Idle line detected
This bit is set by hardware when an Idle Line is detected. An interrupt is generated if IDLEIE=1 in the USART_CR1 register. It is cleared by software, writing 1 to the IDLECF in the USART_ICR register. 
Note: The IDLE bit is not set again until the RXFNE bit has been set (i.e. a new idle line occurs).
Note: If Mute mode is enabled (MME=1), IDLE is set if the USART is not mute (RWU=0), whatever the Mute mode selected by the WAKE bit. If RWU=1, IDLE is not set.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>RXFNE</name>
              <description>RXFIFO not empty
RXFNE bit is set by hardware when the RXFIFO is not empty, meaning that data can be read from the USART_RDR register. Every read operation from the USART_RDR frees a location in the RXFIFO. 
RXFNE is cleared when the RXFIFO is empty. The RXFNE flag can also be cleared by writing 1 to the RXFRQ in the USART_RQR register. 
An interrupt is generated if RXFNEIE=1 in the USART_CR1 register.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RXFNE</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>TC</name>
              <description>Transmission complete
This bit indicates that the last data written in the USART_TDR has been transmitted out of the shift register. The TC flag behaves as follows:
When TDN = 0, the TC flag is set when the transmission of a frame containing data is complete and when TXE/TXFE is set.
When TDN is equal to the number of data in the TXFIFO, the TC flag is set when TXFIFO is empty and TDN is reached.
When TDN is greater than the number of data in the TXFIFO, TC remains cleared until the TXFIFO is filled again to reach the programmed number of data to be transferred. 
When TDN is less than the number of data in the TXFIFO, TC is set when TDN is reached even if the TXFIFO is not empty.
An interrupt is generated if TCIE=1 in the USART_CR1 register.
TC bit is cleared by software by writing 1 to the TCCF in the USART_ICR register or by writing to the USART_TDR register.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>TXFNF</name>
              <description>TXFIFO not full
TXFNF is set by hardware when TXFIFO is not full meaning that data can be written in the USART_TDR. Every write operation to the USART_TDR places the data in the TXFIFO. This flag remains set until the TXFIFO is full. When the TXFIFO is full, this flag is cleared indicating that data can not be written into the USART_TDR. 
An interrupt is generated if the TXFNFIE bit =1 in the USART_CR1 register. 
Note: The TXFNF is kept reset during the flush request until TXFIFO is empty. After sending the flush request (by setting TXFRQ bit), the flag TXFNF should be checked prior to writing in TXFIFO (TXFNF and TXFE is set at the same time).
Note: This bit is used during single buffer transmission.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TXFNF</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>LBDF</name>
              <description>LIN break detection flag
This bit is set by hardware when the LIN break is detected. It is cleared by software, by writing 1 to the LBDCF in the USART_ICR. 
An interrupt is generated if LBDIE = 1 in the USART_CR2 register.
Note: If the USART does not support LIN mode, this bit is reserved and kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>CTSIF</name>
              <description>CTS interrupt flag
This bit is set by hardware when the CTS input toggles, if the CTSE bit is set. It is cleared by software, by writing 1 to the CTSCF bit in the USART_ICR register. 
An interrupt is generated if CTSIE=1 in the USART_CR3 register.
Note: If the hardware flow control feature is not supported, this bit is reserved and kept at reset value.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>CTS</name>
              <description>CTS flag
This bit is set/reset by hardware. It is an inverted copy of the status of the CTS input pin. 
Note: If the hardware flow control feature is not supported, this bit is reserved and kept at reset value.</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>RTOF</name>
              <description>Receiver timeout
This bit is set by hardware when the timeout value, programmed in the RTOR register has lapsed, without any communication. It is cleared by software, writing 1 to the RTOCF bit in the USART_ICR register. 
An interrupt is generated if RTOIE=1 in the USART_CR2 register.
In Smartcard mode, the timeout corresponds to the CWT or BWT timings.
Note: If a time equal to the value programmed in RTOR register separates 2 characters, RTOF is not set. If this time exceeds this value + 2 sample times (2/16 or 2/8, depending on the oversampling method), RTOF flag is set.
Note: The counter counts even if RE = 0 but RTOF is set only when RE = 1. If the timeout has already elapsed when RE is set, then RTOF is set.
Note: If the USART does not support the Receiver timeout feature, this bit is reserved and kept at reset value.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>EOBF</name>
              <description>End of block flag
This bit is set by hardware when a complete block has been received (for example T=1 Smartcard mode). The detection is done when the number of received bytes (from the start of the block, including the prologue) is equal or greater than BLEN + 4.
An interrupt is generated if EOBIE = 1 in the USART_CR1 register.
It is cleared by software, writing 1 to EOBCF in the USART_ICR register.
Note: If Smartcard mode is not supported, this bit is reserved and kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>UDR</name>
              <description>SPI slave underrun error flag
In Slave transmission mode, this flag is set when the first clock pulse for data transmission appears while the software has not yet loaded any value into USART_TDR. This flag is reset by setting UDRCF bit in the USART_ICR register.
Note: If the USART does not support the SPI slave mode, this bit is reserved and kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>ABRE</name>
              <description>Auto baud rate error
This bit is set by hardware if the baud rate measurement failed (baud rate out of range or character comparison failed)
It is cleared by software, by writing 1 to the ABRRQ bit in the USART_RQR register. 
Note: If the USART does not support the auto baud rate feature, this bit is reserved and kept at reset value.</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>ABRF</name>
              <description>Auto baud rate flag
This bit is set by hardware when the automatic baud rate has been set (RXFNE is also set, generating an interrupt if RXFNEIE = 1) or when the auto baud rate operation was completed without success (ABRE=1) (ABRE, RXFNE and FE are also set in this case)
It is cleared by software, in order to request a new auto baud rate detection, by writing 1 to the ABRRQ in the USART_RQR register. 
Note: If the USART does not support the auto baud rate feature, this bit is reserved and kept at reset value.</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>BUSY</name>
              <description>Busy flag
This bit is set and reset by hardware. It is active when a communication is ongoing on the RX line (successful start bit detected). It is reset at the end of the reception (successful or not).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>CMF</name>
              <description>Character match flag
This bit is set by hardware, when a the character defined by ADD[7:0] is received. It is cleared by software, writing 1 to the CMCF in the USART_ICR register. 
An interrupt is generated if CMIE=1in the USART_CR1 register.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>SBKF</name>
              <description>Send break flag
This bit indicates that a send break character was requested. It is set by software, by writing 1 to the SBKRQ bit in the USART_CR3 register. It is automatically reset by hardware during the stop bit of break transmission.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>RWU</name>
              <description>Receiver wakeup from Mute mode
This bit indicates if the USART is in Mute mode. It is cleared/set by hardware when a wakeup/mute sequence is recognized. The Mute mode control sequence (address or IDLE) is selected by the WAKE bit in the USART_CR1 register.
When wakeup on IDLE mode is selected, this bit can only be set by software, writing 1 to the MMRQ bit in the USART_RQR register. 
Note: If the USART does not support the wakeup from Stop feature, this bit is reserved and kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>WUF</name>
              <description>Wakeup from low-power mode flag 
This bit is set by hardware, when a wakeup event is detected. The event is defined by the WUS bitfield. It is cleared by software, writing a 1 to the WUCF in the USART_ICR register.
An interrupt is generated if WUFIE=1 in the USART_CR3 register. 
Note: When UESM is cleared, WUF flag is also cleared.
Note: If the USART does not support the wakeup from Stop feature, this bit is reserved and kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TEACK</name>
              <description>Transmit enable acknowledge flag 
This bit is set/reset by hardware, when the Transmit Enable value is taken into account by the USART. 
It can be used when an idle frame request is generated by writing TE=0, followed by TE=1 in the USART_CR1 register, in order to respect the TE=0 minimum period.</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>REACK</name>
              <description>Receive enable acknowledge flag 
This bit is set/reset by hardware, when the Receive Enable value is taken into account by the USART. 
It can be used to verify that the USART is ready for reception before entering low-power mode.
Note: If the USART does not support the wakeup from Stop feature, this bit is reserved and kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TXFE</name>
              <description>TXFIFO Empty
This bit is set by hardware when TXFIFO is Empty. When the TXFIFO contains at least one data, this flag is cleared. The TXFE flag can also be set by writing 1 to the bit TXFRQ (bit 4) in the USART_RQR register.
An interrupt is generated if the TXFEIE bit =1 (bit 30) in the USART_CR1 register.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>RXFF</name>
              <description>RXFIFO Full
This bit is set by hardware when the number of received data corresponds to RXFIFO size + 1 (RXFIFO full + 1 data in the USART_RDR register. 
An interrupt is generated if the RXFFIE bit =1 in the USART_CR1 register.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>TCBGT</name>
              <description>Transmission complete before guard time flag
This bit is set when the last data written in the USART_TDR has been transmitted correctly out of the shift register. 
It is set by hardware in Smartcard mode, if the transmission of a frame containing data is complete and if the smartcard did not send back any NACK. An interrupt is generated if TCBGTIE=1 in the USART_CR3 register. 
This bit is cleared by software, by writing 1 to the TCBGTCF in the USART_ICR register or by a write to the USART_TDR register.
Note: If the USART does not support the Smartcard mode, this bit is reserved and kept at reset value. If the USART supports the Smartcard mode and the Smartcard mode is enabled, the TCBGT reset value is 1. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>RXFT</name>
              <description>RXFIFO threshold flag
This bit is set by hardware when the threshold programmed in RXFTCFG in USART_CR3 register is reached. This means that there are (RXFTCFG - 1) data in the Receive FIFO and one data in the USART_RDR register. An interrupt is generated if the RXFTIE bit =1 (bit 27) in the USART_CR3 register. 
Note: When the RXFTCFG threshold is configured to 101, RXFT flag is set if 16 data are available i.e. 15 data in the RXFIFO and 1 data in the USART_RDR. Consequently, the 17th received data does not cause an overrun error. The overrun error occurs after receiving the 18th data.</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>TXFT</name>
              <description>TXFIFO threshold flag
This bit is set by hardware when the TXFIFO reaches the threshold programmed in TXFTCFG of USART_CR3 register i.e. the TXFIFO contains TXFTCFG empty locations. An interrupt is generated if the TXFTIE bit =1 (bit 31) in the USART_CR3 register.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <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>
          </fields>
        </register>
        <register>
          <name>ICR</name>
          <displayName>ICR</displayName>
          <description>USART interrupt flag clear register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PECF</name>
              <description>Parity error clear flag
Writing 1 to this bit clears the PE flag in the USART_ISR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>
            <field>
              <name>FECF</name>
              <description>Framing error clear flag
Writing 1 to this bit clears the FE flag in the USART_ISR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>NECF</name>
              <description>Noise detected clear flag
Writing 1 to this bit clears the NE flag in the USART_ISR register.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>NECF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the NF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ORECF</name>
              <description>Overrun error clear flag
Writing 1 to this bit clears the ORE flag in the USART_ISR register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>IDLECF</name>
              <description>Idle line detected clear flag
Writing 1 to this bit clears the IDLE flag in the USART_ISR register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>TXFECF</name>
              <description>TXFIFO empty clear flag
Writing 1 to this bit clears the TXFE flag in the USART_ISR register.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>TCCF</name>
              <description>Transmission complete clear flag
Writing 1 to this bit clears the TC flag in the USART_ISR register.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>TCBGTCF</name>
              <description>Transmission complete before Guard time clear flag
Writing 1 to this bit clears the TCBGT flag in the USART_ISR register.</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>LBDCF</name>
              <description>LIN break detection clear flag
Writing 1 to this bit clears the LBDF flag in the USART_ISR register.
Note: If LIN mode is not supported, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>CTSCF</name>
              <description>CTS clear flag
Writing 1 to this bit clears the CTSIF flag in the USART_ISR register.
Note: If the hardware flow control feature is not supported, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>RTOCF</name>
              <description>Receiver timeout clear flag
Writing 1 to this bit clears the RTOF flag in the USART_ISR register.
Note: If the USART does not support the Receiver timeout feature, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>EOBCF</name>
              <description>End of block clear flag
Writing 1 to this bit clears the EOBF flag in the USART_ISR register.
Note: If the USART does not support Smartcard mode, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>UDRCF</name>
              <description>SPI slave underrun clear flag
Writing 1 to this bit clears the UDRF flag in the USART_ISR register.
Note: If the USART does not support SPI slave mode, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>CMCF</name>
              <description>Character match clear flag
Writing 1 to this bit clears the CMF flag in the USART_ISR register.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>WUCF</name>
              <description>Wakeup from low-power mode clear flag 
Writing 1 to this bit clears the WUF flag in the USART_ISR register.
Note: If the USART does not support the wakeup from Stop feature, this bit is reserved and must be kept at reset value. Refer to Section 78.4: USART implementation on page 4549.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <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>
          </fields>
        </register>
        <register>
          <name>RDR</name>
          <displayName>RDR</displayName>
          <description>USART receive data register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>RDR</name>
              <description>Receive data value
Contains the received data character.
The RDR register provides the parallel interface between the input shift register and the internal bus (see Figure 911).
When receiving with the parity enabled, the value read in the MSB bit is the received parity bit.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>9</bitWidth>
              <access>read-only</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>511</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>TDR</name>
          <displayName>TDR</displayName>
          <description>USART transmit data register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TDR</name>
              <description>Transmit data value
Contains the data character to be transmitted.
The USART_TDR register provides the parallel interface between the internal bus and the output shift register (see Figure 911).
When transmitting with the parity enabled (PCE bit set to 1 in the USART_CR1 register), the value written in the MSB (bit 7 or bit 8 depending on the data length) has no effect because it is replaced by the parity.
Note: This register must be written only when TXE/TXFNF=1.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>9</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>511</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>PRESC</name>
          <displayName>PRESC</displayName>
          <description>USART prescaler register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRESCALER</name>
              <description>Clock prescaler
The USART input clock can be divided by a prescaler factor:
Remaining combinations: Reserved
Note: When PRESCALER is programmed with a value different of the allowed ones, programmed prescaler value is equal to 1011 i.e. input clock divided by 256.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <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>83</value>
      </interrupt>
    </peripheral>
    <peripheral derivedFrom="USART1">
      <name>USART3</name>
      <baseAddress>0x40004800</baseAddress>
      <interrupt>
        <name>USART3</name>
        <description>USART3 global interrupt</description>
        <value>84</value>
      </interrupt>
    </peripheral>
    <peripheral derivedFrom="USART1">
      <name>UART4</name>
      <baseAddress>0x40004C00</baseAddress>
      <interrupt>
        <name>UART4</name>
        <description>UART4 global interrupt</description>
        <value>85</value>
      </interrupt>
    </peripheral>
    <peripheral derivedFrom="USART1">
      <name>UART5</name>
      <baseAddress>0x40005000</baseAddress>
      <interrupt>
        <name>UART5</name>
        <description>UART5 global interrupt</description>
        <value>86</value>
      </interrupt>
    </peripheral>
    <peripheral derivedFrom="USART1">
      <name>UART7</name>
      <baseAddress>0x40007800</baseAddress>
      <interrupt>
        <name>UART7</name>
        <description>UART7 global interrupt</description>
        <value>87</value>
      </interrupt>
    </peripheral>
    <peripheral derivedFrom="USART1">
      <name>UART8</name>
      <baseAddress>0x40007C00</baseAddress>
      <interrupt>
        <name>UART8</name>
        <description>UART8 global interrupt</description>
        <value>88</value>
      </interrupt>
    </peripheral>
    <peripheral>
      <name>VREFBUF</name>
      <description>Voltage reference buffer</description>
      <groupName>VREFBUF</groupName>
      <baseAddress>0x58003C00</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x8</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>
          <resetMask>0xFFFFFFFF</resetMask>
          <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 V&lt;sub&gt;REF+&lt;/sub&gt; pin.
Refer to Table 229: 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.
VRS = 000: VREFBUF0 voltage selected.
VRS = 001: VREFBUF1 voltage selected.
VRS = 010: VREFBUF2 voltage selected.
VRS = 011: VREFBUF3 voltage selected.
Others: Reserved
Refer to the product datasheet for each VREFBUFx voltage setting value.
Note: The software can program this bitfield only when the VREFBUF is disabled (ENVR=0).</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>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFF00</resetMask>
          <fields>
            <field>
              <name>TRIM</name>
              <description>Trimming code
The TRIM code is a 6-bit unsigned data (minimum 000000, maximum 111111) that is set and updated according the mechanism described below.
Reset:
TRIM[5:0] is automatically initialized with the VRS = 0 trimming value stored in the flash memory during the production test.
VRS change:
TRIM[5:0] is automatically initialized with the trimming value (corresponding to VRS setting) stored in the flash memory during the production test.
Write in TRIM[5:0]:
User can modify the TRIM[5:0] with an arbitrary value. This is permanently disabling the control of the trimming value with VRS (until the device is reset).
Note: If the user application performs the trimming, the trimming code must start from 000000 to 111111 in ascending order.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>WWDG</name>
      <description>WWDG</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>4</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>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>T</name>
              <description>7-bit counter (MSB to LSB) These bits
              contain the value of the watchdog counter. It is
              decremented every (4096 x 2WDGTB[1:0]) PCLK cycles. A
              reset is produced when it is decremented from 0x40 to
              0x3F (T6 becomes cleared).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>127</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>WDGA</name>
              <description>Activation bit This bit is set by
              software and only cleared by hardware after a reset.
              When WDGA=1, the watchdog can generate a
              reset.</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>
          </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>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>W</name>
              <description>7-bit window value These bits contain
              the window value to be compared to the
              downcounter.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>127</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>EWI</name>
              <description>Early wakeup interrupt When set, an
              interrupt occurs whenever the counter reaches the
              value 0x40. This interrupt is only cleared by
              hardware after a reset.</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>WDGTB</name>
              <description>Timer base The time base of the
              prescaler can be modified as follows:</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>
          </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>
          <resetMask>0x0000FFFF</resetMask>
          <fields>
            <field>
              <name>EWIF</name>
              <description>Early wakeup interrupt flag This bit is
              set by hardware when the counter has reached the
              value 0x40. It must be cleared by software by writing
              0. A write of 1 has no effect. This bit is also set
              if the interrupt is not enabled.</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>XSPI1</name>
      <description>XSPI register block</description>
      <groupName>XSPI</groupName>
      <baseAddress>0x52005000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x22C</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>OSPI1</name>
        <description>OSPI1 / HSPI1 global interrupt</description>
        <value>105</value>
      </interrupt>
      <interrupt>
        <name>OSPI2</name>
        <description>OSPI2 global interrupt</description>
        <value>106</value>
      </interrupt>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>XSPI control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>EN</name>
              <description>Enable
This bit enables the XSPI.
The DMA request can be aborted without having received the ACK in case this EN bit is cleared during the operation.
Note: In case this bit is set to 0 during a DMA transfer, the REQ signal to DMA returns to inactive state without waiting for the ACK signal from DMA to be active.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ABORT</name>
              <description>Abort request
This bit aborts the on-going command sequence. It is automatically reset once the abort is completed. This bit stops the current transfer.
Note: This bit is always read as 0.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DMAEN</name>
              <description>DMA enable
In indirect mode, the DMA can be used to input or output data via XSPI_DR. DMA transfers are initiated when FTF is set. 
Note: Resetting the DMAEN bit while a DMA transfer is ongoing, breaks the handshake with the DMA. Do not write this bit during DMA operation.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TCEN</name>
              <description>Timeout counter enable
This bit is valid only when the memory-mapped mode (FMODE[1:0] = 11) is selected. This bit enables the timeout counter.
Note: This bit can be modified only when BUSY = 0.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DMM</name>
              <description>Dual-memory configuration
This bit activates the dual-memory configuration, where two external devices are used simultaneously to double the throughput and the capacity
Note: This bit can be modified only when BUSY = 0.</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FTHRES</name>
              <description>FIFO threshold level
This field defines, in indirect mode, the threshold number of bytes in the FIFO that causes the FIFO threshold flag FTF in XSPI_SR, to be set.
...
Note: If DMAEN = 1, the DMA controller for the corresponding channel must be disabled before changing the FTHRES[5:0] value.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TEIE</name>
              <description>Transfer error interrupt enable
This bit enables the transfer error interrupt.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TCIE</name>
              <description>Transfer complete interrupt enable
This bit enables the transfer complete interrupt.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FTIE</name>
              <description>FIFO threshold interrupt enable
This bit enables the FIFO threshold interrupt.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SMIE</name>
              <description>Status match interrupt enable
This bit enables the status match interrupt.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TOIE</name>
              <description>Timeout interrupt enable
This bit enables the timeout interrupt.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>APMS</name>
              <description>Automatic status-polling mode stop
This bit determines if the automatic status-polling is stopped after a match.
Note: This bit can be modified only when BUSY = 0.</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>PMM</name>
              <description>Polling match mode
This bit indicates which method must be used to determine a match during the automatic status-polling mode.
Note: This bit can be modified only when BUSY = 0.</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CSSEL</name>
              <description>chip select selection
This bit indicates if the XSPI must activate NCS1 or NCS2.
Note: This bit can be modified only when BUSY = 0.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FMODE</name>
              <description>Functional mode
This field defines the XSPI functional mode of operation.
If DMAEN = 1 already, then the DMA controller for the corresponding channel must be disabled before changing the FMODE[1:0] value. If FMODE[1:0] and FTHRES[4:0] are wrongly updated while DMAEN = 1, the DMA request signal automatically goes to inactive state.
Note: This bitfield can be modified only when BUSY = 0.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MSEL</name>
              <description>Flash select</description>
              <bitOffset>30</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DCR1</name>
          <displayName>DCR1</displayName>
          <description>XSPI device configuration register 1</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CKMODE</name>
              <description>clock mode 0/mode 3
This bit indicates the level taken by the CLK between commands (when NCS = 1).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>FRCK</name>
              <description>Free running clock
This bit configures the free running clock.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CSHT</name>
              <description>Chip-select high time
CSHT + 1 defines the minimum number of CLK cycles where the chip-select (NCS) must remain high between commands issued to the external device.
...</description>
              <bitOffset>8</bitOffset>
              <bitWidth>6</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DEVSIZE</name>
              <description>Device size
This field defines the size of the external device using the following formula:
Number of bytes in device = 2&lt;sup&gt;[DEVSIZE+1]&lt;/sup&gt;.
DEVSIZE+1 is effectively the number of address bits required to address the external device. The device capacity can be up to 4 Gbytes (addressed using 32-bits) in indirect mode, but the addressable space in memory-mapped mode is limited to 256 Mbytes.
In regular-command protocol, if DMM = 1, DEVSIZE[4:0] indicates the total capacity of the two devices together.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>MTYP</name>
              <description>Memory type
This bit indicates the type of memory to be supported.
Note: In this mode, DQS signal polarity is inverted with respect to the memory clock signal. This is the default value and care must be taken to change MTYP[2:0] for memories different from Micron.
Others: Reserved</description>
              <bitOffset>24</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DCR2</name>
          <displayName>DCR2</displayName>
          <description>XSPI device configuration register 2</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>PRESCALER</name>
              <description>Clock prescaler
This field defines the scaler factor for generating the CLK based on the kernel clock (value + 1). 
...
For odd clock division factors, the CLK duty cycle is not 50 %. The clock signal remains low one cycle longer than it stays high.
Writing this field automatically starts a new calibration of high-speed interface DLL at the start of next transfer, except in case XSPI_CALOSR or XSPI_CALISR have been written in the meantime. BUSY stays high during the whole calibration execution.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WRAPSIZE</name>
              <description>Wrap size
This field indicates the wrap size to which the memory is configured. For memories which have a separate command for wrapped instructions, this field indicates the wrap-size associated with the command held in XSPI_WPIR.
Others: reserved</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DCR3</name>
          <displayName>DCR3</displayName>
          <description>XSPI device configuration register 3</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MAXTRAN</name>
              <description>Maximum transfer
This field enables the communication regulation feature.
The NCS is released every MAXTRAN+1 clock cycles when the other XSPI request the access to the bus.
Others: maximum communication is set to MAXTRAN + 1 bytes.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>CSBOUND</name>
              <description>NCS boundary
This field enables the transaction boundary feature. When active, a minimum value of 3 is recommended.
The NCS is released on each boundary of 2&lt;sup&gt;CSBOUND&lt;/sup&gt; bytes.
Others: NCS boundary set to 2&lt;sup&gt;CSBOUND&lt;/sup&gt; bytes</description>
              <bitOffset>16</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DCR4</name>
          <displayName>DCR4</displayName>
          <description>XSPI device configuration register 4</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>REFRESH</name>
              <description>Refresh rate
This field enables the refresh rate feature.
The NCS is released every REFRESH + 1 clock cycles for writes, and REFRESH + 4 clock cycles for reads. 
Note: These two values can be extended with few clock cycles when refresh occurs during a byte transmission in single-, dual- or quad-SPI mode, because the byte transmission must be completed.
Others: maximum communication length is set to REFRESH + 1 clock cycles.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>XSPI status register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TEF</name>
              <description>Transfer error flag
This bit is set in indirect mode when an invalid address is being accessed in indirect mode.
It is cleared by writing 1 to CTEF.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TCF</name>
              <description>Transfer complete flag
This bit is set in indirect mode when the programmed number of data has been transferred or in any mode when the transfer has been aborted.It is cleared by writing 1 to CTCF.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>FTF</name>
              <description>FIFO threshold flag
In indirect mode, this bit is set when the FIFO threshold has been reached, or if there is any data left in the FIFO after the reads from the external device are complete.
It is cleared automatically as soon as the threshold condition is no longer true.
In automatic status-polling mode this bit is set every time the status register is read, and the bit is cleared when the data register is read.</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>SMF</name>
              <description>Status match flag
This bit is set in automatic status-polling mode when the unmasked received data matches the corresponding bits in the match register (XSPI_PSMAR). 
It is cleared by writing 1 to CSMF.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>TOF</name>
              <description>Timeout flag
This bit is set when timeout occurs. It is cleared by writing 1 to CTOF.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>BUSY</name>
              <description>Busy
This bit is set when an operation is ongoing. It is cleared automatically when the operation with the external device is finished and the FIFO is empty.</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>FLEVEL</name>
              <description>FIFO level
This field gives the number of valid bytes that are being held in the FIFO. FLEVEL = 0 when the FIFO is empty, and 64 when it is full.
In automatic-status polling mode, FLEVEL is zero.</description>
              <bitOffset>8</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>FCR</name>
          <displayName>FCR</displayName>
          <description>XSPI flag clear register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>CTEF</name>
              <description>Clear transfer error flag
Writing 1 clears the TEF flag in the XSPI_SR register.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CTCF</name>
              <description>Clear transfer complete flag
Writing 1 clears the TCF flag in the XSPI_SR register.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CSMF</name>
              <description>Clear status match flag
Writing 1 clears the SMF flag in the XSPI_SR register.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>CTOF</name>
              <description>Clear timeout flag
Writing 1 clears the TOF flag in the XSPI_SR register.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DLR</name>
          <displayName>DLR</displayName>
          <description>XSPI data length register</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DL</name>
              <description>Data length</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>AR</name>
          <displayName>AR</displayName>
          <description>XSPIaddress register</description>
          <addressOffset>0x48</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ADDRESS</name>
              <description>Address
Address to be sent to the external device. In HyperBus protocol, this field must be even as this protocol is 16-bit word oriented. In dual-memory configuration, AR[0] is forced to 0. 
Writes to this field are ignored when BUSY = 1 or when FMODE = 11 (memory-mapped mode).
Some memory specifications consider that each address corresponds to a 16-bit value. XSPI considers that each address corresponds to an 8-bit value. So the software needs to multiple the address by two when accessing the memory registers.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>DR</name>
          <displayName>DR</displayName>
          <description>XSPI data register</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DATA</name>
              <description>Data
Data to be sent/received to/from the external SPI device
In indirect-write mode, data written to this register is stored on the FIFO before it is sent to the external device during the data phase. If the FIFO is too full, a write operation is stalled until the FIFO has enough space to accept the amount of data being written.
In indirect-read mode, reading this register gives (via the FIFO) the data that was received from the external device. If the FIFO does not have as many bytes as requested by the read operation and if BUSY = 1, the read operation is stalled until enough data is present or until the transfer is complete, whichever happens first.
In automatic status-polling mode, this register contains the last data read from the external device (without masking).
Word, half-word, and byte accesses to this register are supported. In indirect-write mode, a byte write adds 1 byte to the FIFO, a half-word write 2 bytes, and a word write 4 bytes.
Similarly, in indirect-read mode, a byte read removes 1 byte from the FIFO, a halfword read 2 bytes, and a word read 4 bytes. Accesses in indirect mode must be aligned to the bottom of this register: A byte read must read DATA[7:0] and a half-word read must read DATA[15:0].</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PSMKR</name>
          <displayName>PSMKR</displayName>
          <description>XSPI polling status mask register</description>
          <addressOffset>0x80</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MASK</name>
              <description>Status mask
Mask to be applied to the status bytes received in automatic status-polling mode
For bit n:</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PSMAR</name>
          <displayName>PSMAR</displayName>
          <description>XSPI polling status match register</description>
          <addressOffset>0x88</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>MATCH</name>
              <description>Status match
Value to be compared with the masked status register to get a match</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PIR</name>
          <displayName>PIR</displayName>
          <description>XSPI polling interval register</description>
          <addressOffset>0x90</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INTERVAL</name>
              <description>Polling interval
Number of CLK cycle between a read during the automatic status-polling phases</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CCR</name>
          <displayName>CCR</displayName>
          <description>XSPI communication configuration register</description>
          <addressOffset>0x100</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IMODE</name>
              <description>Instruction mode
This field defines the instruction phase mode of operation.
Others: reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IDTR</name>
              <description>Instruction double transfer rate
This bit sets the DTR mode for the instruction phase.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ISIZE</name>
              <description>Instruction size
This bit defines instruction size.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADMODE</name>
              <description>Address mode
This field defines the address phase mode of operation.
Others: reserved</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADDTR</name>
              <description>Address double transfer rate
This bit sets the DTR mode for the address phase.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADSIZE</name>
              <description>Address size
This field defines address size.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ABMODE</name>
              <description>Alternate-byte mode
This field defines the alternate byte phase mode of operation.
Others: reserved</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ABDTR</name>
              <description>Alternate bytes double transfer rate
This bit sets the DTR mode for the alternate bytes phase.
Note: This field can be written only when BUSY = 0.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ABSIZE</name>
              <description>Alternate bytes size
This bit defines alternate bytes size.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DMODE</name>
              <description>Data mode
This field defines the data phase mode of operation.
Others: reserved</description>
              <bitOffset>24</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DDTR</name>
              <description>Data double transfer rate
This bit sets the DTR mode for the data phase.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DQSE</name>
              <description>DQS enable
This bit enables the data strobe management.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>TCR</name>
          <displayName>TCR</displayName>
          <description>XSPI timing configuration register</description>
          <addressOffset>0x108</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DCYC</name>
              <description>Number of dummy cycles
This field defines the duration of the dummy phase.
In both SDR and DTR modes, it specifies a number of CLK cycles (0-31).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DHQC</name>
              <description>Delay hold quarter cycle</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SSHIFT</name>
              <description>Sample shift
By default, the XSPI samples data 1/2 of a CLK cycle after the data is driven by the external device.
This bit allows the data to be sampled later in order to consider the external signal delays.
The software must ensure that SSHIFT = 0 when the data phase is configured in DTR mode (when DDTR = 1.)</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>IR</name>
          <displayName>IR</displayName>
          <description>XSPI instruction register</description>
          <addressOffset>0x110</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INSTRUCTION</name>
              <description>Instruction
Instruction to be sent to the external SPI device</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>ABR</name>
          <displayName>ABR</displayName>
          <description>XSPI alternate bytes register</description>
          <addressOffset>0x120</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ALTERNATE</name>
              <description>Alternate bytes
Optional data to be sent to the external SPI device right after the address.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>LPTR</name>
          <displayName>LPTR</displayName>
          <description>XSPI low-power timeout register</description>
          <addressOffset>0x130</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>TIMEOUT</name>
              <description>Timeout period
After each access in memory-mapped mode, the XSPI prefetches the subsequent bytes and hold them in the FIFO.
This field indicates how many CLK cycles the XSPI waits after the clock becomes inactive and until it raises the NCS, putting the external device in a lower-consumption state.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>WPCCR</name>
          <displayName>WPCCR</displayName>
          <description>XSPI wrap communication configuration register</description>
          <addressOffset>0x140</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IMODE</name>
              <description>Instruction mode
This field defines the instruction phase mode of operation.
Others: reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IDTR</name>
              <description>Instruction double transfer rate
This bit sets the DTR mode for the instruction phase.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ISIZE</name>
              <description>Instruction size
This field defines instruction size.</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADMODE</name>
              <description>Address mode
This field defines the address phase mode of operation.
Others: reserved</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADDTR</name>
              <description>Address double transfer rate
This bit sets the DTR mode for the address phase.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADSIZE</name>
              <description>Address size
This field defines address size.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ABMODE</name>
              <description>Alternate-byte mode
This field defines the alternate byte phase mode of operation.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ABDTR</name>
              <description>Alternate bytes double transfer rate
This bit sets the DTR mode for the alternate bytes phase.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ABSIZE</name>
              <description>Alternate bytes size
This bit defines alternate bytes size.</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DMODE</name>
              <description>Data mode
This field defines the data phase mode of operation.
101; data on 16 lines
Others: reserved</description>
              <bitOffset>24</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DDTR</name>
              <description>Data double transfer rate
This bit sets the DTR mode for the data phase.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DQSE</name>
              <description>DQS enable
This bit enables the data strobe management.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>WPTCR</name>
          <displayName>WPTCR</displayName>
          <description>XSPI wrap timing configuration register</description>
          <addressOffset>0x148</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DCYC</name>
              <description>Number of dummy cycles
This field defines the duration of the dummy phase.
In both SDR and DTR modes, it specifies a number of CLK cycles (0-31).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DHQC</name>
              <description>Delay hold quarter cycle
Add a quarter cycle delay on the outputs in DTR communication to match hold requirement.</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>SSHIFT</name>
              <description>Sample shift
By default, the XSPI samples data 1/2 of a CLK cycle after the data is driven by the external device.
This bit allows the data to be sampled later in order to consider the external signal delays.
The firmware must assure that SSHIFT=0 when the data phase is configured in DTR mode (when DDTR = 1).</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>WPIR</name>
          <displayName>WPIR</displayName>
          <description>XSPI wrap instruction register</description>
          <addressOffset>0x150</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INSTRUCTION</name>
              <description>Instruction
Instruction to be sent to the external SPI device</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>WPABR</name>
          <displayName>WPABR</displayName>
          <description>XSPI wrap alternate byte register</description>
          <addressOffset>0x160</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ALTERNATE</name>
              <description>Alternate bytes
Optional data to be sent to the external SPI device right after the address</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>WCCR</name>
          <displayName>WCCR</displayName>
          <description>XSPI write communication configuration register</description>
          <addressOffset>0x180</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>IMODE</name>
              <description>Instruction mode
This field defines the instruction phase mode of operation.
Others: reserved</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>IDTR</name>
              <description>Instruction double transfer rate
This bit sets the DTR mode for the instruction phase.</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ISIZE</name>
              <description>Instruction size
This bit defines instruction size:</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADMODE</name>
              <description>Address mode
This field defines the address phase mode of operation.
Others: reserved</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADDTR</name>
              <description>Address double transfer rate
This bit sets the DTR mode for the address phase.</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ADSIZE</name>
              <description>Address size
This field defines address size.</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ABMODE</name>
              <description>Alternate-byte mode
This field defines the alternate-byte phase mode of operation.
Others: reserved</description>
              <bitOffset>16</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ABDTR</name>
              <description>Alternate bytes double-transfer rate
This bit sets the DTR mode for the alternate-bytes phase.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>ABSIZE</name>
              <description>Alternate bytes size
This field defines alternate bytes size:</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DMODE</name>
              <description>Data mode
This field defines the data phase mode of operation.</description>
              <bitOffset>24</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DDTR</name>
              <description>data double transfer rate
This bit sets the DTR mode for the data phase.</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>DQSE</name>
              <description>DQS enable
This bit enables the data strobe management.</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>WTCR</name>
          <displayName>WTCR</displayName>
          <description>XSPI write timing configuration register</description>
          <addressOffset>0x188</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>DCYC</name>
              <description>Number of dummy cycles
This field defines the duration of the dummy phase.
In both SDR and DTR modes, it specifies a number of CLK cycles (0-31). It is recommended to have at least 5 dummy cycles when using memories with DQS activated.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>WIR</name>
          <displayName>WIR</displayName>
          <description>XSPI write instruction register</description>
          <addressOffset>0x190</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>INSTRUCTION</name>
              <description>Instruction
Instruction to be sent to the external SPI device</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>WABR</name>
          <displayName>WABR</displayName>
          <description>XSPI write alternate byte register</description>
          <addressOffset>0x1A0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>ALTERNATE</name>
              <description>Alternate bytes
Optional data to be sent to the external SPI device right after the address</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>HLCR</name>
          <displayName>HLCR</displayName>
          <description>XSPI HyperBus latency configuration register</description>
          <addressOffset>0x200</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>LM</name>
              <description>Latency mode
This bit selects the Latency mode.
Note: This bit must be set when using the dual-octal HyperBus configuration.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>WZL</name>
              <description>Write zero latency
This bit enables zero latency on write operations.</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TACC</name>
              <description>Access time
Device access time expressed in number of communication clock cycles</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>TRWR</name>
              <description>Read write recovery time
Device read write recovery time expressed in number of communication clock cycles</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CALFCR</name>
          <displayName>CALFCR</displayName>
          <description>XSPI full-cycle calibration configuration</description>
          <addressOffset>0x210</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FINE</name>
              <description>Fine calibration
The unitary value of delay for this field depends on product technology (refer to the product datasheet).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>COARSE</name>
              <description>Coarse calibration
The unitary value of delay for this field depends on product technology (refer to the product datasheet).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-only</access>
            </field>
            <field>
              <name>CALMAX</name>
              <description>Max value
This bit gets set when the memory-clock period is outside the range of DLL master, in which case XSPI_CALFCR and XSPI_CALSR are updated with the values for the maximum delay.</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CALMR</name>
          <displayName>CALMR</displayName>
          <description>XSPI DLL master calibration configuration</description>
          <addressOffset>0x218</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FINE</name>
              <description>Fine calibration
The unitary value of delay for this field depends on product technology (refer to the product datasheet).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COARSE</name>
              <description>Coarse calibration
The unitary value of delay for this field depends on product technology (refer to the product datasheet).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CALSOR</name>
          <displayName>CALSOR</displayName>
          <description>XSPI DLL slave output calibration configuration</description>
          <addressOffset>0x220</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FINE</name>
              <description>Fine calibration
The unitary value of delay for this field depends on product technology (refer to the product datasheet).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COARSE</name>
              <description>Coarse calibration
The unitary value of delay for this field depends on product technology (refer to the product datasheet).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CALSIR</name>
          <displayName>CALSIR</displayName>
          <description>XSPI DLL slave input calibration configuration</description>
          <addressOffset>0x228</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field>
              <name>FINE</name>
              <description>Fine calibration
The unitary value of delay for this field depends on product technology (refer to the product datasheet).</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>COARSE</name>
              <description>Coarse calibration
The unitary value of delay for this field depends on product technology (refer to the product datasheet).</description>
              <bitOffset>16</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="XSPI1">
      <name>XSPI2</name>
      <baseAddress>0x5200A000</baseAddress>
    </peripheral>
    <peripheral>
      <name>XSPIM1</name>
      <description>XSPIM1 register block</description>
      <groupName>XSPI</groupName>
      <baseAddress>0x5200B400</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x20</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>XSPIM control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>MUXEN</name>
              <description>Multiplexed mode enable
This bit enables the multiplexing of the two XSPIs.</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>MODE</name>
              <description>XSPI multiplexing mode</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CSSEL_OVR_EN</name>
              <description>Chip select selector override enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CSSEL_OVR_O1</name>
              <description>Chip select selector override setting for XSPI1</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CSSEL_OVR_O2</name>
              <description>Chip select selector override setting for XSPI2</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>REQ2ACK_TIME</name>
              <description>REQ to ACK time
In Multiplexed mode (MUXEN = 1), this field defines the time between two transactions.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>GPIOB</name>
      <description>General-purpose I/Os</description>
      <groupName>GPIO</groupName>
      <baseAddress>0x58020400</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x30</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>
          <resetValue>0xFFFFFEBF</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field derivedFrom="GPIOA.MODER.MODE%s">
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>MODE%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </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>
          <resetValue>0x000000C0</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field derivedFrom="GPIOA.OSPEEDR.OSPEED%s">
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>OSPEED%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </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>
          <resetValue>0x00000100</resetValue>
          <resetMask>0xFFFFFFFF</resetMask>
          <fields>
            <field derivedFrom="GPIOA.PUPDR.PUPD%s">
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>PUPD%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
            </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>GPIO port bit reset register</description>
          <addressOffset>0x28</addressOffset>
        </register>
      </registers>
    </peripheral>
  </peripherals>
</device>