addrmap EFR32MG12_LDMA {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Control";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SYNCPRSSETEN[7:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SYNCPRSCLREN[15:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } NUMFIXED[26:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RESET[31:31];
    } Control @ 0x0;
    reg {
        name="Status";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ANYBUSY[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ANYREQ[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CHGRANT[5:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CHERROR[10:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFOLEVEL[20:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CHNUM[28:24];
    } Status @ 0x4;
    reg {
        name="SynchronizationTrigger";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SYNCTRIG[7:0];
    } SynchronizationTrigger @ 0x8;
    reg {
        name="ChannelEnable";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } CHEN[7:0];
    } ChannelEnable @ 0x20;
    reg {
        name="ChannelBusy";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } BUSY[7:0];
    } ChannelBusy @ 0x24;
    reg {
        name="ChannelDone";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } CHDONE[7:0];
    } ChannelDone @ 0x28;
    reg {
        name="ChannelDebugHalt";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DBGHALT[7:0];
    } ChannelDebugHalt @ 0x2c;
    reg {
        name="ChannelSoftwareTransferRequest";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woset;
            } SWREQ[7:0];
    } ChannelSoftwareTransferRequest @ 0x30;
    reg {
        name="ChannelRequestDisable";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } REQDIS[7:0];
    } ChannelRequestDisable @ 0x34;
    reg {
        name="ChannelRequestsPending";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } REQPEND[7:0];
    } ChannelRequestsPending @ 0x38;
    reg {
        name="ChannelLinkLoad";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woset;
            } LINKLOAD[7:0];
    } ChannelLinkLoad @ 0x3c;
    reg {
        name="ChannelRequestClear";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } REQCLEAR[7:0];
    } ChannelRequestClear @ 0x40;
    reg {
        name="InterruptFlag";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } DONE[7:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ERROR[31:31];
    } InterruptFlag @ 0x60;
    reg {
        name="InterruptFlagSet";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woset;
            } DONE[7:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ERROR[31:31];
    } InterruptFlagSet @ 0x64;
    reg {
        name="InterruptFlagClear";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } DONE[7:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ERROR[31:31];
    } InterruptFlagClear @ 0x68;
    reg {
        name="InterruptEnable";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } DONE[7:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ERROR[31:31];
    } InterruptEnable @ 0x6c;
    reg {
        name="Channel0PeripheralRequestSelect";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } Channel0PeripheralRequestSelect @ 0x80;
    reg {
        name="Channel0Configuration";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } Channel0Configuration @ 0x84;
    reg {
        name="Channel0LoopCounter";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } Channel0LoopCounter @ 0x88;
    reg {
        name="Channel0DescriptorControlWord";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } Channel0DescriptorControlWord @ 0x8c;
    reg {
        name="Channel0DescriptorSourceDataAddress";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } Channel0DescriptorSourceDataAddress @ 0x90;
    reg {
        name="Channel0DescriptorDestinationDataAddress";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } Channel0DescriptorDestinationDataAddress @ 0x94;
    reg {
        name="Channel0DescriptorLinkStructureAddress";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } Channel0DescriptorLinkStructureAddress @ 0x98;
    reg {
        name="Channel1PeripheralRequestSelect";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel1PeripheralRequestSelect @ 0xb0;
    reg {
        name="Channel1Configuration";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel1Configuration @ 0xb4;
    reg {
        name="Channel1LoopCounter";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel1LoopCounter @ 0xb8;
    reg {
        name="Channel1DescriptorControlWord";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel1DescriptorControlWord @ 0xbc;
    reg {
        name="Channel1DescriptorSourceDataAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel1DescriptorSourceDataAddress @ 0xc0;
    reg {
        name="Channel1DescriptorDestinationDataAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel1DescriptorDestinationDataAddress @ 0xc4;
    reg {
        name="Channel1DescriptorLinkStructureAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel1DescriptorLinkStructureAddress @ 0xc8;
    reg {
        name="Channel2PeripheralRequestSelect";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel2PeripheralRequestSelect @ 0xe0;
    reg {
        name="Channel2Configuration";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel2Configuration @ 0xe4;
    reg {
        name="Channel2LoopCounter";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel2LoopCounter @ 0xe8;
    reg {
        name="Channel2DescriptorControlWord";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel2DescriptorControlWord @ 0xec;
    reg {
        name="Channel2DescriptorSourceDataAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel2DescriptorSourceDataAddress @ 0xf0;
    reg {
        name="Channel2DescriptorDestinationDataAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel2DescriptorDestinationDataAddress @ 0xf4;
    reg {
        name="Channel2DescriptorLinkStructureAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel2DescriptorLinkStructureAddress @ 0xf8;
    reg {
        name="Channel3PeripheralRequestSelect";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel3PeripheralRequestSelect @ 0x110;
    reg {
        name="Channel3Configuration";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel3Configuration @ 0x114;
    reg {
        name="Channel3LoopCounter";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel3LoopCounter @ 0x118;
    reg {
        name="Channel3DescriptorControlWord";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel3DescriptorControlWord @ 0x11c;
    reg {
        name="Channel3DescriptorSourceDataAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel3DescriptorSourceDataAddress @ 0x120;
    reg {
        name="Channel3DescriptorDestinationDataAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel3DescriptorDestinationDataAddress @ 0x124;
    reg {
        name="Channel3DescriptorLinkStructureAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel3DescriptorLinkStructureAddress @ 0x128;
    reg {
        name="Channel4PeripheralRequestSelect";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel4PeripheralRequestSelect @ 0x140;
    reg {
        name="Channel4Configuration";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel4Configuration @ 0x144;
    reg {
        name="Channel4LoopCounter";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel4LoopCounter @ 0x148;
    reg {
        name="Channel4DescriptorControlWord";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel4DescriptorControlWord @ 0x14c;
    reg {
        name="Channel4DescriptorSourceDataAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel4DescriptorSourceDataAddress @ 0x150;
    reg {
        name="Channel4DescriptorDestinationDataAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel4DescriptorDestinationDataAddress @ 0x154;
    reg {
        name="Channel4DescriptorLinkStructureAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel4DescriptorLinkStructureAddress @ 0x158;
    reg {
        name="Channel5PeripheralRequestSelect";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel5PeripheralRequestSelect @ 0x170;
    reg {
        name="Channel5Configuration";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel5Configuration @ 0x174;
    reg {
        name="Channel5LoopCounter";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel5LoopCounter @ 0x178;
    reg {
        name="Channel5DescriptorControlWord";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel5DescriptorControlWord @ 0x17c;
    reg {
        name="Channel5DescriptorSourceDataAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel5DescriptorSourceDataAddress @ 0x180;
    reg {
        name="Channel5DescriptorDestinationDataAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel5DescriptorDestinationDataAddress @ 0x184;
    reg {
        name="Channel5DescriptorLinkStructureAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel5DescriptorLinkStructureAddress @ 0x188;
    reg {
        name="Channel6PeripheralRequestSelect";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel6PeripheralRequestSelect @ 0x1a0;
    reg {
        name="Channel6Configuration";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel6Configuration @ 0x1a4;
    reg {
        name="Channel6LoopCounter";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel6LoopCounter @ 0x1a8;
    reg {
        name="Channel6DescriptorControlWord";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel6DescriptorControlWord @ 0x1ac;
    reg {
        name="Channel6DescriptorSourceDataAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel6DescriptorSourceDataAddress @ 0x1b0;
    reg {
        name="Channel6DescriptorDestinationDataAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel6DescriptorDestinationDataAddress @ 0x1b4;
    reg {
        name="Channel6DescriptorLinkStructureAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel6DescriptorLinkStructureAddress @ 0x1b8;
    reg {
        name="Channel7PeripheralRequestSelect";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel7PeripheralRequestSelect @ 0x1d0;
    reg {
        name="Channel7Configuration";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel7Configuration @ 0x1d4;
    reg {
        name="Channel7LoopCounter";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel7LoopCounter @ 0x1d8;
    reg {
        name="Channel7DescriptorControlWord";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel7DescriptorControlWord @ 0x1dc;
    reg {
        name="Channel7DescriptorSourceDataAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel7DescriptorSourceDataAddress @ 0x1e0;
    reg {
        name="Channel7DescriptorDestinationDataAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel7DescriptorDestinationDataAddress @ 0x1e4;
    reg {
        name="Channel7DescriptorLinkStructureAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Channel7DescriptorLinkStructureAddress @ 0x1e8;
} Registers_addrmap;


};