addrmap LIS2DS12 {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="WhoAmI";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
                reset=8'b1000011;
            } DUMMY[7:0];
    } WhoAmI @ 0xf;
    reg {
        name="Control1";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } BLOCK_DATA_UPDATE[0:0];
            field {
                sw = rw;
            } HIGH_FREQ_MODE_ENABLE[1:1];
            field {
                sw = rw;
            } FULL_SCALE_SELECT[3:2];
            field {
                sw = rw;
            } OUTPUT_DATA_RATE[7:4];
    } Control1 @ 0x20;
    reg {
        name="Control4";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x8;
            field {
                sw = rw;
                reset=1'b1;
            } DATA_READY_IRQ1_ENABLE[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFO_THRESHOLD_IRQ1_ENABLE[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } _6D_RECON_IRQ1_ENABLE[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DOUBLE_TAP_RECON_IRQ1_ENABLE[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FREE_FALL_RECON_IRQ1_ENABLE[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WAKEUP_RECON_IRQ1_ENABLE[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SINGLE_TAP_RECON_IRQ1_ENABLE[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MASTER_DATA_READY_IRQ1_ENABLE[7:7];
    } Control4 @ 0x23;
    reg {
        name="TemperatureOut";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } TEMPERATURE_SENSOR[7:0];
    } TemperatureOut @ 0x26;
    reg {
        name="Status";
        regwidth=0x8;
            field {
                sw = r;
            } XYZ_DATA_AVAILABLE[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FREE_FALL_EVENT_DETECT[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CHANGE_IN_POSITION_DETECT[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SINGLE_TAP_EVENT_DETECT[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DOUBLE_TAP_EVENT_DETECT[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SLEEP_EVENT_DETECT[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WAKEUP_EVENT_DETECT[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFO_REACH_THRESHOLD[7:7];
    } Status @ 0x27;
    reg {
        name="DataOutXLow";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } X_ACCEL_DATA7_2[7:0];
    } DataOutXLow @ 0x28;
    reg {
        name="DataOutXHigh";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } X_ACCEL_DATA15_8[7:0];
    } DataOutXHigh @ 0x29;
    reg {
        name="DataOutYLow";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Y_ACCEL_DATA7_2[7:0];
    } DataOutYLow @ 0x2a;
    reg {
        name="DataOutYHigh";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Y_ACCEL_DATA15_8[7:0];
    } DataOutYHigh @ 0x2b;
    reg {
        name="DataOutZLow";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Z_ACCEL_DATA7_2[7:0];
    } DataOutZLow @ 0x2c;
    reg {
        name="DataOutZHigh";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Z_ACCEL_DATA15_8[7:0];
    } DataOutZHigh @ 0x2d;
    reg {
        name="StatusEventDetection";
        regwidth=0x8;
            field {
                sw = r;
            } XYZ_DATA_AVAILABLE[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FREE_FALL_EVENT_DETECT[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CHANGE_IN_POSITION_DETECT[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SINGLE_TAP_EVENT_DETECT[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DOUBLE_TAP_EVENT_DETECT[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SLEEP_EVENT_DETECT[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WAKEUP_EVENT_DETECT[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFO_REACH_THRESHOLD[7:7];
    } StatusEventDetection @ 0x36;
} Registers_addrmap;


};