addrmap RenesasRZG_SCIFA {

/* 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 "ModulationDuty" overlaps another register at the same offset (0x2) and will be skipped, as it is illegal in SystemRDL.
 */

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="BitRate";
        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];
    } BitRate @ 0x0;
    reg {
        name="ModulationDuty";
        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];
    } ModulationDuty @ 0x1;
} ModulationDutyRegisterSelect_addrmap;
addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="SerialMode";
        regwidth=0x10;
            field {
                sw = rw;
            } CKS[1:0];
            field {
                sw = rw;
            } STOP[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } PM[4:4];
            field {
                sw = rw;
            } PE[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CHR[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } CM[7:7];
    } SerialMode @ 0x0;
    reg {
        name="BitRate";
        regwidth=0x10;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
                reset=8'b11111111;
            } BRR[7:0];
    } BitRate @ 0x2;
    /* Conversion error: Register "ModulationDuty" overlaps another register at the same offset (0x2) and will be skipped, as it is illegal in SystemRDL.
    reg {
        name="ModulationDuty";
        regwidth=0x10;

    } ModulationDuty @ 0x2;
    */
    reg {
        name="SerialControl";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x10;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CKE[1:0];
            field {
                sw = rw;
            } TEIE[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } REIE[3:3];
            field {
                sw = rw;
            } RE[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } TE[5:5];
            field {
                sw = rw;
            } RIE[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } TIE[7:7];
    } SerialControl @ 0x4;
    reg {
        name="FifoDataTransmit";
        regwidth=0x10;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } FTDR[7:0];
    } FifoDataTransmit @ 0x6;
    reg {
        name="SerialStatus";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x10;
            field {
                sw = r;
            } PER[2:2];
            field {
                sw = r;
            } FER[3:3];
    } SerialStatus @ 0x8;
    reg {
        name="FifoDataReceive";
        regwidth=0x10;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } FRDR[7:0];
    } FifoDataReceive @ 0xa;
    reg {
        name="FifoControl";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x10;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LOOP[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
                onwrite = woclr;
            } RFRST[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
                onwrite = woclr;
            } TFRST[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MCE[3:3];
            field {
                sw = rw;
            } TTRG[5:4];
            field {
                sw = rw;
            } RTRG[7:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RSTRG[10:8];
    } FifoControl @ 0xc;
    reg {
        name="FifoDataCount";
        regwidth=0x10;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } R[4:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } T[12:8];
    } FifoDataCount @ 0xe;
    reg {
        name="SerialPort";
        regwidth=0x10;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SPB2DT[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SPB2IO[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SCKDT[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SCKIO[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTS2DT[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTS2IO[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RTS2DT[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RTS2IO[7:7];
    } SerialPort @ 0x10;
    reg {
        name="LineStatus";
        regwidth=0x10;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ORER[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FER[6:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PER[12:8];
    } LineStatus @ 0x12;
    reg {
        name="SerialExtendedMode";
        regwidth=0x10;
            field {
                sw = rw;
            } ABCS0[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } NFEN[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DIR[3:3];
            field {
                sw = rw;
            } MDDRS[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } BRME[5:5];
            field {
                sw = rw;
            } BGDM[7:7];
    } SerialExtendedMode @ 0x14;
    reg {
        name="FifoTriggerControl";
        regwidth=0x10;
            field {
                sw = rw;
                reset=5'b11111;
            } TFTC[4:0];
            field {
                sw = rw;
            } TTRGS[7:7];
            field {
                sw = rw;
                reset=5'b11111;
            } RFTC[12:8];
            field {
                sw = rw;
            } RTRGS[15:15];
    } FifoTriggerControl @ 0x16;
} Registers_addrmap;


};