addrmap LIS2DW12 {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="TemperatureOutLow";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Temperature_output_register_in_12_bit_resolution_OUT_T_L[7:0];
    } TemperatureOutLow @ 0xd;
    reg {
        name="TemperatureOutHigh";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Temperature_output_register_in_12_bit_resolution_OUT_T_H[7:0];
    } TemperatureOutHigh @ 0xe;
    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'b1000100;
            } DUMMY[7:0];
    } WhoAmI @ 0xf;
    reg {
        name="Control1";
        regwidth=0x8;
            field {
                sw = rw;
            } Low_power_mode_selection_LP_MODE[1:0];
            field {
                sw = rw;
            } Mode_selection_MODE[3:2];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } Output_data_rate_and_mode_selection_ODR[7:4];
    } Control1 @ 0x20;
    reg {
        name="Control2";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SPI_serial_interface_mode_selection_SIM[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Disable_I2C_communication_protocol_I2C_DISABLE[1:1];
            field {
                sw = rw;
                reset=1'b1;
            } Register_address_automatically_incremented_during_multiple_byte_access_with_a_serial_interface_FF_ADD_INC[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Block_data_update_BDU[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Disconnect_CS_pull_up_CS_PU_DISC[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } Acts_as_reset_for_all_control_register_SOFT_RESET[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enables_retrieving_the_correct_trimming_parameters_from_nonvolatile_memory_into_registers_BOOT[7:7];
    } Control2 @ 0x21;
    reg {
        name="Control3";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Single_data_conversion_on_demand_mode_enable_SLP_MODE_1[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Single_data_conversion_on_demand_mode_selection_SLP_MODE_SEL[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Interrupt_active_high_low_HL_ACTIVE[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Latched_Interrupt_LIR[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Push_pull_open_drain_selection_on_interrupt_pad_PP_OD[5:5];
            field {
                sw = rw;
            } Self_test_enable_ST[7:6];
    } Control3 @ 0x22;
    reg {
        name="Control4";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x8;
            field {
                sw = rw;
            } Data_Ready_is_routed_to_INT1_pad_INT1_DRDY[0:0];
            field {
                sw = rw;
            } FIFO_threshold_interrupt_is_routed_to_INT1_pad_INT1_FTH[1:1];
            field {
                sw = rw;
            } FIFO_full_recognition_is_routed_to_INT1_pad_INT1_DIFF5[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Double_tap_recognition_is_routed_to_INT1_pad_INT1_TAP[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Free_fall_recognition_is_routed_to_INT1_pad_INT1_FF[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Wakeup_recognition_is_routed_to_INT1_pad_INT1_WU[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Single_tap_recognition_is_routed_to_INT1_pad_INT1_SINGLE_TAP[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } _6D_recognition_is_routed_to_INT1_pad_INT1_6D[7:7];
    } Control4 @ 0x23;
    reg {
        name="Control5";
        regwidth=0x8;
            field {
                sw = rw;
            } Data_ready_is_routed_to_INT2_pad_INT2_DRDY[0:0];
            field {
                sw = rw;
            } FIFO_threshold_interrupt_is_routed_to_INT2_pad_INT2_FTH[1:1];
            field {
                sw = rw;
            } FIFO_full_recognition_is_routed_to_INT2_pad_INT2_DIFF5[2:2];
            field {
                sw = rw;
            } FIFO_overrun_interrupt_is_routed_to_INT2_pad_INT2_OVR[3:3];
            field {
                sw = rw;
            } Temperature_data_ready_is_routed_to_INT2_INT2_DRDY_T[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Boot_state_routed_to_INT2_pad_INT2_BOOT[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Sleep_change_status_routed_to_INT2_pad_INT2_SLEEP_CHG[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enable_routing_of_SLEEP_STATE_on_INT2_pad_INT2_SLEEP_STATE[7:7];
    } Control5 @ 0x24;
    reg {
        name="Control6";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Low_noise_configuration_LOW_NOISE[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Filtered_data_type_selection_FDS[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } Full_scale_selection_FS[5:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Bandwidth_selection_BW_FILT1[7:6];
    } Control6 @ 0x25;
    reg {
        name="TemperatureOut";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Temperature_output_register_in_8_bit_resolution_OUT_T[7:0];
    } TemperatureOut @ 0x26;
    reg {
        name="Status";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = rw;
            } Data_ready_status_DRDY[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Free_fall_event_detection_status_FF_IA[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Source_of_change_in_position_portrait_landscape_face_up_face_down_6D_IA[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Single_tap_event_status_SINGLE_TAP[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Double_tap_event_status_DOUBLE_TAP[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Sleep_event_status_SLEEP_STATE[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Wakeup_event_detection_status_WU_IA[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } FIFO_threshold_status_flag_FIFO_THS[7:7];
    } Status @ 0x27;
    reg {
        name="DataOutXLow";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } X_axis_LSB_output_register_OUT_X_L[7:0];
    } DataOutXLow @ 0x28;
    reg {
        name="DataOutXHigh";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } X_axis_MSB_output_register_OUT_X_H[7:0];
    } DataOutXHigh @ 0x29;
    reg {
        name="DataOutYLow";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Y_axis_LSB_output_register_OUT_Y_L[7:0];
    } DataOutYLow @ 0x2a;
    reg {
        name="DataOutYHigh";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Y_axis_MSB_output_register_OUT_Y_H[7:0];
    } DataOutYHigh @ 0x2b;
    reg {
        name="DataOutZLow";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Z_axis_LSB_output_register_OUT_Z_L[7:0];
    } DataOutZLow @ 0x2c;
    reg {
        name="DataOutZHigh";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Z_axis_MSB_output_register_OUT_Z_H[7:0];
    } DataOutZHigh @ 0x2d;
    reg {
        name="FifoControl";
        regwidth=0x8;
            field {
                sw = rw;
            } FIFO_threshold_level_setting_FTH[4:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Change.";
                sw = rw;
            } FIFO_mode_selection_bits_FMode[7:5];
    } FifoControl @ 0x2e;
    reg {
        name="FifoSamples";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Number_of_unread_samples_stored_in_FIFO_DIFF[5:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } FIFO_overrun_status_FIFO_OVR[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } FIFO_threshold_status_flag_FIFO_FTH[7:7];
    } FifoSamples @ 0x2f;
    reg {
        name="TapThreshholdX";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Threshold_for_tap_recognition_on_X_direction_TAP_THSX[4:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Thresholds_for_4D_6D_function_6D_THS[6:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } _4D_detection_portrait_landscape_position_enable_4D_EN[7:7];
    } TapThreshholdX @ 0x30;
    reg {
        name="TapThreshholdY";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Threshold_for_tap_recognition_on_Y_direction_TAP_THSY[4:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Selection_of_priority_axis_for_tap_detection_TAP_PRIOR[7:5];
    } TapThreshholdY @ 0x31;
    reg {
        name="TapThreshholdZ";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Threshold_for_tap_recognition_on_Z_direction_TAP_THSZ[4:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enables_Z_direction_in_tap_recognition_TAP_Z_EN[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enables_Y_direction_in_tap_recognition_TAP_Y_EN[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enables_X_direction_in_tap_recognition_TAP_X_EN[7:7];
    } TapThreshholdZ @ 0x32;
    reg {
        name="InterruptDuration";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Maximum_duration_of_over_threshold_event_SHOCK[1:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Expected_quiet_time_after_a_tap_detection_QUIET[3:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Duration_of_maximum_time_gap_for_double_tap_recognition_LATENCY[7:4];
    } InterruptDuration @ 0x33;
    reg {
        name="WakeupThreshhold";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Wakeup_threshold__WK_THS[5:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Sleep_inactivity_enable_SLEEP_ON[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enable_single_double_tap_event_SINGLE_DOUBLE_TAP[7:7];
    } WakeupThreshhold @ 0x34;
    reg {
        name="WakeupAndSleepDuration";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Duration_to_go_in_sleep_mode_SLEEP_DUR[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enable_stationary_detection___motion_detection_STATIONARY[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Wakeup_duration_WAKE_DUR[6:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Free_fall_duration_FF_DUR5[7:7];
    } WakeupAndSleepDuration @ 0x35;
    reg {
        name="FreeFall";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Free_fall_threshold_FF_THS[2:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Free_fall_duration_FF_DUR[7:3];
    } FreeFall @ 0x36;
    reg {
        name="StatusEventDetection";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = rw;
            } Data_ready_status_DRDY[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Free_fall_event_detection_status_FF_IA[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Source_of_change_in_position_portrait_landscape_face_up_face_down_6D_IA[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Single_tap_event_status_SINGLE_TAP[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Double_tap_event_status_DOUBLE_TAP[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Sleep_event_status_SLEEP_STATE_IA[5:5];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = rw;
            } Temperature_status_DRDY_T[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = rw;
            } FIFO_overrun_status_flag_OVR[7:7];
    } StatusEventDetection @ 0x37;
    reg {
        name="WakeupSource";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Wakeup_event_detection_status_on_Z_axis_Z_WU[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Wakeup_event_detection_status_on_Y_axis_Y_WU[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Wakeup_event_detection_status_on_X_axis_X_WU[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Wakeup_event_detection_status_WU_IA[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Sleep_event_status_SLEEP_STATE_IA[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Free_fall_event_detection_status_FF_IA[5:5];
    } WakeupSource @ 0x38;
    reg {
        name="TapSource";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Tap_event_detection_status_on_Z_axis_Z_TAP[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Tap_event_detection_status_on_Y_axis_Y_TAP[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Tap_event_detection_status_on_X_axis_X_TAP[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Sign_of_acceleration_detected_by_tap_event_TAP_SIGN[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Double_tap_event_status_DOUBLE_TAP[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Single_tap_event_status_SINGLE_TAP[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Tap_event_status_TAP_IA[6:6];
    } TapSource @ 0x39;
    reg {
        name="SourceOf6D";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } XL_over_threshold_XL[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } XH_over_threshold_XH[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } YL_over_threshold_YL[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } YH_over_threshold_YH[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ZL_over_threshold_ZL[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ZH_over_threshold_ZL[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Source_of_change_in_position_portrait_landscape_face_up_face_down_6D_IA[6:6];
    } SourceOf6D @ 0x3a;
    reg {
        name="InterruptReset";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Free_fall_event_detection_status_FF_IA[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Wakeup_event_detection_status_WU_IA[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Single_tap_event_status_SINGLE_TAP[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Double_tap_event_status_DOUBLE_TAP[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Source_of_change_in_position_portrait_landscape_face_up_face_down_6D_IA[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Sleep_change_status_SLEEP_CHANGE_IA[5:5];
    } InterruptReset @ 0x3b;
    reg {
        name="UserOffsetX";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Twos_complement_user_offset_value_on_X_axis_data_used_for_wakeup_function_X_OFS_USR[7:0];
    } UserOffsetX @ 0x3c;
    reg {
        name="UserOffsetY";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Twos_complement_user_offset_value_on_Y_axis_data_used_for_wakeup_function_Y_OFS_USR[7:0];
    } UserOffsetY @ 0x3d;
    reg {
        name="UserOffsetZ";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Twos_complement_user_offset_value_on_Z_axis_data_used_for_wakeup_function_Z_OFS_USR[7:0];
    } UserOffsetZ @ 0x3e;
    reg {
        name="Control7";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Low_pass_filtered_data_sent_to_6D_interrupt_function_LPASS_ON6D[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } High_pass_filter_reference_mode_enable_HP_REF_MODE[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Selects_the_weight_of_the_user_offset_words_USR_OFF_W[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enable_application_of_user_offset_value_on_XL_data_for_wakeup_function_only_USR_OFF_ON_WU[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enable_application_of_user_offset_value_on_XL_output_data_registers_USR_OFF_ON_OUT[4:4];
            field {
                sw = rw;
            } Enable_interrupts_INTERRUPTS_ENABLE[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Signal_routing_INT2_ON_INT1[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Switches_between_latched_and_pulsed_mode_for_data_ready_interrupt_DRDY_PULSED[7:7];
    } Control7 @ 0x3f;
} Registers_addrmap;


};