addrmap RenesasDA14_UART {

/* Some conversion errors detected, this might mean that the peripheral's registers structure in this file is incomplete.
 * Please refer to logs and comments in the file for more information.
 * 
 * Register "DivisorLatchL" overlaps another register at the same offset (0x0) and will be skipped, as it is illegal in SystemRDL.
 * Register "DivisorLatchH" overlaps another register at the same offset (0x4) and will be skipped, as it is illegal in SystemRDL.
 * Field "FIFOE" overlaps another field at the same offset (0x0) and will be skipped, as it is illegal in SystemRDL.
 * Field "RT" overlaps another field at the same offset (0x6) and will be skipped, as it is illegal in SystemRDL.
 * Field "IID_" overlaps another field at the same offset (0x0) and will be skipped, as it is illegal in SystemRDL.
 * Field "FIFOSE_" overlaps another field at the same offset (0x6) and will be skipped, as it is illegal in SystemRDL.
 * Field "FIFOE_" overlaps another field at the same offset (0x0) and will be skipped, as it is illegal in SystemRDL.
 * Field "RFIFOR_" overlaps another field at the same offset (0x1) and will be skipped, as it is illegal in SystemRDL.
 * Field "XFIFOR_" overlaps another field at the same offset (0x2) and will be skipped, as it is illegal in SystemRDL.
 * Field "DMAM_" overlaps another field at the same offset (0x3) and will be skipped, as it is illegal in SystemRDL.
 * Field "TET_" overlaps another field at the same offset (0x4) and will be skipped, as it is illegal in SystemRDL.
 * Field "RT_" overlaps another field at the same offset (0x6) and will be skipped, as it is illegal in SystemRDL.
 */

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Data";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } RBR_THR_DLL[7:0];
    } Data @ 0x0;
    /* Conversion error: Register "DivisorLatchL" overlaps another register at the same offset (0x0) and will be skipped, as it is illegal in SystemRDL.
    reg {
        name="DivisorLatchL";
        regwidth=0x20;

    } DivisorLatchL @ 0x0;
    */
    reg {
        name="InterruptEnable";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } ERBFI_DLH0[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ETBEI_DLH1[1:1];
            field {
                sw = rw;
            } ELSI_DLH2[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ELSI_DLH2_[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ELCOLR_DLH4[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PTIME_DLH7[7:7];
    } InterruptEnable @ 0x4;
    /* Conversion error: Register "DivisorLatchH" overlaps another register at the same offset (0x4) and will be skipped, as it is illegal in SystemRDL.
    reg {
        name="DivisorLatchH";
        regwidth=0x20;

    } DivisorLatchH @ 0x4;
    */
    reg {
        name="FIFOControl";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } IID[3:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } FIFOSE[7:6];
            /* Conversion error: Field "FIFOE" overlaps another field at the same offset (0x0) and will be skipped, as it is illegal in SystemRDL.
            field {
                sw = w;
            } FIFOE[0:0];
            */
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } RFIFOR[1:1];
            field {
                sw = w;
            } XFIFOR[2:2];
            field {
                sw = w;
            } DMAM[3:3];
            field {
                sw = w;
            } TET[5:4];
            /* Conversion error: Field "RT" overlaps another field at the same offset (0x6) and will be skipped, as it is illegal in SystemRDL.
            field {
                sw = w;
            } RT[7:6];
            */
            /* Conversion error: Field "IID_" overlaps another field at the same offset (0x0) and will be skipped, as it is illegal in SystemRDL.
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } IID_[3:0];
            */
            /* Conversion error: Field "FIFOSE_" overlaps another field at the same offset (0x6) and will be skipped, as it is illegal in SystemRDL.
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } FIFOSE_[7:6];
            */
            /* Conversion error: Field "FIFOE_" overlaps another field at the same offset (0x0) and will be skipped, as it is illegal in SystemRDL.
            field {
                sw = w;
            } FIFOE_[0:0];
            */
            /* Conversion error: Field "RFIFOR_" overlaps another field at the same offset (0x1) and will be skipped, as it is illegal in SystemRDL.
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } RFIFOR_[1:1];
            */
            /* Conversion error: Field "XFIFOR_" overlaps another field at the same offset (0x2) and will be skipped, as it is illegal in SystemRDL.
            field {
                sw = w;
            } XFIFOR_[2:2];
            */
            /* Conversion error: Field "DMAM_" overlaps another field at the same offset (0x3) and will be skipped, as it is illegal in SystemRDL.
            field {
                sw = w;
            } DMAM_[3:3];
            */
            /* Conversion error: Field "TET_" overlaps another field at the same offset (0x4) and will be skipped, as it is illegal in SystemRDL.
            field {
                sw = w;
            } TET_[5:4];
            */
            /* Conversion error: Field "RT_" overlaps another field at the same offset (0x6) and will be skipped, as it is illegal in SystemRDL.
            field {
                sw = w;
            } RT_[7:6];
            */
    } FIFOControl @ 0x8;
    reg {
        name="LineControl";
        regwidth=0x20;
            field {
                sw = rw;
            } UART_DLS[1:0];
            field {
                sw = rw;
            } UART_STOP[2:2];
            field {
                sw = rw;
            } UART_PEN[3:3];
            field {
                sw = rw;
            } UART_EPS[4:4];
            field {
                sw = rw;
            } UART_BC[6:6];
            field {
                sw = rw;
            } UART_DLAB[7:7];
    } LineControl @ 0xc;
    reg {
        name="ModemControl";
        regwidth=0x20;
            field {
                sw = rw;
            } UART_LB[4:4];
    } ModemControl @ 0x10;
    reg {
        name="LineStatus";
        desc = "This register has the following custom Renode callbacks: Read";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } UART_DR[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
                onread = rclr;
            } UART_OE[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
                onread = rclr;
            } UART_PE[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
                onread = rclr;
            } UART_FE[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
                onread = rclr;
            } UART_BI[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } UART_THRE[5:5];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } UART_TEMT[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } UART_RFE[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } UART_ADDR_RCVD[8:8];
    } LineStatus @ 0x14;
    reg {
        name="ModemStatus";
        regwidth=0x20;
            field {
                sw = rw;
            } UART_DCTS[0:0];
            field {
                sw = rw;
            } UART_CTS[4:4];
    } ModemStatus @ 0x18;
    reg {
        name="Scratchpad";
        regwidth=0x20;
            field {
                sw = rw;
            } UART_SCRATCH_PAD[7:0];
    } Scratchpad @ 0x1c;
    reg {
        name="DataShadow0";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } SRBR_STHRidx[7:0];
    } DataShadow0 [16]@ 0x30 += 4;
    reg {
        name="Status";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } UART_BUSY[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
                reset=1'b1;
            } UART_TFNF[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
                reset=1'b1;
            } UART_TFE[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } UART_RFNE[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } UART_RFF[4:4];
    } Status @ 0x7c;
    reg {
        name="TransmitFifoLevel";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } UART_TRANSMIT_FIFO_LEVEL[4:0];
    } TransmitFifoLevel @ 0x80;
    reg {
        name="ReceiveFifoLevel";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } UART_RECEIVE_FIFO_LEVEL[4:0];
    } ReceiveFifoLevel @ 0x84;
    reg {
        name="SoftwareReset";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = w;
                onwrite = woclr;
            } UART_UR[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = w;
                onwrite = woclr;
            } UART_RFR[1:1];
            field {
                sw = w;
                onwrite = woclr;
            } UART_XFR[2:2];
    } SoftwareReset @ 0x88;
    reg {
        name="BreakControlShadow";
        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];
    } BreakControlShadow @ 0x90;
    reg {
        name="DmaModeShadow";
        regwidth=0x20;
            field {
                sw = rw;
            } UART_SHADOW_DMA_MODE[0:0];
    } DmaModeShadow @ 0x94;
    reg {
        name="FIFOEnableShadow";
        regwidth=0x20;
            field {
                sw = rw;
            } UART_SHADOW_FIFO_ENABLE[0:0];
    } FIFOEnableShadow @ 0x98;
    reg {
        name="RCVRTriggerShadow";
        regwidth=0x20;
            field {
                sw = rw;
            } UART_SHADOW_RCVR_TRIGGER[1:0];
    } RCVRTriggerShadow @ 0x9c;
    reg {
        name="TXEmptyTriggerShadow";
        regwidth=0x20;
            field {
                sw = rw;
            } UART_SHADOW_TX_EMPTY_TRIGGER[1:0];
    } TXEmptyTriggerShadow @ 0xa0;
    reg {
        name="TXHalt";
        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];
    } TXHalt @ 0xa4;
    reg {
        name="DMAAck";
        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];
    } DMAAck @ 0xa8;
    reg {
        name="DivisorLatchFraction";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } UART_DLF[3:0];
    } DivisorLatchFraction @ 0xc0;
    reg {
        name="ComponentVersion";
        regwidth=0x20;
            field {
                sw = r;
                reset=32'b110100001100000011000100101010;
            } UART_UCV[31:0];
    } ComponentVersion @ 0xf8;
    reg {
        name="ComponentType";
        regwidth=0x20;
            field {
                sw = r;
                reset=32'b1000100010101110000000100010000;
            } UART_CTR[31:0];
    } ComponentType @ 0xfc;
} Registers_addrmap;


};