addrmap MAX30208 {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Status";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x8;
            field {
                sw = r;
                onread = rclr;
            } STATUS_temp_rdy[0:0];
            field {
                sw = r;
                onread = rclr;
            } STATUS_temp_hi[1:1];
            field {
                sw = r;
                onread = rclr;
            } STATUS_temp_lo[2:2];
            field {
                sw = rw;
            } STATUS_a_full[7:7];
    } Status @ 0x0;
    reg {
        name="InterruptEnable";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x8;
            field {
                sw = rw;
            } INT_EN_temp_rdy[0:0];
            field {
                sw = rw;
            } INT_EN_temp_hi[1:1];
            field {
                sw = rw;
            } INT_EN_temp_lo[2:2];
            field {
                sw = rw;
            } INT_EN_a_full[7:7];
    } InterruptEnable @ 0x1;
    reg {
        name="FIFOWritePointer";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFO_WR_PTR_fifo_wr_ptr[4:0];
    } FIFOWritePointer @ 0x4;
    reg {
        name="FIFOReadPointer";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFO_RD_PTR_fifo_rd_ptr[4:0];
    } FIFOReadPointer @ 0x5;
    reg {
        name="FIFOOverflowCounter";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFO_OVF_COUNTER_ovf_counter[4:0];
    } FIFOOverflowCounter @ 0x6;
    reg {
        name="FIFODataCounter";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } FIFO_DATA_COUNT_fifo_data_count[5:0];
    } FIFODataCounter @ 0x7;
    reg {
        name="FIFOData";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } FIFO_DATA_fifo_data[7:0];
    } FIFOData @ 0x8;
    reg {
        name="FIFOConfiguration1";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x8;
            field {
                sw = rw;
                reset=5'b1111;
            } FIFO_CONF1_fifo_a_full[4:0];
    } FIFOConfiguration1 @ 0x9;
    reg {
        name="FIFOConfiguration2";
        regwidth=0x8;
            field {
                sw = rw;
            } FIFO_CONF2_fifo_ro[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } FIFO_CONF2_a_full_type[2:2];
            field {
                sw = rw;
            } FIFO_CONF2_fifo_stat_clr[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } FIFO_CONF2_flush_fifo[4:4];
    } FIFOConfiguration2 @ 0xa;
    reg {
        name="SystemControl";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } SYSTEM_CTRL_reset[0:0];
    } SystemControl @ 0xc;
    reg {
        name="AlarmHighMSB";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } ALARM_HI_MSB_alarm_hi_msb[7:0];
    } AlarmHighMSB @ 0x10;
    reg {
        name="AlarmHighLSB";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } ALARM_HI_LSB_alarm_hi_lsb[7:0];
    } AlarmHighLSB @ 0x11;
    reg {
        name="AlarmLowMSB";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } ALARM_LO_MSB_alarm_lo_msb[7:0];
    } AlarmLowMSB @ 0x12;
    reg {
        name="AlarmLowLSB";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } ALARM_LO_LSB_alarm_lo_lsb[7:0];
    } AlarmLowLSB @ 0x13;
    reg {
        name="TempSensorSetup";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
                onwrite = woclr;
            } TEMP_SENS_SETUP_convert_t[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=2'b11;
            } TEMP_SENS_SETUP_rfu[7:6];
    } TempSensorSetup @ 0x14;
    reg {
        name="GPIOSetup";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x8;
            field {
                sw = rw;
                reset=2'b10;
            } GPIO_SETUP_gpio0_mode[1:0];
            field {
                sw = rw;
                reset=2'b10;
            } GPIO_SETUP_gpio1_mode[7:6];
    } GPIOSetup @ 0x20;
    reg {
        name="GPIOControl";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x8;
            field {
                sw = rw;
            } GPIO_CTRL_gpio0_ll[0:0];
            field {
                sw = rw;
            } GPIO_CTRL_gpio1_ll[3:3];
    } GPIOControl @ 0x21;
    reg {
        name="PartID1";
        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];
    } PartID1 @ 0x31;
    reg {
        name="PartID2";
        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];
    } PartID2 @ 0x32;
    reg {
        name="PartID3";
        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];
    } PartID3 @ 0x33;
    reg {
        name="PartID4";
        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];
    } PartID4 @ 0x34;
    reg {
        name="PartID5";
        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];
    } PartID5 @ 0x35;
    reg {
        name="PartID6";
        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];
    } PartID6 @ 0x36;
    reg {
        name="PartIdentifier";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=8'b110000;
            } PART_IDNET_data[7:0];
    } PartIdentifier @ 0xff;
} Registers_addrmap;


};