This repository has been archived on 2026-06-17. You can view files and clone it, but cannot push or open issues or pull requests.
FireWatchTower_2axis/firmware/lib/tmc/ic/TMC4671/TMC4671_HW_Abstraction.h

1454 lines
120 KiB
C
Executable File

/*******************************************************************************
* Copyright © 2019 TRINAMIC Motion Control GmbH & Co. KG
* (now owned by Analog Devices Inc.),
*
* Copyright © 2024 Analog Devices Inc. All Rights Reserved.
* This software is proprietary to Analog Devices, Inc. and its licensors.
*******************************************************************************/
#ifndef TMC4671_HW_ABSTRACTION_H_
#define TMC4671_HW_ABSTRACTION_H_
// Register set
#define TMC4671_CHIPINFO_DATA 0x00
#define TMC4671_CHIPINFO_ADDR 0x01
#define TMC4671_ADC_RAW_DATA 0x02
#define TMC4671_ADC_RAW_ADDR 0x03
#define TMC4671_DSADC_MCFG_B_MCFG_A 0x04
#define TMC4671_DSADC_MCLK_A 0x05
#define TMC4671_DSADC_MCLK_B 0x06
#define TMC4671_DSADC_MDEC_B_MDEC_A 0x07
#define TMC4671_ADC_I1_SCALE_OFFSET 0x08
#define TMC4671_ADC_I0_SCALE_OFFSET 0x09
#define TMC4671_ADC_I_SELECT 0x0A
#define TMC4671_ADC_I1_I0_EXT 0x0B
#define TMC4671_DS_ANALOG_INPUT_STAGE_CFG 0x0C
#define TMC4671_AENC_0_SCALE_OFFSET 0x0D
#define TMC4671_AENC_1_SCALE_OFFSET 0x0E
#define TMC4671_AENC_2_SCALE_OFFSET 0x0F
#define TMC4671_AENC_SELECT 0x11
#define TMC4671_ADC_IWY_IUX 0x12
#define TMC4671_ADC_IV 0x13
#define TMC4671_AENC_WY_UX 0x15
#define TMC4671_AENC_VN 0x16
#define TMC4671_PWM_POLARITIES 0x17
#define TMC4671_PWM_MAXCNT 0x18
#define TMC4671_PWM_BBM_H_BBM_L 0x19
#define TMC4671_PWM_SV_CHOP 0x1A
#define TMC4671_MOTOR_TYPE_N_POLE_PAIRS 0x1B
#define TMC4671_PHI_E_EXT 0x1C
#define TMC4671_PHI_M_EXT 0x1D
#define TMC4671_POSITION_EXT 0x1E
#define TMC4671_OPENLOOP_MODE 0x1F
#define TMC4671_OPENLOOP_ACCELERATION 0x20
#define TMC4671_OPENLOOP_VELOCITY_TARGET 0x21
#define TMC4671_OPENLOOP_VELOCITY_ACTUAL 0x22
#define TMC4671_OPENLOOP_PHI 0x23
#define TMC4671_UQ_UD_EXT 0x24
#define TMC4671_ABN_DECODER_MODE 0x25
#define TMC4671_ABN_DECODER_PPR 0x26
#define TMC4671_ABN_DECODER_COUNT 0x27
#define TMC4671_ABN_DECODER_COUNT_N 0x28
#define TMC4671_ABN_DECODER_PHI_E_PHI_M_OFFSET 0x29
#define TMC4671_ABN_DECODER_PHI_E_PHI_M 0x2A
#define TMC4671_ABN_2_DECODER_MODE 0x2C
#define TMC4671_ABN_2_DECODER_PPR 0x2D
#define TMC4671_ABN_2_DECODER_COUNT 0x2E
#define TMC4671_ABN_2_DECODER_COUNT_N 0x2F
#define TMC4671_ABN_2_DECODER_PHI_M_OFFSET 0x30
#define TMC4671_ABN_2_DECODER_PHI_M 0x31
#define TMC4671_HALL_MODE 0x33
#define TMC4671_HALL_POSITION_060_000 0x34
#define TMC4671_HALL_POSITION_180_120 0x35
#define TMC4671_HALL_POSITION_300_240 0x36
#define TMC4671_HALL_PHI_E_PHI_M_OFFSET 0x37
#define TMC4671_HALL_DPHI_MAX 0x38
#define TMC4671_HALL_PHI_E_INTERPOLATED_PHI_E 0x39
#define TMC4671_HALL_PHI_M 0x3A
#define TMC4671_AENC_DECODER_MODE 0x3B
#define TMC4671_AENC_DECODER_N_THRESHOLD 0x3C
#define TMC4671_AENC_DECODER_PHI_A_RAW 0x3D
#define TMC4671_AENC_DECODER_PHI_A_OFFSET 0x3E
#define TMC4671_AENC_DECODER_PHI_A 0x3F
#define TMC4671_AENC_DECODER_PPR 0x40
#define TMC4671_AENC_DECODER_COUNT 0x41
#define TMC4671_AENC_DECODER_COUNT_N 0x42
#define TMC4671_AENC_DECODER_PHI_E_PHI_M_OFFSET 0x45
#define TMC4671_AENC_DECODER_PHI_E_PHI_M 0x46
#define TMC4671_AENC_DECODER_POSITION 0x47
#define TMC4671_CONFIG_DATA 0x4D
#define TMC4671_CONFIG_ADDR 0x4E
#define TMC4671_VELOCITY_SELECTION 0x50
#define TMC4671_POSITION_SELECTION 0x51
#define TMC4671_PHI_E_SELECTION 0x52
#define TMC4671_PHI_E 0x53
#define TMC4671_PID_FLUX_P_FLUX_I 0x54
#define TMC4671_PID_TORQUE_P_TORQUE_I 0x56
#define TMC4671_PID_VELOCITY_P_VELOCITY_I 0x58
#define TMC4671_PID_POSITION_P_POSITION_I 0x5A
#define TMC4671_PID_TORQUE_FLUX_TARGET_DDT_LIMITS 0x5C
#define TMC4671_PIDOUT_UQ_UD_LIMITS 0x5D
#define TMC4671_PID_TORQUE_FLUX_LIMITS 0x5E
#define TMC4671_PID_VELOCITY_LIMIT 0x60
#define TMC4671_PID_POSITION_LIMIT_LOW 0x61
#define TMC4671_PID_POSITION_LIMIT_HIGH 0x62
#define TMC4671_MODE_RAMP_MODE_MOTION 0x63
#define TMC4671_PID_TORQUE_FLUX_TARGET 0x64
#define TMC4671_PID_TORQUE_FLUX_OFFSET 0x65
#define TMC4671_PID_VELOCITY_TARGET 0x66
#define TMC4671_PID_VELOCITY_OFFSET 0x67
#define TMC4671_PID_POSITION_TARGET 0x68
#define TMC4671_PID_TORQUE_FLUX_ACTUAL 0x69
#define TMC4671_PID_VELOCITY_ACTUAL 0x6A
#define TMC4671_PID_POSITION_ACTUAL 0x6B
#define TMC4671_PID_ERROR_DATA 0x6C
#define TMC4671_PID_ERROR_ADDR 0x6D
#define TMC4671_INTERIM_DATA 0x6E
#define TMC4671_INTERIM_ADDR 0x6F
#define TMC4671_WATCHDOG_CFG 0x74
#define TMC4671_ADC_VM_LIMITS 0x75
#define TMC4671_INPUTS_RAW 0x76
#define TMC4671_OUTPUTS_RAW 0x77
#define TMC4671_STEP_WIDTH 0x78
#define TMC4671_UART_BPS 0x79
#define TMC4671_UART_ADDRS 0x7A
#define TMC4671_GPIO_DSADCI_CONFIG 0x7B
#define TMC4671_STATUS_FLAGS 0x7C
#define TMC4671_STATUS_MASK 0x7D
// Register variants
#define CHIPINFO_ADDR_SI_TYPE 0
#define CHIPINFO_ADDR_SI_VERSION 1
#define CHIPINFO_ADDR_SI_DATA 2
#define CHIPINFO_ADDR_SI_TIME 3
#define CHIPINFO_ADDR_SI_VARIANT 4
#define CHIPINFO_ADDR_SI_BUILD 5
#define ADC_RAW_ADDR_ADC_I1_RAW_ADC_I0_RAW 0
#define ADC_RAW_ADDR_ADC_AGPI_A_RAW_ADC_VM_RAW 1
#define ADC_RAW_ADDR_ADC_AENC_UX_RAW_ADC_AGPI_B_RAW 2
#define ADC_RAW_ADDR_ADC_AENC_WY_RAW_ADC_AENC_VN_RAW 3
#define CONFIG_ADDR_BIQUAD_X_A_1 1
#define CONFIG_ADDR_BIQUAD_X_A_2 2
#define CONFIG_ADDR_BIQUAD_X_B_0 4
#define CONFIG_ADDR_BIQUAD_X_B_1 5
#define CONFIG_ADDR_BIQUAD_X_B_2 6
#define CONFIG_ADDR_BIQUAD_X_ENABLE 7
#define CONFIG_ADDR_BIQUAD_V_A_1 9
#define CONFIG_ADDR_BIQUAD_V_A_2 10
#define CONFIG_ADDR_BIQUAD_V_B_0 12
#define CONFIG_ADDR_BIQUAD_V_B_1 13
#define CONFIG_ADDR_BIQUAD_V_B_2 14
#define CONFIG_ADDR_BIQUAD_V_ENABLE 15
#define CONFIG_ADDR_BIQUAD_T_A_1 17
#define CONFIG_ADDR_BIQUAD_T_A_2 18
#define CONFIG_ADDR_BIQUAD_T_B_0 20
#define CONFIG_ADDR_BIQUAD_T_B_1 21
#define CONFIG_ADDR_BIQUAD_T_B_2 22
#define CONFIG_ADDR_BIQUAD_T_ENABLE 23
#define CONFIG_ADDR_BIQUAD_F_A_1 25
#define CONFIG_ADDR_BIQUAD_F_A_2 26
#define CONFIG_ADDR_BIQUAD_F_B_0 28
#define CONFIG_ADDR_BIQUAD_F_B_1 29
#define CONFIG_ADDR_BIQUAD_F_B_2 30
#define CONFIG_ADDR_BIQUAD_F_ENABLE 31
#define CONFIG_ADDR_PRBS_AMPLITUDE 32
#define CONFIG_ADDR_PRBS_DOWN_SAMPLING_RATIO 33
#define CONFIG_ADDR_FEED_FORWARD_VELOCITY_GAIN 40
#define CONFIG_ADDR_FEED_FORWARD_VELOCITY_FILTER_CONSTANT 41
#define CONFIG_ADDR_FEED_FORWARD_TORQUE_GAIN 42
#define CONFIG_ADDR_FEED_FORWARD_TORQUE_FILTER_CONSTANT 43
#define CONFIG_ADDR_VELOCITY_METER_PPTM_MIN_POS_DEV 50
#define CONFIG_ADDR_REF_SWITCH_CONFIG 51
#define CONFIG_ADDR_ENCODER_INIT_HALL_ENABLE 52
#define CONFIG_ADDR_SINGLE_PIN_IF_STATUS_CFG 60
#define CONFIG_ADDR_SINGLE_PIN_IF_SCALE_OFFSET 61
#define PID_ERROR_ADDR_PID_TORQUE_ERROR 0
#define PID_ERROR_ADDR_PID_FLUX_ERROR 1
#define PID_ERROR_ADDR_PID_VELOCITY_ERROR 2
#define PID_ERROR_ADDR_PID_POSITION_ERROR 3
#define PID_ERROR_ADDR_PID_TORQUE_ERROR_SUM 4
#define PID_ERROR_ADDR_PID_FLUX_ERROR_SUM 5
#define PID_ERROR_ADDR_PID_VELOCITY_ERROR_SUM 6
#define PID_ERROR_ADDR_PID_POSITION_ERROR_SUM 7
#define INTERIM_ADDR_PIDIN_TARGET_TORQUE 0
#define INTERIM_ADDR_PIDIN_TARGET_FLUX 1
#define INTERIM_ADDR_PIDIN_TARGET_VELOCITY 2
#define INTERIM_ADDR_PIDIN_TARGET_POSITION 3
#define INTERIM_ADDR_PIDOUT_TARGET_TORQUE 4
#define INTERIM_ADDR_PIDOUT_TARGET_FLUX 5
#define INTERIM_ADDR_PIDOUT_TARGET_VELOCITY 6
#define INTERIM_ADDR_PIDOUT_TARGET_POSITION 7
#define INTERIM_ADDR_FOC_IWY_IUX 8
#define INTERIM_ADDR_FOC_IV 9
#define INTERIM_ADDR_FOC_IB_IA 10
#define INTERIM_ADDR_FOC_IQ_ID 11
#define INTERIM_ADDR_FOC_UQ_UD 12
#define INTERIM_ADDR_FOC_UQ_UD_LIMITED 13
#define INTERIM_ADDR_FOC_UB_UA 14
#define INTERIM_ADDR_FOC_UWY_UUX 15
#define INTERIM_ADDR_FOC_UV 16
#define INTERIM_ADDR_PWM_WY_UX 17
#define INTERIM_ADDR_PWM_UV 18
#define INTERIM_ADDR_ADC_I1_I0 19
#define INTERIM_ADDR_PID_TORQUE_TARGET_FLUX_TARGET_TORQUE_ACTUAL_FLUX_ACTUAL_DIV256 20
#define INTERIM_ADDR_PID_TORQUE_TARGET_TORQUE_ACTUAL 21
#define INTERIM_ADDR_PID_FLUX_TARGET_FLUX_ACTUAL 22
#define INTERIM_ADDR_PID_VELOCITY_TARGET_VELOCITY_ACTUAL_DIV256 23
#define INTERIM_ADDR_PID_VELOCITY_TARGET_VELOCITY_ACTUAL 24
#define INTERIM_ADDR_PID_POSITION_TARGET_POSITION_ACTUAL_DIV256 25
#define INTERIM_ADDR_PID_POSITION_TARGET_POSITION_ACTUAL 26
#define INTERIM_ADDR_FF_VELOCITY 27
#define INTERIM_ADDR_FF_TORQUE 28
#define INTERIM_ADDR_ACTUAL_VELOCITY_PPTM 29
#define INTERIM_ADDR_REF_SWITCH_STATUS 30
#define INTERIM_ADDR_HOME_POSITION 31
#define INTERIM_ADDR_LEFT_POSITION 32
#define INTERIM_ADDR_RIGHT_POSITION 33
#define INTERIM_ADDR_ENC_INIT_HALL_STATUS 34
#define INTERIM_ADDR_ENC_INIT_HALL_PHI_E_ABN_OFFSET 35
#define INTERIM_ADDR_ENC_INIT_HALL_PHI_E_AENC_OFFSET 36
#define INTERIM_ADDR_ENC_INIT_HALL_PHI_A_AENC_OFFSET 37
#define INTERIM_ADDR_enc_init_mini_move_u_d_status 40
#define INTERIM_ADDR_enc_init_mini_move_phi_e_phi_e_offset 41
#define INTERIM_ADDR_SINGLE_PIN_IF_PWM_DUTY_CYCLE_TORQUE_TARGET 42
#define INTERIM_ADDR_SINGLE_PIN_IF_VELOCITY_TARGET 43
#define INTERIM_ADDR_SINGLE_PIN_IF_POSITION_TARGET 44
#define INTERIM_ADDR_DEBUG_VALUE_1_0 192
#define INTERIM_ADDR_DEBUG_VALUE_3_2 193
#define INTERIM_ADDR_DEBUG_VALUE_5_4 194
#define INTERIM_ADDR_DEBUG_VALUE_7_6 195
#define INTERIM_ADDR_DEBUG_VALUE_9_8 196
#define INTERIM_ADDR_DEBUG_VALUE_11_10 197
#define INTERIM_ADDR_DEBUG_VALUE_13_12 198
#define INTERIM_ADDR_DEBUG_VALUE_15_14 199
#define INTERIM_ADDR_DEBUG_VALUE_16 200
#define INTERIM_ADDR_DEBUG_VALUE_17 201
#define INTERIM_ADDR_DEBUG_VALUE_18 202
#define INTERIM_ADDR_DEBUG_VALUE_19 203
#define INTERIM_ADDR_CONFIG_REG_0 208
#define INTERIM_ADDR_CONFIG_REG_1 209
#define INTERIM_ADDR_CTRL_PARAM_10 210
#define INTERIM_ADDR_CTRL_PARAM_32 211
#define INTERIM_ADDR_STATUS_REG_0 212
#define INTERIM_ADDR_STATUS_REG_1 213
#define INTERIM_ADDR_STATUS_PARAM_10 214
#define INTERIM_ADDR_STATUS_PARAM_32 215
// Motor types
#define TMC4671_NO_MOTOR 0
#define TMC4671_SINGLE_PHASE_DC 1
#define TMC4671_TWO_PHASE_STEPPER 2
#define TMC4671_THREE_PHASE_BLDC 3
// Motion modes
#define TMC4671_MOTION_MODE_STOPPED 0
#define TMC4671_MOTION_MODE_TORQUE 1
#define TMC4671_MOTION_MODE_VELOCITY 2
#define TMC4671_MOTION_MODE_POSITION 3
#define TMC4671_MOTION_MODE_PRBS_FLUX 4
#define TMC4671_MOTION_MODE_PRBS_TORQUE 5
#define TMC4671_MOTION_MODE_PRBS_VELOCITY 6
#define TMC4671_MOTION_MODE_PRBS_POSITION 7
#define TMC4671_MOTION_MODE_UQ_UD_EXT 8
// PHI_E selection
#define TMC4671_PHI_E_EXTERNAL 1
#define TMC4671_PHI_E_OPEN_LOOP 2
#define TMC4671_PHI_E_ABN 3
#define TMC4671_PHI_E_HALL 5
#define TMC4671_PHI_E_AENC 6
#define TMC4671_PHI_A_AENC 7
// Velocity selection
#define TMC4671_VELOCITY_PHI_E_SELECTION 0
#define TMC4671_VELOCITY_PHI_E_EXT 1
#define TMC4671_VELOCITY_PHI_E_OPENLOOP 2
#define TMC4671_VELOCITY_PHI_E_ABN 3
#define TMC4671_VELOCITY_PHI_E_HAL 5
#define TMC4671_VELOCITY_PHI_E_AENC 6
#define TMC4671_VELOCITY_PHI_A_AENC 7
#define TMC4671_VELOCITY_PHI_M_ABN 9
#define TMC4671_VELOCITY_PHI_M_ABN_2 10
#define TMC4671_VELOCITY_PHI_M_AENC 11
#define TMC4671_VELOCITY_PHI_M_HAL 12
// Position selection
#define TMC4671_POSITION_PHI_E_SELECTION 0
#define TMC4671_POSITION_PHI_E_EXT 1
#define TMC4671_POSITION_PHI_E_OPENLOOP 2
#define TMC4671_POSITION_PHI_E_ABN 3
#define TMC4671_POSITION_PHI_E_HAL 5
#define TMC4671_POSITION_PHI_E_AENC 6
#define TMC4671_POSITION_PHI_A_AENC 7
#define TMC4671_POSITION_PHI_M_ABN 9
#define TMC4671_POSITION_PHI_M_ABN_2 10
#define TMC4671_POSITION_PHI_M_AENC 11
#define TMC4671_POSITION_PHI_M_HAL 12
// Other constants
#define TMC4671_MOTORS 1
// Register fields
#define TMC4671_SI_TYPE_MASK 0xFFFFFFFF
#define TMC4671_SI_TYPE_SHIFT 0
#define TMC4671_SI_TYPE_FIELD ((RegisterField) {TMC4671_SI_TYPE_MASK, TMC4671_SI_TYPE_SHIFT, TMC4671_CHIPINFO_DATA, false})
#define TMC4671_SI_VERSION_MASK 0xFFFFFFFF
#define TMC4671_SI_VERSION_SHIFT 0
#define TMC4671_SI_VERSION_FIELD ((RegisterField) {TMC4671_SI_VERSION_MASK, TMC4671_SI_VERSION_SHIFT, TMC4671_CHIPINFO_DATA, false})
#define TMC4671_SI_DATE_MASK 0xFFFFFFFF
#define TMC4671_SI_DATE_SHIFT 0
#define TMC4671_SI_DATE_FIELD ((RegisterField) {TMC4671_SI_DATE_MASK, TMC4671_SI_DATE_SHIFT, TMC4671_CHIPINFO_DATA, false})
#define TMC4671_SI_TIME_MASK 0xFFFFFFFF
#define TMC4671_SI_TIME_SHIFT 0
#define TMC4671_SI_TIME_FIELD ((RegisterField) {TMC4671_SI_TIME_MASK, TMC4671_SI_TIME_SHIFT, TMC4671_CHIPINFO_DATA, false})
#define TMC4671_SI_VARIANT_MASK 0xFFFFFFFF
#define TMC4671_SI_VARIANT_SHIFT 0
#define TMC4671_SI_VARIANT_FIELD ((RegisterField) {TMC4671_SI_VARIANT_MASK, TMC4671_SI_VARIANT_SHIFT, TMC4671_CHIPINFO_DATA, false})
#define TMC4671_SI_BUILD_MASK 0xFFFFFFFF
#define TMC4671_SI_BUILD_SHIFT 0
#define TMC4671_SI_BUILD_FIELD ((RegisterField) {TMC4671_SI_BUILD_MASK, TMC4671_SI_BUILD_SHIFT, TMC4671_CHIPINFO_DATA, false})
#define TMC4671_CHIP_INFO_ADDRESS_MASK 0x000000FF
#define TMC4671_CHIP_INFO_ADDRESS_SHIFT 0
#define TMC4671_CHIP_INFO_ADDRESS_FIELD ((RegisterField) {TMC4671_CHIP_INFO_ADDRESS_MASK, TMC4671_CHIP_INFO_ADDRESS_SHIFT, TMC4671_CHIPINFO_ADDR, false})
#define TMC4671_ADC_I0_RAW_MASK 0x0000FFFF
#define TMC4671_ADC_I0_RAW_SHIFT 0
#define TMC4671_ADC_I0_RAW_FIELD ((RegisterField) {TMC4671_ADC_I0_RAW_MASK, TMC4671_ADC_I0_RAW_SHIFT, TMC4671_ADC_RAW_DATA, false})
#define TMC4671_ADC_I1_RAW_MASK 0xFFFF0000
#define TMC4671_ADC_I1_RAW_SHIFT 16
#define TMC4671_ADC_I1_RAW_FIELD ((RegisterField) {TMC4671_ADC_I1_RAW_MASK, TMC4671_ADC_I1_RAW_SHIFT, TMC4671_ADC_RAW_DATA, false})
#define TMC4671_ADC_VM_RAW_MASK 0x0000FFFF
#define TMC4671_ADC_VM_RAW_SHIFT 0
#define TMC4671_ADC_VM_RAW_FIELD ((RegisterField) {TMC4671_ADC_VM_RAW_MASK, TMC4671_ADC_VM_RAW_SHIFT, TMC4671_ADC_RAW_DATA, false})
#define TMC4671_ADC_AGPI_A_RAW_MASK 0xFFFF0000
#define TMC4671_ADC_AGPI_A_RAW_SHIFT 16
#define TMC4671_ADC_AGPI_A_RAW_FIELD ((RegisterField) {TMC4671_ADC_AGPI_A_RAW_MASK, TMC4671_ADC_AGPI_A_RAW_SHIFT, TMC4671_ADC_RAW_DATA, false})
#define TMC4671_ADC_AGPI_B_RAW_MASK 0x0000FFFF
#define TMC4671_ADC_AGPI_B_RAW_SHIFT 0
#define TMC4671_ADC_AGPI_B_RAW_FIELD ((RegisterField) {TMC4671_ADC_AGPI_B_RAW_MASK, TMC4671_ADC_AGPI_B_RAW_SHIFT, TMC4671_ADC_RAW_DATA, false})
#define TMC4671_ADC_AENC_UX_RAW_MASK 0xFFFF0000
#define TMC4671_ADC_AENC_UX_RAW_SHIFT 16
#define TMC4671_ADC_AENC_UX_RAW_FIELD ((RegisterField) {TMC4671_ADC_AENC_UX_RAW_MASK, TMC4671_ADC_AENC_UX_RAW_SHIFT, TMC4671_ADC_RAW_DATA, false})
#define TMC4671_ADC_AENC_VN_RAW_MASK 0x0000FFFF
#define TMC4671_ADC_AENC_VN_RAW_SHIFT 0
#define TMC4671_ADC_AENC_VN_RAW_FIELD ((RegisterField) {TMC4671_ADC_AENC_VN_RAW_MASK, TMC4671_ADC_AENC_VN_RAW_SHIFT, TMC4671_ADC_RAW_DATA, false})
#define TMC4671_ADC_AENC_WY_RAW_MASK 0xFFFF0000
#define TMC4671_ADC_AENC_WY_RAW_SHIFT 16
#define TMC4671_ADC_AENC_WY_RAW_FIELD ((RegisterField) {TMC4671_ADC_AENC_WY_RAW_MASK, TMC4671_ADC_AENC_WY_RAW_SHIFT, TMC4671_ADC_RAW_DATA, false})
#define TMC4671_ADC_RAW_ADDR_MASK 0x000000FF
#define TMC4671_ADC_RAW_ADDR_SHIFT 0
#define TMC4671_ADC_RAW_ADDR_FIELD ((RegisterField) {TMC4671_ADC_RAW_ADDR_MASK, TMC4671_ADC_RAW_ADDR_SHIFT, TMC4671_ADC_RAW_ADDR, false})
#define TMC4671_CFG_DSMODULATOR_A_MASK 0x00000003
#define TMC4671_CFG_DSMODULATOR_A_SHIFT 0
#define TMC4671_CFG_DSMODULATOR_A_FIELD ((RegisterField) {TMC4671_CFG_DSMODULATOR_A_MASK, TMC4671_CFG_DSMODULATOR_A_SHIFT, TMC4671_dsADC_MCFG_B_MCFG_A, false})
#define TMC4671_MCLK_POLARITY_A_MASK 0x00000004
#define TMC4671_MCLK_POLARITY_A_SHIFT 2
#define TMC4671_MCLK_POLARITY_A_FIELD ((RegisterField) {TMC4671_MCLK_POLARITY_A_MASK, TMC4671_MCLK_POLARITY_A_SHIFT, TMC4671_dsADC_MCFG_B_MCFG_A, false})
#define TMC4671_MDAT_POLARITY_A_MASK 0x00000008
#define TMC4671_MDAT_POLARITY_A_SHIFT 3
#define TMC4671_MDAT_POLARITY_A_FIELD ((RegisterField) {TMC4671_MDAT_POLARITY_A_MASK, TMC4671_MDAT_POLARITY_A_SHIFT, TMC4671_dsADC_MCFG_B_MCFG_A, false})
#define TMC4671_SEL_NCLK_MCLK_I_A_MASK 0x00000010
#define TMC4671_SEL_NCLK_MCLK_I_A_SHIFT 4
#define TMC4671_SEL_NCLK_MCLK_I_A_FIELD ((RegisterField) {TMC4671_SEL_NCLK_MCLK_I_A_MASK, TMC4671_SEL_NCLK_MCLK_I_A_SHIFT, TMC4671_dsADC_MCFG_B_MCFG_A, false})
#define TMC4671_BLANKING_A_MASK 0x0000FF00
#define TMC4671_BLANKING_A_SHIFT 8
#define TMC4671_BLANKING_A_FIELD ((RegisterField) {TMC4671_BLANKING_A_MASK, TMC4671_BLANKING_A_SHIFT, TMC4671_dsADC_MCFG_B_MCFG_A, false})
#define TMC4671_CFG_DSMODULATOR_B_MASK 0x00030000
#define TMC4671_CFG_DSMODULATOR_B_SHIFT 16
#define TMC4671_CFG_DSMODULATOR_B_FIELD ((RegisterField) {TMC4671_CFG_DSMODULATOR_B_MASK, TMC4671_CFG_DSMODULATOR_B_SHIFT, TMC4671_dsADC_MCFG_B_MCFG_A, false})
#define TMC4671_MCLK_POLARITY_B_MASK 0x00040000
#define TMC4671_MCLK_POLARITY_B_SHIFT 18
#define TMC4671_MCLK_POLARITY_B_FIELD ((RegisterField) {TMC4671_MCLK_POLARITY_B_MASK, TMC4671_MCLK_POLARITY_B_SHIFT, TMC4671_dsADC_MCFG_B_MCFG_A, false})
#define TMC4671_MDAT_POLARITY_B_MASK 0x00080000
#define TMC4671_MDAT_POLARITY_B_SHIFT 19
#define TMC4671_MDAT_POLARITY_B_FIELD ((RegisterField) {TMC4671_MDAT_POLARITY_B_MASK, TMC4671_MDAT_POLARITY_B_SHIFT, TMC4671_dsADC_MCFG_B_MCFG_A, false})
#define TMC4671_SEL_NCLK_MCLK_I_B_MASK 0x00100000
#define TMC4671_SEL_NCLK_MCLK_I_B_SHIFT 20
#define TMC4671_SEL_NCLK_MCLK_I_B_FIELD ((RegisterField) {TMC4671_SEL_NCLK_MCLK_I_B_MASK, TMC4671_SEL_NCLK_MCLK_I_B_SHIFT, TMC4671_dsADC_MCFG_B_MCFG_A, false})
#define TMC4671_BLANKING_B_MASK 0xFF000000
#define TMC4671_BLANKING_B_SHIFT 24
#define TMC4671_BLANKING_B_FIELD ((RegisterField) {TMC4671_BLANKING_B_MASK, TMC4671_BLANKING_B_SHIFT, TMC4671_dsADC_MCFG_B_MCFG_A, false})
#define TMC4671_DSADC_MCLK_A_MASK 0xFFFFFFFF
#define TMC4671_DSADC_MCLK_A_SHIFT 0
#define TMC4671_DSADC_MCLK_A_FIELD ((RegisterField) {TMC4671_DSADC_MCLK_A_MASK, TMC4671_DSADC_MCLK_A_SHIFT, TMC4671_dsADC_MCLK_A, false})
#define TMC4671_DSADC_MCLK_B_MASK 0xFFFFFFFF
#define TMC4671_DSADC_MCLK_B_SHIFT 0
#define TMC4671_DSADC_MCLK_B_FIELD ((RegisterField) {TMC4671_DSADC_MCLK_B_MASK, TMC4671_DSADC_MCLK_B_SHIFT, TMC4671_dsADC_MCLK_B, false})
#define TMC4671_DSADC_MDEC_A_MASK 0x0000FFFF
#define TMC4671_DSADC_MDEC_A_SHIFT 0
#define TMC4671_DSADC_MDEC_A_FIELD ((RegisterField) {TMC4671_DSADC_MDEC_A_MASK, TMC4671_DSADC_MDEC_A_SHIFT, TMC4671_dsADC_MDEC_B_MDEC_A, false})
#define TMC4671_DSADC_MDEC_B_MASK 0xFFFF0000
#define TMC4671_DSADC_MDEC_B_SHIFT 16
#define TMC4671_DSADC_MDEC_B_FIELD ((RegisterField) {TMC4671_DSADC_MDEC_B_MASK, TMC4671_DSADC_MDEC_B_SHIFT, TMC4671_dsADC_MDEC_B_MDEC_A, false})
#define TMC4671_ADC_I1_OFFSET_MASK 0x0000FFFF
#define TMC4671_ADC_I1_OFFSET_SHIFT 0
#define TMC4671_ADC_I1_OFFSET_FIELD ((RegisterField) {TMC4671_ADC_I1_OFFSET_MASK, TMC4671_ADC_I1_OFFSET_SHIFT, TMC4671_ADC_I1_SCALE_OFFSET, false})
#define TMC4671_ADC_I1_SCALE_MASK 0xFFFF0000
#define TMC4671_ADC_I1_SCALE_SHIFT 16
#define TMC4671_ADC_I1_SCALE_FIELD ((RegisterField) {TMC4671_ADC_I1_SCALE_MASK, TMC4671_ADC_I1_SCALE_SHIFT, TMC4671_ADC_I1_SCALE_OFFSET, true})
#define TMC4671_ADC_I0_OFFSET_MASK 0x0000FFFF
#define TMC4671_ADC_I0_OFFSET_SHIFT 0
#define TMC4671_ADC_I0_OFFSET_FIELD ((RegisterField) {TMC4671_ADC_I0_OFFSET_MASK, TMC4671_ADC_I0_OFFSET_SHIFT, TMC4671_ADC_I0_SCALE_OFFSET, false})
#define TMC4671_ADC_I0_SCALE_MASK 0xFFFF0000
#define TMC4671_ADC_I0_SCALE_SHIFT 16
#define TMC4671_ADC_I0_SCALE_FIELD ((RegisterField) {TMC4671_ADC_I0_SCALE_MASK, TMC4671_ADC_I0_SCALE_SHIFT, TMC4671_ADC_I0_SCALE_OFFSET, true})
#define TMC4671_ADC_I0_SELECT_MASK 0x000000FF
#define TMC4671_ADC_I0_SELECT_SHIFT 0
#define TMC4671_ADC_I0_SELECT_FIELD ((RegisterField) {TMC4671_ADC_I0_SELECT_MASK, TMC4671_ADC_I0_SELECT_SHIFT, TMC4671_ADC_I_SELECT, false})
#define TMC4671_ADC_I1_SELECT_MASK 0x0000FF00
#define TMC4671_ADC_I1_SELECT_SHIFT 8
#define TMC4671_ADC_I1_SELECT_FIELD ((RegisterField) {TMC4671_ADC_I1_SELECT_MASK, TMC4671_ADC_I1_SELECT_SHIFT, TMC4671_ADC_I_SELECT, false})
#define TMC4671_ADC_I_UX_SELECT_MASK 0x03000000
#define TMC4671_ADC_I_UX_SELECT_SHIFT 24
#define TMC4671_ADC_I_UX_SELECT_FIELD ((RegisterField) {TMC4671_ADC_I_UX_SELECT_MASK, TMC4671_ADC_I_UX_SELECT_SHIFT, TMC4671_ADC_I_SELECT, false})
#define TMC4671_ADC_I_V_SELECT_MASK 0x0C000000
#define TMC4671_ADC_I_V_SELECT_SHIFT 26
#define TMC4671_ADC_I_V_SELECT_FIELD ((RegisterField) {TMC4671_ADC_I_V_SELECT_MASK, TMC4671_ADC_I_V_SELECT_SHIFT, TMC4671_ADC_I_SELECT, false})
#define TMC4671_ADC_I_WY_SELECT_MASK 0x30000000
#define TMC4671_ADC_I_WY_SELECT_SHIFT 28
#define TMC4671_ADC_I_WY_SELECT_FIELD ((RegisterField) {TMC4671_ADC_I_WY_SELECT_MASK, TMC4671_ADC_I_WY_SELECT_SHIFT, TMC4671_ADC_I_SELECT, false})
#define TMC4671_ADC_I0_EXT_MASK 0x0000FFFF
#define TMC4671_ADC_I0_EXT_SHIFT 0
#define TMC4671_ADC_I0_EXT_FIELD ((RegisterField) {TMC4671_ADC_I0_EXT_MASK, TMC4671_ADC_I0_EXT_SHIFT, TMC4671_ADC_I1_I0_EXT, false})
#define TMC4671_ADC_I1_EXT_MASK 0xFFFF0000
#define TMC4671_ADC_I1_EXT_SHIFT 16
#define TMC4671_ADC_I1_EXT_FIELD ((RegisterField) {TMC4671_ADC_I1_EXT_MASK, TMC4671_ADC_I1_EXT_SHIFT, TMC4671_ADC_I1_I0_EXT, false})
#define TMC4671_ADC_I0_MASK 0x0000000F
#define TMC4671_ADC_I0_SHIFT 0
#define TMC4671_ADC_I0_FIELD ((RegisterField) {TMC4671_ADC_I0_MASK, TMC4671_ADC_I0_SHIFT, TMC4671_DS_ANALOG_INPUT_STAGE_CFG, false})
#define TMC4671_ADC_I1_MASK 0x000000F0
#define TMC4671_ADC_I1_SHIFT 4
#define TMC4671_ADC_I1_FIELD ((RegisterField) {TMC4671_ADC_I1_MASK, TMC4671_ADC_I1_SHIFT, TMC4671_DS_ANALOG_INPUT_STAGE_CFG, false})
#define TMC4671_ADC_VM_MASK 0x00000F00
#define TMC4671_ADC_VM_SHIFT 8
#define TMC4671_ADC_VM_FIELD ((RegisterField) {TMC4671_ADC_VM_MASK, TMC4671_ADC_VM_SHIFT, TMC4671_DS_ANALOG_INPUT_STAGE_CFG, false})
#define TMC4671_ADC_AGPI_A_MASK 0x0000F000
#define TMC4671_ADC_AGPI_A_SHIFT 12
#define TMC4671_ADC_AGPI_A_FIELD ((RegisterField) {TMC4671_ADC_AGPI_A_MASK, TMC4671_ADC_AGPI_A_SHIFT, TMC4671_DS_ANALOG_INPUT_STAGE_CFG, false})
#define TMC4671_ADC_AGPI_B_MASK 0x000F0000
#define TMC4671_ADC_AGPI_B_SHIFT 16
#define TMC4671_ADC_AGPI_B_FIELD ((RegisterField) {TMC4671_ADC_AGPI_B_MASK, TMC4671_ADC_AGPI_B_SHIFT, TMC4671_DS_ANALOG_INPUT_STAGE_CFG, false})
#define TMC4671_ADC_AENC_UX_MASK 0x00F00000
#define TMC4671_ADC_AENC_UX_SHIFT 20
#define TMC4671_ADC_AENC_UX_FIELD ((RegisterField) {TMC4671_ADC_AENC_UX_MASK, TMC4671_ADC_AENC_UX_SHIFT, TMC4671_DS_ANALOG_INPUT_STAGE_CFG, false})
#define TMC4671_ADC_AENC_VN_MASK 0x0F000000
#define TMC4671_ADC_AENC_VN_SHIFT 24
#define TMC4671_ADC_AENC_VN_FIELD ((RegisterField) {TMC4671_ADC_AENC_VN_MASK, TMC4671_ADC_AENC_VN_SHIFT, TMC4671_DS_ANALOG_INPUT_STAGE_CFG, false})
#define TMC4671_ADC_AENC_WY_MASK 0xF0000000
#define TMC4671_ADC_AENC_WY_SHIFT 28
#define TMC4671_ADC_AENC_WY_FIELD ((RegisterField) {TMC4671_ADC_AENC_WY_MASK, TMC4671_ADC_AENC_WY_SHIFT, TMC4671_DS_ANALOG_INPUT_STAGE_CFG, false})
#define TMC4671_AENC_0_OFFSET_MASK 0x0000FFFF
#define TMC4671_AENC_0_OFFSET_SHIFT 0
#define TMC4671_AENC_0_OFFSET_FIELD ((RegisterField) {TMC4671_AENC_0_OFFSET_MASK, TMC4671_AENC_0_OFFSET_SHIFT, TMC4671_AENC_0_SCALE_OFFSET, false})
#define TMC4671_AENC_0_SCALE_MASK 0xFFFF0000
#define TMC4671_AENC_0_SCALE_SHIFT 16
#define TMC4671_AENC_0_SCALE_FIELD ((RegisterField) {TMC4671_AENC_0_SCALE_MASK, TMC4671_AENC_0_SCALE_SHIFT, TMC4671_AENC_0_SCALE_OFFSET, true})
#define TMC4671_AENC_1_OFFSET_MASK 0x0000FFFF
#define TMC4671_AENC_1_OFFSET_SHIFT 0
#define TMC4671_AENC_1_OFFSET_FIELD ((RegisterField) {TMC4671_AENC_1_OFFSET_MASK, TMC4671_AENC_1_OFFSET_SHIFT, TMC4671_AENC_1_SCALE_OFFSET, false})
#define TMC4671_AENC_1_SCALE_MASK 0xFFFF0000
#define TMC4671_AENC_1_SCALE_SHIFT 16
#define TMC4671_AENC_1_SCALE_FIELD ((RegisterField) {TMC4671_AENC_1_SCALE_MASK, TMC4671_AENC_1_SCALE_SHIFT, TMC4671_AENC_1_SCALE_OFFSET, true})
#define TMC4671_AENC_2_OFFSET_MASK 0x0000FFFF
#define TMC4671_AENC_2_OFFSET_SHIFT 0
#define TMC4671_AENC_2_OFFSET_FIELD ((RegisterField) {TMC4671_AENC_2_OFFSET_MASK, TMC4671_AENC_2_OFFSET_SHIFT, TMC4671_AENC_2_SCALE_OFFSET, false})
#define TMC4671_AENC_2_SCALE_MASK 0xFFFF0000
#define TMC4671_AENC_2_SCALE_SHIFT 16
#define TMC4671_AENC_2_SCALE_FIELD ((RegisterField) {TMC4671_AENC_2_SCALE_MASK, TMC4671_AENC_2_SCALE_SHIFT, TMC4671_AENC_2_SCALE_OFFSET, true})
#define TMC4671_AENC_0_SELECT_MASK 0x000000FF
#define TMC4671_AENC_0_SELECT_SHIFT 0
#define TMC4671_AENC_0_SELECT_FIELD ((RegisterField) {TMC4671_AENC_0_SELECT_MASK, TMC4671_AENC_0_SELECT_SHIFT, TMC4671_AENC_SELECT, false})
#define TMC4671_AENC_1_SELECT_MASK 0x0000FF00
#define TMC4671_AENC_1_SELECT_SHIFT 8
#define TMC4671_AENC_1_SELECT_FIELD ((RegisterField) {TMC4671_AENC_1_SELECT_MASK, TMC4671_AENC_1_SELECT_SHIFT, TMC4671_AENC_SELECT, false})
#define TMC4671_AENC_2_SELECT_MASK 0x00FF0000
#define TMC4671_AENC_2_SELECT_SHIFT 16
#define TMC4671_AENC_2_SELECT_FIELD ((RegisterField) {TMC4671_AENC_2_SELECT_MASK, TMC4671_AENC_2_SELECT_SHIFT, TMC4671_AENC_SELECT, false})
#define TMC4671_ADC_IUX_MASK 0x0000FFFF
#define TMC4671_ADC_IUX_SHIFT 0
#define TMC4671_ADC_IUX_FIELD ((RegisterField) {TMC4671_ADC_IUX_MASK, TMC4671_ADC_IUX_SHIFT, TMC4671_ADC_IWY_IUX, true})
#define TMC4671_ADC_IWY_MASK 0xFFFF0000
#define TMC4671_ADC_IWY_SHIFT 16
#define TMC4671_ADC_IWY_FIELD ((RegisterField) {TMC4671_ADC_IWY_MASK, TMC4671_ADC_IWY_SHIFT, TMC4671_ADC_IWY_IUX, true})
#define TMC4671_ADC_IV_MASK 0x0000FFFF
#define TMC4671_ADC_IV_SHIFT 0
#define TMC4671_ADC_IV_FIELD ((RegisterField) {TMC4671_ADC_IV_MASK, TMC4671_ADC_IV_SHIFT, TMC4671_ADC_IV, true})
#define TMC4671_AENC_UX_MASK 0x0000FFFF
#define TMC4671_AENC_UX_SHIFT 0
#define TMC4671_AENC_UX_FIELD ((RegisterField) {TMC4671_AENC_UX_MASK, TMC4671_AENC_UX_SHIFT, TMC4671_AENC_WY_UX, true})
#define TMC4671_AENC_WY_MASK 0xFFFF0000
#define TMC4671_AENC_WY_SHIFT 16
#define TMC4671_AENC_WY_FIELD ((RegisterField) {TMC4671_AENC_WY_MASK, TMC4671_AENC_WY_SHIFT, TMC4671_AENC_WY_UX, true})
#define TMC4671_AENC_VN_MASK 0x0000FFFF
#define TMC4671_AENC_VN_SHIFT 0
#define TMC4671_AENC_VN_FIELD ((RegisterField) {TMC4671_AENC_VN_MASK, TMC4671_AENC_VN_SHIFT, TMC4671_AENC_VN, true})
#define TMC4671_PWM_POLARITIES_0_MASK 0x00000001
#define TMC4671_PWM_POLARITIES_0_SHIFT 0
#define TMC4671_PWM_POLARITIES_0_FIELD ((RegisterField) {TMC4671_PWM_POLARITIES_0_MASK, TMC4671_PWM_POLARITIES_0_SHIFT, TMC4671_PWM_POLARITIES, false})
#define TMC4671_PWM_POLARITIES_1_MASK 0x00000002
#define TMC4671_PWM_POLARITIES_1_SHIFT 1
#define TMC4671_PWM_POLARITIES_1_FIELD ((RegisterField) {TMC4671_PWM_POLARITIES_1_MASK, TMC4671_PWM_POLARITIES_1_SHIFT, TMC4671_PWM_POLARITIES, false})
#define TMC4671_PWM_MAXCNT_MASK 0x0000FFFF
#define TMC4671_PWM_MAXCNT_SHIFT 0
#define TMC4671_PWM_MAXCNT_FIELD ((RegisterField) {TMC4671_PWM_MAXCNT_MASK, TMC4671_PWM_MAXCNT_SHIFT, TMC4671_PWM_MAXCNT, false})
#define TMC4671_PWM_BBM_L_MASK 0x000000FF
#define TMC4671_PWM_BBM_L_SHIFT 0
#define TMC4671_PWM_BBM_L_FIELD ((RegisterField) {TMC4671_PWM_BBM_L_MASK, TMC4671_PWM_BBM_L_SHIFT, TMC4671_PWM_BBM_H_BBM_L, false})
#define TMC4671_PWM_BBM_H_MASK 0x0000FF00
#define TMC4671_PWM_BBM_H_SHIFT 8
#define TMC4671_PWM_BBM_H_FIELD ((RegisterField) {TMC4671_PWM_BBM_H_MASK, TMC4671_PWM_BBM_H_SHIFT, TMC4671_PWM_BBM_H_BBM_L, false})
#define TMC4671_PWM_CHOP_MASK 0x000000FF
#define TMC4671_PWM_CHOP_SHIFT 0
#define TMC4671_PWM_CHOP_FIELD ((RegisterField) {TMC4671_PWM_CHOP_MASK, TMC4671_PWM_CHOP_SHIFT, TMC4671_PWM_SV_CHOP, false})
#define TMC4671_PWM_SV_MASK 0x00000100
#define TMC4671_PWM_SV_SHIFT 8
#define TMC4671_PWM_SV_FIELD ((RegisterField) {TMC4671_PWM_SV_MASK, TMC4671_PWM_SV_SHIFT, TMC4671_PWM_SV_CHOP, false})
#define TMC4671_N_POLE_PAIRS_MASK 0x0000FFFF
#define TMC4671_N_POLE_PAIRS_SHIFT 0
#define TMC4671_N_POLE_PAIRS_FIELD ((RegisterField) {TMC4671_N_POLE_PAIRS_MASK, TMC4671_N_POLE_PAIRS_SHIFT, TMC4671_MOTOR_TYPE_N_POLE_PAIRS, false})
#define TMC4671_MOTOR_TYPE_MASK 0x00FF0000
#define TMC4671_MOTOR_TYPE_SHIFT 16
#define TMC4671_MOTOR_TYPE_FIELD ((RegisterField) {TMC4671_MOTOR_TYPE_MASK, TMC4671_MOTOR_TYPE_SHIFT, TMC4671_MOTOR_TYPE_N_POLE_PAIRS, false})
#define TMC4671_PHI_E_EXT_MASK 0x0000FFFF
#define TMC4671_PHI_E_EXT_SHIFT 0
#define TMC4671_PHI_E_EXT_FIELD ((RegisterField) {TMC4671_PHI_E_EXT_MASK, TMC4671_PHI_E_EXT_SHIFT, TMC4671_PHI_E_EXT, true})
#define TMC4671_OPENLOOP_PHI_DIRECTION_MASK 0x00001000
#define TMC4671_OPENLOOP_PHI_DIRECTION_SHIFT 12
#define TMC4671_OPENLOOP_PHI_DIRECTION_FIELD ((RegisterField) {TMC4671_OPENLOOP_PHI_DIRECTION_MASK, TMC4671_OPENLOOP_PHI_DIRECTION_SHIFT, TMC4671_OPENLOOP_MODE, false})
#define TMC4671_OPENLOOP_ACCELERATION_MASK 0x000FFFFF
#define TMC4671_OPENLOOP_ACCELERATION_SHIFT 0
#define TMC4671_OPENLOOP_ACCELERATION_FIELD ((RegisterField) {TMC4671_OPENLOOP_ACCELERATION_MASK, TMC4671_OPENLOOP_ACCELERATION_SHIFT, TMC4671_OPENLOOP_ACCELERATION, false})
#define TMC4671_OPENLOOP_VELOCITY_TARGET_MASK 0xFFFFFFFF
#define TMC4671_OPENLOOP_VELOCITY_TARGET_SHIFT 0
#define TMC4671_OPENLOOP_VELOCITY_TARGET_FIELD ((RegisterField) {TMC4671_OPENLOOP_VELOCITY_TARGET_MASK, TMC4671_OPENLOOP_VELOCITY_TARGET_SHIFT, TMC4671_OPENLOOP_VELOCITY_TARGET, true})
#define TMC4671_OPENLOOP_VELOCITY_ACTUAL_MASK 0xFFFFFFFF
#define TMC4671_OPENLOOP_VELOCITY_ACTUAL_SHIFT 0
#define TMC4671_OPENLOOP_VELOCITY_ACTUAL_FIELD ((RegisterField) {TMC4671_OPENLOOP_VELOCITY_ACTUAL_MASK, TMC4671_OPENLOOP_VELOCITY_ACTUAL_SHIFT, TMC4671_OPENLOOP_VELOCITY_ACTUAL, true})
#define TMC4671_OPENLOOP_PHI_MASK 0x0000FFFF
#define TMC4671_OPENLOOP_PHI_SHIFT 0
#define TMC4671_OPENLOOP_PHI_FIELD ((RegisterField) {TMC4671_OPENLOOP_PHI_MASK, TMC4671_OPENLOOP_PHI_SHIFT, TMC4671_OPENLOOP_PHI, true})
#define TMC4671_UD_EXT_MASK 0x0000FFFF
#define TMC4671_UD_EXT_SHIFT 0
#define TMC4671_UD_EXT_FIELD ((RegisterField) {TMC4671_UD_EXT_MASK, TMC4671_UD_EXT_SHIFT, TMC4671_UQ_UD_EXT, true})
#define TMC4671_UQ_EXT_MASK 0xFFFF0000
#define TMC4671_UQ_EXT_SHIFT 16
#define TMC4671_UQ_EXT_FIELD ((RegisterField) {TMC4671_UQ_EXT_MASK, TMC4671_UQ_EXT_SHIFT, TMC4671_UQ_UD_EXT, true})
#define TMC4671_ABN_APOL_MASK 0x00000001
#define TMC4671_ABN_APOL_SHIFT 0
#define TMC4671_ABN_APOL_FIELD ((RegisterField) {TMC4671_ABN_APOL_MASK, TMC4671_ABN_APOL_SHIFT, TMC4671_ABN_DECODER_MODE, false})
#define TMC4671_ABN_BPOL_MASK 0x00000002
#define TMC4671_ABN_BPOL_SHIFT 1
#define TMC4671_ABN_BPOL_FIELD ((RegisterField) {TMC4671_ABN_BPOL_MASK, TMC4671_ABN_BPOL_SHIFT, TMC4671_ABN_DECODER_MODE, false})
#define TMC4671_ABN_NPOL_MASK 0x00000004
#define TMC4671_ABN_NPOL_SHIFT 2
#define TMC4671_ABN_NPOL_FIELD ((RegisterField) {TMC4671_ABN_NPOL_MASK, TMC4671_ABN_NPOL_SHIFT, TMC4671_ABN_DECODER_MODE, false})
#define TMC4671_USE_ABN_AS_N_MASK 0x00000008
#define TMC4671_USE_ABN_AS_N_SHIFT 3
#define TMC4671_USE_ABN_AS_N_FIELD ((RegisterField) {TMC4671_USE_ABN_AS_N_MASK, TMC4671_USE_ABN_AS_N_SHIFT, TMC4671_ABN_DECODER_MODE, false})
#define TMC4671_ABN_CLN_MASK 0x00000100
#define TMC4671_ABN_CLN_SHIFT 8
#define TMC4671_ABN_CLN_FIELD ((RegisterField) {TMC4671_ABN_CLN_MASK, TMC4671_ABN_CLN_SHIFT, TMC4671_ABN_DECODER_MODE, false})
#define TMC4671_ABN_DIRECTION_MASK 0x00001000
#define TMC4671_ABN_DIRECTION_SHIFT 12
#define TMC4671_ABN_DIRECTION_FIELD ((RegisterField) {TMC4671_ABN_DIRECTION_MASK, TMC4671_ABN_DIRECTION_SHIFT, TMC4671_ABN_DECODER_MODE, false})
#define TMC4671_ABN_DECODER_PPR_MASK 0x00FFFFFF
#define TMC4671_ABN_DECODER_PPR_SHIFT 0
#define TMC4671_ABN_DECODER_PPR_FIELD ((RegisterField) {TMC4671_ABN_DECODER_PPR_MASK, TMC4671_ABN_DECODER_PPR_SHIFT, TMC4671_ABN_DECODER_PPR, false})
#define TMC4671_ABN_DECODER_COUNT_MASK 0x00FFFFFF
#define TMC4671_ABN_DECODER_COUNT_SHIFT 0
#define TMC4671_ABN_DECODER_COUNT_FIELD ((RegisterField) {TMC4671_ABN_DECODER_COUNT_MASK, TMC4671_ABN_DECODER_COUNT_SHIFT, TMC4671_ABN_DECODER_COUNT, false})
#define TMC4671_ABN_DECODER_COUNT_N_MASK 0x00FFFFFF
#define TMC4671_ABN_DECODER_COUNT_N_SHIFT 0
#define TMC4671_ABN_DECODER_COUNT_N_FIELD ((RegisterField) {TMC4671_ABN_DECODER_COUNT_N_MASK, TMC4671_ABN_DECODER_COUNT_N_SHIFT, TMC4671_ABN_DECODER_COUNT_N, false})
#define TMC4671_ABN_DECODER_PHI_M_OFFSET_MASK 0x0000FFFF
#define TMC4671_ABN_DECODER_PHI_M_OFFSET_SHIFT 0
#define TMC4671_ABN_DECODER_PHI_M_OFFSET_FIELD ((RegisterField) {TMC4671_ABN_DECODER_PHI_M_OFFSET_MASK, TMC4671_ABN_DECODER_PHI_M_OFFSET_SHIFT, TMC4671_ABN_DECODER_PHI_E_PHI_M_OFFSET, true})
#define TMC4671_ABN_DECODER_PHI_E_OFFSET_MASK 0xFFFF0000
#define TMC4671_ABN_DECODER_PHI_E_OFFSET_SHIFT 16
#define TMC4671_ABN_DECODER_PHI_E_OFFSET_FIELD ((RegisterField) {TMC4671_ABN_DECODER_PHI_E_OFFSET_MASK, TMC4671_ABN_DECODER_PHI_E_OFFSET_SHIFT, TMC4671_ABN_DECODER_PHI_E_PHI_M_OFFSET, true})
#define TMC4671_ABN_DECODER_PHI_M_MASK 0x0000FFFF
#define TMC4671_ABN_DECODER_PHI_M_SHIFT 0
#define TMC4671_ABN_DECODER_PHI_M_FIELD ((RegisterField) {TMC4671_ABN_DECODER_PHI_M_MASK, TMC4671_ABN_DECODER_PHI_M_SHIFT, TMC4671_ABN_DECODER_PHI_E_PHI_M, true})
#define TMC4671_ABN_DECODER_PHI_E_MASK 0xFFFF0000
#define TMC4671_ABN_DECODER_PHI_E_SHIFT 16
#define TMC4671_ABN_DECODER_PHI_E_FIELD ((RegisterField) {TMC4671_ABN_DECODER_PHI_E_MASK, TMC4671_ABN_DECODER_PHI_E_SHIFT, TMC4671_ABN_DECODER_PHI_E_PHI_M, true})
#define TMC4671_ABN_2_APOL_MASK 0x00000001
#define TMC4671_ABN_2_APOL_SHIFT 0
#define TMC4671_ABN_2_APOL_FIELD ((RegisterField) {TMC4671_ABN_2_APOL_MASK, TMC4671_ABN_2_APOL_SHIFT, TMC4671_ABN_2_DECODER_MODE, false})
#define TMC4671_ABN_2_BPOL_MASK 0x00000002
#define TMC4671_ABN_2_BPOL_SHIFT 1
#define TMC4671_ABN_2_BPOL_FIELD ((RegisterField) {TMC4671_ABN_2_BPOL_MASK, TMC4671_ABN_2_BPOL_SHIFT, TMC4671_ABN_2_DECODER_MODE, false})
#define TMC4671_ABN_2_NPOL_MASK 0x00000004
#define TMC4671_ABN_2_NPOL_SHIFT 2
#define TMC4671_ABN_2_NPOL_FIELD ((RegisterField) {TMC4671_ABN_2_NPOL_MASK, TMC4671_ABN_2_NPOL_SHIFT, TMC4671_ABN_2_DECODER_MODE, false})
#define TMC4671_USE_ABN_2_AS_N_MASK 0x00000008
#define TMC4671_USE_ABN_2_AS_N_SHIFT 3
#define TMC4671_USE_ABN_2_AS_N_FIELD ((RegisterField) {TMC4671_USE_ABN_2_AS_N_MASK, TMC4671_USE_ABN_2_AS_N_SHIFT, TMC4671_ABN_2_DECODER_MODE, false})
#define TMC4671_ABN_2_CLN_MASK 0x00000100
#define TMC4671_ABN_2_CLN_SHIFT 8
#define TMC4671_ABN_2_CLN_FIELD ((RegisterField) {TMC4671_ABN_2_CLN_MASK, TMC4671_ABN_2_CLN_SHIFT, TMC4671_ABN_2_DECODER_MODE, false})
#define TMC4671_ABN_2_DIRECTION_MASK 0x00001000
#define TMC4671_ABN_2_DIRECTION_SHIFT 12
#define TMC4671_ABN_2_DIRECTION_FIELD ((RegisterField) {TMC4671_ABN_2_DIRECTION_MASK, TMC4671_ABN_2_DIRECTION_SHIFT, TMC4671_ABN_2_DECODER_MODE, false})
#define TMC4671_ABN_2_DECODER_PPR_MASK 0x00FFFFFF
#define TMC4671_ABN_2_DECODER_PPR_SHIFT 0
#define TMC4671_ABN_2_DECODER_PPR_FIELD ((RegisterField) {TMC4671_ABN_2_DECODER_PPR_MASK, TMC4671_ABN_2_DECODER_PPR_SHIFT, TMC4671_ABN_2_DECODER_PPR, false})
#define TMC4671_ABN_2_DECODER_COUNT_MASK 0x00FFFFFF
#define TMC4671_ABN_2_DECODER_COUNT_SHIFT 0
#define TMC4671_ABN_2_DECODER_COUNT_FIELD ((RegisterField) {TMC4671_ABN_2_DECODER_COUNT_MASK, TMC4671_ABN_2_DECODER_COUNT_SHIFT, TMC4671_ABN_2_DECODER_COUNT, false})
#define TMC4671_ABN_2_DECODER_COUNT_N_MASK 0x00FFFFFF
#define TMC4671_ABN_2_DECODER_COUNT_N_SHIFT 0
#define TMC4671_ABN_2_DECODER_COUNT_N_FIELD ((RegisterField) {TMC4671_ABN_2_DECODER_COUNT_N_MASK, TMC4671_ABN_2_DECODER_COUNT_N_SHIFT, TMC4671_ABN_2_DECODER_COUNT_N, false})
#define TMC4671_ABN_2_DECODER_PHI_M_OFFSET_MASK 0x0000FFFF
#define TMC4671_ABN_2_DECODER_PHI_M_OFFSET_SHIFT 0
#define TMC4671_ABN_2_DECODER_PHI_M_OFFSET_FIELD ((RegisterField) {TMC4671_ABN_2_DECODER_PHI_M_OFFSET_MASK, TMC4671_ABN_2_DECODER_PHI_M_OFFSET_SHIFT, TMC4671_ABN_2_DECODER_PHI_M_OFFSET, true})
#define TMC4671_ABN_2_DECODER_PHI_M_MASK 0x0000FFFF
#define TMC4671_ABN_2_DECODER_PHI_M_SHIFT 0
#define TMC4671_ABN_2_DECODER_PHI_M_FIELD ((RegisterField) {TMC4671_ABN_2_DECODER_PHI_M_MASK, TMC4671_ABN_2_DECODER_PHI_M_SHIFT, TMC4671_ABN_2_DECODER_PHI_M, true})
#define TMC4671_HALL_POLARITY_MASK 0x00000001
#define TMC4671_HALL_POLARITY_SHIFT 0
#define TMC4671_HALL_POLARITY_FIELD ((RegisterField) {TMC4671_HALL_POLARITY_MASK, TMC4671_HALL_POLARITY_SHIFT, TMC4671_HALL_MODE, false})
#define TMC4671_HALL_SYNCHRONOUS_PWM_SAMPLING_MASK 0x00000010
#define TMC4671_HALL_SYNCHRONOUS_PWM_SAMPLING_SHIFT 4
#define TMC4671_HALL_SYNCHRONOUS_PWM_SAMPLING_FIELD ((RegisterField) {TMC4671_HALL_SYNCHRONOUS_PWM_SAMPLING_MASK, TMC4671_HALL_SYNCHRONOUS_PWM_SAMPLING_SHIFT, TMC4671_HALL_MODE, false})
#define TMC4671_HALL_INTERPOLATION_MASK 0x00000100
#define TMC4671_HALL_INTERPOLATION_SHIFT 8
#define TMC4671_HALL_INTERPOLATION_FIELD ((RegisterField) {TMC4671_HALL_INTERPOLATION_MASK, TMC4671_HALL_INTERPOLATION_SHIFT, TMC4671_HALL_MODE, false})
#define TMC4671_HALL_DIRECTION_MASK 0x00001000
#define TMC4671_HALL_DIRECTION_SHIFT 12
#define TMC4671_HALL_DIRECTION_FIELD ((RegisterField) {TMC4671_HALL_DIRECTION_MASK, TMC4671_HALL_DIRECTION_SHIFT, TMC4671_HALL_MODE, false})
#define TMC4671_HALL_BLANK_MASK 0x0FFF0000
#define TMC4671_HALL_BLANK_SHIFT 16
#define TMC4671_HALL_BLANK_FIELD ((RegisterField) {TMC4671_HALL_BLANK_MASK, TMC4671_HALL_BLANK_SHIFT, TMC4671_HALL_MODE, false})
#define TMC4671_HALL_POSITION_000_MASK 0x0000FFFF
#define TMC4671_HALL_POSITION_000_SHIFT 0
#define TMC4671_HALL_POSITION_000_FIELD ((RegisterField) {TMC4671_HALL_POSITION_000_MASK, TMC4671_HALL_POSITION_000_SHIFT, TMC4671_HALL_POSITION_060_000, true})
#define TMC4671_HALL_POSITION_060_MASK 0xFFFF0000
#define TMC4671_HALL_POSITION_060_SHIFT 16
#define TMC4671_HALL_POSITION_060_FIELD ((RegisterField) {TMC4671_HALL_POSITION_060_MASK, TMC4671_HALL_POSITION_060_SHIFT, TMC4671_HALL_POSITION_060_000, true})
#define TMC4671_HALL_POSITION_120_MASK 0x0000FFFF
#define TMC4671_HALL_POSITION_120_SHIFT 0
#define TMC4671_HALL_POSITION_120_FIELD ((RegisterField) {TMC4671_HALL_POSITION_120_MASK, TMC4671_HALL_POSITION_120_SHIFT, TMC4671_HALL_POSITION_180_120, true})
#define TMC4671_HALL_POSITION_180_MASK 0xFFFF0000
#define TMC4671_HALL_POSITION_180_SHIFT 16
#define TMC4671_HALL_POSITION_180_FIELD ((RegisterField) {TMC4671_HALL_POSITION_180_MASK, TMC4671_HALL_POSITION_180_SHIFT, TMC4671_HALL_POSITION_180_120, true})
#define TMC4671_HALL_POSITION_240_MASK 0x0000FFFF
#define TMC4671_HALL_POSITION_240_SHIFT 0
#define TMC4671_HALL_POSITION_240_FIELD ((RegisterField) {TMC4671_HALL_POSITION_240_MASK, TMC4671_HALL_POSITION_240_SHIFT, TMC4671_HALL_POSITION_300_240, true})
#define TMC4671_HALL_POSITION_300_MASK 0xFFFF0000
#define TMC4671_HALL_POSITION_300_SHIFT 16
#define TMC4671_HALL_POSITION_300_FIELD ((RegisterField) {TMC4671_HALL_POSITION_300_MASK, TMC4671_HALL_POSITION_300_SHIFT, TMC4671_HALL_POSITION_300_240, true})
#define TMC4671_HALL_PHI_M_OFFSET_MASK 0x0000FFFF
#define TMC4671_HALL_PHI_M_OFFSET_SHIFT 0
#define TMC4671_HALL_PHI_M_OFFSET_FIELD ((RegisterField) {TMC4671_HALL_PHI_M_OFFSET_MASK, TMC4671_HALL_PHI_M_OFFSET_SHIFT, TMC4671_HALL_PHI_E_PHI_M_OFFSET, true})
#define TMC4671_HALL_PHI_E_OFFSET_MASK 0xFFFF0000
#define TMC4671_HALL_PHI_E_OFFSET_SHIFT 16
#define TMC4671_HALL_PHI_E_OFFSET_FIELD ((RegisterField) {TMC4671_HALL_PHI_E_OFFSET_MASK, TMC4671_HALL_PHI_E_OFFSET_SHIFT, TMC4671_HALL_PHI_E_PHI_M_OFFSET, true})
#define TMC4671_HALL_DPHI_MAX_MASK 0x0000FFFF
#define TMC4671_HALL_DPHI_MAX_SHIFT 0
#define TMC4671_HALL_DPHI_MAX_FIELD ((RegisterField) {TMC4671_HALL_DPHI_MAX_MASK, TMC4671_HALL_DPHI_MAX_SHIFT, TMC4671_HALL_DPHI_MAX, false})
#define TMC4671_HALL_PHI_E_MASK 0x0000FFFF
#define TMC4671_HALL_PHI_E_SHIFT 0
#define TMC4671_HALL_PHI_E_FIELD ((RegisterField) {TMC4671_HALL_PHI_E_MASK, TMC4671_HALL_PHI_E_SHIFT, TMC4671_HALL_PHI_E_INTERPOLATED_PHI_E, true})
#define TMC4671_HALL_PHI_E_INTERPOLATED_MASK 0xFFFF0000
#define TMC4671_HALL_PHI_E_INTERPOLATED_SHIFT 16
#define TMC4671_HALL_PHI_E_INTERPOLATED_FIELD ((RegisterField) {TMC4671_HALL_PHI_E_INTERPOLATED_MASK, TMC4671_HALL_PHI_E_INTERPOLATED_SHIFT, TMC4671_HALL_PHI_E_INTERPOLATED_PHI_E, true})
#define TMC4671_HALL_PHI_M_MASK 0x0000FFFF
#define TMC4671_HALL_PHI_M_SHIFT 0
#define TMC4671_HALL_PHI_M_FIELD ((RegisterField) {TMC4671_HALL_PHI_M_MASK, TMC4671_HALL_PHI_M_SHIFT, TMC4671_HALL_PHI_M, true})
#define TMC4671_AENC_DECODER_MODE_0_MASK 0x00000001
#define TMC4671_AENC_DECODER_MODE_0_SHIFT 0
#define TMC4671_AENC_DECODER_MODE_0_FIELD ((RegisterField) {TMC4671_AENC_DECODER_MODE_0_MASK, TMC4671_AENC_DECODER_MODE_0_SHIFT, TMC4671_AENC_DECODER_MODE, false})
#define TMC4671_AENC_DECODER_MODE_12_MASK 0x00001000
#define TMC4671_AENC_DECODER_MODE_12_SHIFT 12
#define TMC4671_AENC_DECODER_MODE_12_FIELD ((RegisterField) {TMC4671_AENC_DECODER_MODE_12_MASK, TMC4671_AENC_DECODER_MODE_12_SHIFT, TMC4671_AENC_DECODER_MODE, false})
#define TMC4671_AENC_DECODER_N_THRESHOLD_MASK 0x0000FFFF
#define TMC4671_AENC_DECODER_N_THRESHOLD_SHIFT 0
#define TMC4671_AENC_DECODER_N_THRESHOLD_FIELD ((RegisterField) {TMC4671_AENC_DECODER_N_THRESHOLD_MASK, TMC4671_AENC_DECODER_N_THRESHOLD_SHIFT, TMC4671_AENC_DECODER_N_THRESHOLD, false})
#define TMC4671_AENC_DECODER_PHI_A_RAW_MASK 0x0000FFFF
#define TMC4671_AENC_DECODER_PHI_A_RAW_SHIFT 0
#define TMC4671_AENC_DECODER_PHI_A_RAW_FIELD ((RegisterField) {TMC4671_AENC_DECODER_PHI_A_RAW_MASK, TMC4671_AENC_DECODER_PHI_A_RAW_SHIFT, TMC4671_AENC_DECODER_PHI_A_RAW, true})
#define TMC4671_AENC_DECODER_PHI_A_OFFSET_MASK 0x0000FFFF
#define TMC4671_AENC_DECODER_PHI_A_OFFSET_SHIFT 0
#define TMC4671_AENC_DECODER_PHI_A_OFFSET_FIELD ((RegisterField) {TMC4671_AENC_DECODER_PHI_A_OFFSET_MASK, TMC4671_AENC_DECODER_PHI_A_OFFSET_SHIFT, TMC4671_AENC_DECODER_PHI_A_OFFSET, true})
#define TMC4671_AENC_DECODER_PHI_A_MASK 0x0000FFFF
#define TMC4671_AENC_DECODER_PHI_A_SHIFT 0
#define TMC4671_AENC_DECODER_PHI_A_FIELD ((RegisterField) {TMC4671_AENC_DECODER_PHI_A_MASK, TMC4671_AENC_DECODER_PHI_A_SHIFT, TMC4671_AENC_DECODER_PHI_A, true})
#define TMC4671_AENC_DECODER_PPR_MASK 0x0000FFFF
#define TMC4671_AENC_DECODER_PPR_SHIFT 0
#define TMC4671_AENC_DECODER_PPR_FIELD ((RegisterField) {TMC4671_AENC_DECODER_PPR_MASK, TMC4671_AENC_DECODER_PPR_SHIFT, TMC4671_AENC_DECODER_PPR, true})
#define TMC4671_AENC_DECODER_COUNT_MASK 0xFFFFFFFF
#define TMC4671_AENC_DECODER_COUNT_SHIFT 0
#define TMC4671_AENC_DECODER_COUNT_FIELD ((RegisterField) {TMC4671_AENC_DECODER_COUNT_MASK, TMC4671_AENC_DECODER_COUNT_SHIFT, TMC4671_AENC_DECODER_COUNT, true})
#define TMC4671_AENC_DECODER_COUNT_N_MASK 0xFFFFFFFF
#define TMC4671_AENC_DECODER_COUNT_N_SHIFT 0
#define TMC4671_AENC_DECODER_COUNT_N_FIELD ((RegisterField) {TMC4671_AENC_DECODER_COUNT_N_MASK, TMC4671_AENC_DECODER_COUNT_N_SHIFT, TMC4671_AENC_DECODER_COUNT_N, true})
#define TMC4671_AENC_DECODER_PHI_M_OFFSET_MASK 0x0000FFFF
#define TMC4671_AENC_DECODER_PHI_M_OFFSET_SHIFT 0
#define TMC4671_AENC_DECODER_PHI_M_OFFSET_FIELD ((RegisterField) {TMC4671_AENC_DECODER_PHI_M_OFFSET_MASK, TMC4671_AENC_DECODER_PHI_M_OFFSET_SHIFT, TMC4671_AENC_DECODER_PHI_E_PHI_M_OFFSET, true})
#define TMC4671_AENC_DECODER_PHI_E_OFFSET_MASK 0xFFFF0000
#define TMC4671_AENC_DECODER_PHI_E_OFFSET_SHIFT 16
#define TMC4671_AENC_DECODER_PHI_E_OFFSET_FIELD ((RegisterField) {TMC4671_AENC_DECODER_PHI_E_OFFSET_MASK, TMC4671_AENC_DECODER_PHI_E_OFFSET_SHIFT, TMC4671_AENC_DECODER_PHI_E_PHI_M_OFFSET, true})
#define TMC4671_AENC_DECODER_PHI_M_MASK 0x0000FFFF
#define TMC4671_AENC_DECODER_PHI_M_SHIFT 0
#define TMC4671_AENC_DECODER_PHI_M_FIELD ((RegisterField) {TMC4671_AENC_DECODER_PHI_M_MASK, TMC4671_AENC_DECODER_PHI_M_SHIFT, TMC4671_AENC_DECODER_PHI_E_PHI_M, true})
#define TMC4671_AENC_DECODER_PHI_E_MASK 0xFFFF0000
#define TMC4671_AENC_DECODER_PHI_E_SHIFT 16
#define TMC4671_AENC_DECODER_PHI_E_FIELD ((RegisterField) {TMC4671_AENC_DECODER_PHI_E_MASK, TMC4671_AENC_DECODER_PHI_E_SHIFT, TMC4671_AENC_DECODER_PHI_E_PHI_M, true})
#define TMC4671_BIQUAD_X_A_1_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_X_A_1_SHIFT 0
#define TMC4671_BIQUAD_X_A_1_FIELD ((RegisterField) {TMC4671_BIQUAD_X_A_1_MASK, TMC4671_BIQUAD_X_A_1_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_BIQUAD_X_A_2_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_X_A_2_SHIFT 0
#define TMC4671_BIQUAD_X_A_2_FIELD ((RegisterField) {TMC4671_BIQUAD_X_A_2_MASK, TMC4671_BIQUAD_X_A_2_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_BIQUAD_X_B_0_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_X_B_0_SHIFT 0
#define TMC4671_BIQUAD_X_B_0_FIELD ((RegisterField) {TMC4671_BIQUAD_X_B_0_MASK, TMC4671_BIQUAD_X_B_0_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_BIQUAD_X_B_1_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_X_B_1_SHIFT 0
#define TMC4671_BIQUAD_X_B_1_FIELD ((RegisterField) {TMC4671_BIQUAD_X_B_1_MASK, TMC4671_BIQUAD_X_B_1_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_BIQUAD_X_B_2_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_X_B_2_SHIFT 0
#define TMC4671_BIQUAD_X_B_2_FIELD ((RegisterField) {TMC4671_BIQUAD_X_B_2_MASK, TMC4671_BIQUAD_X_B_2_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_BIQUAD_X_ENABLE_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_X_ENABLE_SHIFT 0
#define TMC4671_BIQUAD_X_ENABLE_FIELD ((RegisterField) {TMC4671_BIQUAD_X_ENABLE_MASK, TMC4671_BIQUAD_X_ENABLE_SHIFT, TMC4671_CONFIG_DATA, false})
#define TMC4671_BIQUAD_V_A_1_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_V_A_1_SHIFT 0
#define TMC4671_BIQUAD_V_A_1_FIELD ((RegisterField) {TMC4671_BIQUAD_V_A_1_MASK, TMC4671_BIQUAD_V_A_1_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_BIQUAD_V_A_2_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_V_A_2_SHIFT 0
#define TMC4671_BIQUAD_V_A_2_FIELD ((RegisterField) {TMC4671_BIQUAD_V_A_2_MASK, TMC4671_BIQUAD_V_A_2_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_BIQUAD_V_B_0_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_V_B_0_SHIFT 0
#define TMC4671_BIQUAD_V_B_0_FIELD ((RegisterField) {TMC4671_BIQUAD_V_B_0_MASK, TMC4671_BIQUAD_V_B_0_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_BIQUAD_V_B_1_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_V_B_1_SHIFT 0
#define TMC4671_BIQUAD_V_B_1_FIELD ((RegisterField) {TMC4671_BIQUAD_V_B_1_MASK, TMC4671_BIQUAD_V_B_1_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_BIQUAD_V_B_2_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_V_B_2_SHIFT 0
#define TMC4671_BIQUAD_V_B_2_FIELD ((RegisterField) {TMC4671_BIQUAD_V_B_2_MASK, TMC4671_BIQUAD_V_B_2_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_BIQUAD_V_ENABLE_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_V_ENABLE_SHIFT 0
#define TMC4671_BIQUAD_V_ENABLE_FIELD ((RegisterField) {TMC4671_BIQUAD_V_ENABLE_MASK, TMC4671_BIQUAD_V_ENABLE_SHIFT, TMC4671_CONFIG_DATA, false})
#define TMC4671_BIQUAD_T_A_1_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_T_A_1_SHIFT 0
#define TMC4671_BIQUAD_T_A_1_FIELD ((RegisterField) {TMC4671_BIQUAD_T_A_1_MASK, TMC4671_BIQUAD_T_A_1_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_BIQUAD_T_A_2_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_T_A_2_SHIFT 0
#define TMC4671_BIQUAD_T_A_2_FIELD ((RegisterField) {TMC4671_BIQUAD_T_A_2_MASK, TMC4671_BIQUAD_T_A_2_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_BIQUAD_T_B_0_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_T_B_0_SHIFT 0
#define TMC4671_BIQUAD_T_B_0_FIELD ((RegisterField) {TMC4671_BIQUAD_T_B_0_MASK, TMC4671_BIQUAD_T_B_0_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_BIQUAD_T_B_1_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_T_B_1_SHIFT 0
#define TMC4671_BIQUAD_T_B_1_FIELD ((RegisterField) {TMC4671_BIQUAD_T_B_1_MASK, TMC4671_BIQUAD_T_B_1_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_BIQUAD_T_B_2_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_T_B_2_SHIFT 0
#define TMC4671_BIQUAD_T_B_2_FIELD ((RegisterField) {TMC4671_BIQUAD_T_B_2_MASK, TMC4671_BIQUAD_T_B_2_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_BIQUAD_T_ENABLE_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_T_ENABLE_SHIFT 0
#define TMC4671_BIQUAD_T_ENABLE_FIELD ((RegisterField) {TMC4671_BIQUAD_T_ENABLE_MASK, TMC4671_BIQUAD_T_ENABLE_SHIFT, TMC4671_CONFIG_DATA, false})
#define TMC4671_BIQUAD_F_A_1_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_F_A_1_SHIFT 0
#define TMC4671_BIQUAD_F_A_1_FIELD ((RegisterField) {TMC4671_BIQUAD_F_A_1_MASK, TMC4671_BIQUAD_F_A_1_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_BIQUAD_F_A_2_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_F_A_2_SHIFT 0
#define TMC4671_BIQUAD_F_A_2_FIELD ((RegisterField) {TMC4671_BIQUAD_F_A_2_MASK, TMC4671_BIQUAD_F_A_2_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_BIQUAD_F_B_0_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_F_B_0_SHIFT 0
#define TMC4671_BIQUAD_F_B_0_FIELD ((RegisterField) {TMC4671_BIQUAD_F_B_0_MASK, TMC4671_BIQUAD_F_B_0_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_BIQUAD_F_B_1_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_F_B_1_SHIFT 0
#define TMC4671_BIQUAD_F_B_1_FIELD ((RegisterField) {TMC4671_BIQUAD_F_B_1_MASK, TMC4671_BIQUAD_F_B_1_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_BIQUAD_F_B_2_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_F_B_2_SHIFT 0
#define TMC4671_BIQUAD_F_B_2_FIELD ((RegisterField) {TMC4671_BIQUAD_F_B_2_MASK, TMC4671_BIQUAD_F_B_2_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_BIQUAD_F_ENABLE_MASK 0xFFFFFFFF
#define TMC4671_BIQUAD_F_ENABLE_SHIFT 0
#define TMC4671_BIQUAD_F_ENABLE_FIELD ((RegisterField) {TMC4671_BIQUAD_F_ENABLE_MASK, TMC4671_BIQUAD_F_ENABLE_SHIFT, TMC4671_CONFIG_DATA, false})
#define TMC4671_PRBS_AMPLITUDE_MASK 0xFFFFFFFF
#define TMC4671_PRBS_AMPLITUDE_SHIFT 0
#define TMC4671_PRBS_AMPLITUDE_FIELD ((RegisterField) {TMC4671_PRBS_AMPLITUDE_MASK, TMC4671_PRBS_AMPLITUDE_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_PRBS_DOWN_SAMPLING_RATIO_MASK 0xFFFFFFFF
#define TMC4671_PRBS_DOWN_SAMPLING_RATIO_SHIFT 0
#define TMC4671_PRBS_DOWN_SAMPLING_RATIO_FIELD ((RegisterField) {TMC4671_PRBS_DOWN_SAMPLING_RATIO_MASK, TMC4671_PRBS_DOWN_SAMPLING_RATIO_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_REF_SWITCH_ENABLE_MASK 0x00000001
#define TMC4671_REF_SWITCH_ENABLE_SHIFT 0
#define TMC4671_REF_SWITCH_ENABLE_FIELD ((RegisterField) {TMC4671_REF_SWITCH_ENABLE_MASK, TMC4671_REF_SWITCH_ENABLE_SHIFT, TMC4671_CONFIG_DATA, false})
#define TMC4671_HOME_SWITCH_POLARITY_MASK 0x00000002
#define TMC4671_HOME_SWITCH_POLARITY_SHIFT 1
#define TMC4671_HOME_SWITCH_POLARITY_FIELD ((RegisterField) {TMC4671_HOME_SWITCH_POLARITY_MASK, TMC4671_HOME_SWITCH_POLARITY_SHIFT, TMC4671_CONFIG_DATA, false})
#define TMC4671_LEFT_SWITCH_POLARITY_MASK 0x00000004
#define TMC4671_LEFT_SWITCH_POLARITY_SHIFT 2
#define TMC4671_LEFT_SWITCH_POLARITY_FIELD ((RegisterField) {TMC4671_LEFT_SWITCH_POLARITY_MASK, TMC4671_LEFT_SWITCH_POLARITY_SHIFT, TMC4671_CONFIG_DATA, false})
#define TMC4671_RIGHT_SWITCH_POLARITY_MASK 0x00000008
#define TMC4671_RIGHT_SWITCH_POLARITY_SHIFT 3
#define TMC4671_RIGHT_SWITCH_POLARITY_FIELD ((RegisterField) {TMC4671_RIGHT_SWITCH_POLARITY_MASK, TMC4671_RIGHT_SWITCH_POLARITY_SHIFT, TMC4671_CONFIG_DATA, false})
#define TMC4671_ENCODER_INIT_HALL_ENABLE_MASK 0x00000001
#define TMC4671_ENCODER_INIT_HALL_ENABLE_SHIFT 0
#define TMC4671_ENCODER_INIT_HALL_ENABLE_FIELD ((RegisterField) {TMC4671_ENCODER_INIT_HALL_ENABLE_MASK, TMC4671_ENCODER_INIT_HALL_ENABLE_SHIFT, TMC4671_CONFIG_DATA, false})
#define TMC4671_SINGLE_PIN_IF_CFG_MASK 0x000000FF
#define TMC4671_SINGLE_PIN_IF_CFG_SHIFT 0
#define TMC4671_SINGLE_PIN_IF_CFG_FIELD ((RegisterField) {TMC4671_SINGLE_PIN_IF_CFG_MASK, TMC4671_SINGLE_PIN_IF_CFG_SHIFT, TMC4671_CONFIG_DATA, false})
#define TMC4671_SINGLE_PIN_IF_STATUS_MASK 0xFFFF0000
#define TMC4671_SINGLE_PIN_IF_STATUS_SHIFT 16
#define TMC4671_SINGLE_PIN_IF_STATUS_FIELD ((RegisterField) {TMC4671_SINGLE_PIN_IF_STATUS_MASK, TMC4671_SINGLE_PIN_IF_STATUS_SHIFT, TMC4671_CONFIG_DATA, false})
#define TMC4671_SINGLE_PIN_IF_OFFSET_MASK 0x0000FFFF
#define TMC4671_SINGLE_PIN_IF_OFFSET_SHIFT 0
#define TMC4671_SINGLE_PIN_IF_OFFSET_FIELD ((RegisterField) {TMC4671_SINGLE_PIN_IF_OFFSET_MASK, TMC4671_SINGLE_PIN_IF_OFFSET_SHIFT, TMC4671_CONFIG_DATA, false})
#define TMC4671_SINGLE_PIN_IF_SCALE_MASK 0xFFFF0000
#define TMC4671_SINGLE_PIN_IF_SCALE_SHIFT 16
#define TMC4671_SINGLE_PIN_IF_SCALE_FIELD ((RegisterField) {TMC4671_SINGLE_PIN_IF_SCALE_MASK, TMC4671_SINGLE_PIN_IF_SCALE_SHIFT, TMC4671_CONFIG_DATA, true})
#define TMC4671_CURRENT_I_NQ8_8_Q4_12_MASK 0x00000001
#define TMC4671_CURRENT_I_NQ8_8_Q4_12_SHIFT 0
#define TMC4671_CURRENT_I_NQ8_8_Q4_12_FIELD ((RegisterField) {TMC4671_CURRENT_I_NQ8_8_Q4_12_MASK, TMC4671_CURRENT_I_NQ8_8_Q4_12_SHIFT, TMC4671_CONFIG_DATA, false})
#define TMC4671_CURRENT_P_NQ8_8_Q4_12_MASK 0x00000002
#define TMC4671_CURRENT_P_NQ8_8_Q4_12_SHIFT 1
#define TMC4671_CURRENT_P_NQ8_8_Q4_12_FIELD ((RegisterField) {TMC4671_CURRENT_P_NQ8_8_Q4_12_MASK, TMC4671_CURRENT_P_NQ8_8_Q4_12_SHIFT, TMC4671_CONFIG_DATA, false})
#define TMC4671_VELOCITY_I_NQ8_8_Q4_12_MASK 0x00000004
#define TMC4671_VELOCITY_I_NQ8_8_Q4_12_SHIFT 2
#define TMC4671_VELOCITY_I_NQ8_8_Q4_12_FIELD ((RegisterField) {TMC4671_VELOCITY_I_NQ8_8_Q4_12_MASK, TMC4671_VELOCITY_I_NQ8_8_Q4_12_SHIFT, TMC4671_CONFIG_DATA, false})
#define TMC4671_VELOCITY_P_NQ8_8_Q4_12_MASK 0x00000008
#define TMC4671_VELOCITY_P_NQ8_8_Q4_12_SHIFT 3
#define TMC4671_VELOCITY_P_NQ8_8_Q4_12_FIELD ((RegisterField) {TMC4671_VELOCITY_P_NQ8_8_Q4_12_MASK, TMC4671_VELOCITY_P_NQ8_8_Q4_12_SHIFT, TMC4671_CONFIG_DATA, false})
#define TMC4671_POSITION_I_NQ8_8_Q4_12_MASK 0x00000010
#define TMC4671_POSITION_I_NQ8_8_Q4_12_SHIFT 4
#define TMC4671_POSITION_I_NQ8_8_Q4_12_FIELD ((RegisterField) {TMC4671_POSITION_I_NQ8_8_Q4_12_MASK, TMC4671_POSITION_I_NQ8_8_Q4_12_SHIFT, TMC4671_CONFIG_DATA, false})
#define TMC4671_POSITION_P_NQ8_8_Q4_12_MASK 0x00000020
#define TMC4671_POSITION_P_NQ8_8_Q4_12_SHIFT 5
#define TMC4671_POSITION_P_NQ8_8_Q4_12_FIELD ((RegisterField) {TMC4671_POSITION_P_NQ8_8_Q4_12_MASK, TMC4671_POSITION_P_NQ8_8_Q4_12_SHIFT, TMC4671_CONFIG_DATA, false})
#define TMC4671_CONFIG_ADDR_MASK 0xFFFFFFFF
#define TMC4671_CONFIG_ADDR_SHIFT 0
#define TMC4671_CONFIG_ADDR_FIELD ((RegisterField) {TMC4671_CONFIG_ADDR_MASK, TMC4671_CONFIG_ADDR_SHIFT, TMC4671_CONFIG_ADDR, false})
#define TMC4671_VELOCITY_SELECTION_MASK 0x000000FF
#define TMC4671_VELOCITY_SELECTION_SHIFT 0
#define TMC4671_VELOCITY_SELECTION_FIELD ((RegisterField) {TMC4671_VELOCITY_SELECTION_MASK, TMC4671_VELOCITY_SELECTION_SHIFT, TMC4671_VELOCITY_SELECTION, false})
#define TMC4671_VELOCITY_METER_SELECTION_MASK 0x0000FF00
#define TMC4671_VELOCITY_METER_SELECTION_SHIFT 8
#define TMC4671_VELOCITY_METER_SELECTION_FIELD ((RegisterField) {TMC4671_VELOCITY_METER_SELECTION_MASK, TMC4671_VELOCITY_METER_SELECTION_SHIFT, TMC4671_VELOCITY_SELECTION, false})
#define TMC4671_POSITION_SELECTION_MASK 0x000000FF
#define TMC4671_POSITION_SELECTION_SHIFT 0
#define TMC4671_POSITION_SELECTION_FIELD ((RegisterField) {TMC4671_POSITION_SELECTION_MASK, TMC4671_POSITION_SELECTION_SHIFT, TMC4671_POSITION_SELECTION, false})
#define TMC4671_PHI_E_SELECTION_MASK 0x000000FF
#define TMC4671_PHI_E_SELECTION_SHIFT 0
#define TMC4671_PHI_E_SELECTION_FIELD ((RegisterField) {TMC4671_PHI_E_SELECTION_MASK, TMC4671_PHI_E_SELECTION_SHIFT, TMC4671_PHI_E_SELECTION, false})
#define TMC4671_PHI_E_MASK 0x0000FFFF
#define TMC4671_PHI_E_SHIFT 0
#define TMC4671_PHI_E_FIELD ((RegisterField) {TMC4671_PHI_E_MASK, TMC4671_PHI_E_SHIFT, TMC4671_PHI_E, true})
#define TMC4671_PID_FLUX_I_MASK 0x0000FFFF
#define TMC4671_PID_FLUX_I_SHIFT 0
#define TMC4671_PID_FLUX_I_FIELD ((RegisterField) {TMC4671_PID_FLUX_I_MASK, TMC4671_PID_FLUX_I_SHIFT, TMC4671_PID_FLUX_P_FLUX_I, true})
#define TMC4671_PID_FLUX_P_MASK 0xFFFF0000
#define TMC4671_PID_FLUX_P_SHIFT 16
#define TMC4671_PID_FLUX_P_FIELD ((RegisterField) {TMC4671_PID_FLUX_P_MASK, TMC4671_PID_FLUX_P_SHIFT, TMC4671_PID_FLUX_P_FLUX_I, true})
#define TMC4671_PID_TORQUE_I_MASK 0x0000FFFF
#define TMC4671_PID_TORQUE_I_SHIFT 0
#define TMC4671_PID_TORQUE_I_FIELD ((RegisterField) {TMC4671_PID_TORQUE_I_MASK, TMC4671_PID_TORQUE_I_SHIFT, TMC4671_PID_TORQUE_P_TORQUE_I, true})
#define TMC4671_PID_TORQUE_P_MASK 0xFFFF0000
#define TMC4671_PID_TORQUE_P_SHIFT 16
#define TMC4671_PID_TORQUE_P_FIELD ((RegisterField) {TMC4671_PID_TORQUE_P_MASK, TMC4671_PID_TORQUE_P_SHIFT, TMC4671_PID_TORQUE_P_TORQUE_I, true})
#define TMC4671_PID_VELOCITY_I_MASK 0x0000FFFF
#define TMC4671_PID_VELOCITY_I_SHIFT 0
#define TMC4671_PID_VELOCITY_I_FIELD ((RegisterField) {TMC4671_PID_VELOCITY_I_MASK, TMC4671_PID_VELOCITY_I_SHIFT, TMC4671_PID_VELOCITY_P_VELOCITY_I, true})
#define TMC4671_PID_VELOCITY_P_MASK 0xFFFF0000
#define TMC4671_PID_VELOCITY_P_SHIFT 16
#define TMC4671_PID_VELOCITY_P_FIELD ((RegisterField) {TMC4671_PID_VELOCITY_P_MASK, TMC4671_PID_VELOCITY_P_SHIFT, TMC4671_PID_VELOCITY_P_VELOCITY_I, true})
#define TMC4671_PID_POSITION_I_MASK 0x0000FFFF
#define TMC4671_PID_POSITION_I_SHIFT 0
#define TMC4671_PID_POSITION_I_FIELD ((RegisterField) {TMC4671_PID_POSITION_I_MASK, TMC4671_PID_POSITION_I_SHIFT, TMC4671_PID_POSITION_P_POSITION_I, true})
#define TMC4671_PID_POSITION_P_MASK 0xFFFF0000
#define TMC4671_PID_POSITION_P_SHIFT 16
#define TMC4671_PID_POSITION_P_FIELD ((RegisterField) {TMC4671_PID_POSITION_P_MASK, TMC4671_PID_POSITION_P_SHIFT, TMC4671_PID_POSITION_P_POSITION_I, true})
#define TMC4671_PIDOUT_UQ_UD_LIMITS_MASK 0x0000FFFF
#define TMC4671_PIDOUT_UQ_UD_LIMITS_SHIFT 0
#define TMC4671_PIDOUT_UQ_UD_LIMITS_FIELD ((RegisterField) {TMC4671_PIDOUT_UQ_UD_LIMITS_MASK, TMC4671_PIDOUT_UQ_UD_LIMITS_SHIFT, TMC4671_PIDOUT_UQ_UD_LIMITS, false})
#define TMC4671_PID_TORQUE_FLUX_LIMITS_MASK 0x0000FFFF
#define TMC4671_PID_TORQUE_FLUX_LIMITS_SHIFT 0
#define TMC4671_PID_TORQUE_FLUX_LIMITS_FIELD ((RegisterField) {TMC4671_PID_TORQUE_FLUX_LIMITS_MASK, TMC4671_PID_TORQUE_FLUX_LIMITS_SHIFT, TMC4671_PID_TORQUE_FLUX_LIMITS, false})
#define TMC4671_PID_VELOCITY_LIMIT_MASK 0xFFFFFFFF
#define TMC4671_PID_VELOCITY_LIMIT_SHIFT 0
#define TMC4671_PID_VELOCITY_LIMIT_FIELD ((RegisterField) {TMC4671_PID_VELOCITY_LIMIT_MASK, TMC4671_PID_VELOCITY_LIMIT_SHIFT, TMC4671_PID_VELOCITY_LIMIT, false})
#define TMC4671_PID_POSITION_LIMIT_LOW_MASK 0xFFFFFFFF
#define TMC4671_PID_POSITION_LIMIT_LOW_SHIFT 0
#define TMC4671_PID_POSITION_LIMIT_LOW_FIELD ((RegisterField) {TMC4671_PID_POSITION_LIMIT_LOW_MASK, TMC4671_PID_POSITION_LIMIT_LOW_SHIFT, TMC4671_PID_POSITION_LIMIT_LOW, true})
#define TMC4671_PID_POSITION_LIMIT_HIGH_MASK 0xFFFFFFFF
#define TMC4671_PID_POSITION_LIMIT_HIGH_SHIFT 0
#define TMC4671_PID_POSITION_LIMIT_HIGH_FIELD ((RegisterField) {TMC4671_PID_POSITION_LIMIT_HIGH_MASK, TMC4671_PID_POSITION_LIMIT_HIGH_SHIFT, TMC4671_PID_POSITION_LIMIT_HIGH, true})
#define TMC4671_MODE_MOTION_MASK 0x000000FF
#define TMC4671_MODE_MOTION_SHIFT 0
#define TMC4671_MODE_MOTION_FIELD ((RegisterField) {TMC4671_MODE_MOTION_MASK, TMC4671_MODE_MOTION_SHIFT, TMC4671_MODE_RAMP_MODE_MOTION, false})
#define TMC4671_MODE_RAMP_MASK 0x0000FF00
#define TMC4671_MODE_RAMP_SHIFT 8
#define TMC4671_MODE_RAMP_FIELD ((RegisterField) {TMC4671_MODE_RAMP_MASK, TMC4671_MODE_RAMP_SHIFT, TMC4671_MODE_RAMP_MODE_MOTION, false})
#define TMC4671_MODE_FF_MASK 0x00FF0000
#define TMC4671_MODE_FF_SHIFT 16
#define TMC4671_MODE_FF_FIELD ((RegisterField) {TMC4671_MODE_FF_MASK, TMC4671_MODE_FF_SHIFT, TMC4671_MODE_RAMP_MODE_MOTION, false})
#define TMC4671_MODE_PID_SMPL_MASK 0x7F000000
#define TMC4671_MODE_PID_SMPL_SHIFT 24
#define TMC4671_MODE_PID_SMPL_FIELD ((RegisterField) {TMC4671_MODE_PID_SMPL_MASK, TMC4671_MODE_PID_SMPL_SHIFT, TMC4671_MODE_RAMP_MODE_MOTION, false})
#define TMC4671_MODE_PID_TYPE_MASK 0x80000000
#define TMC4671_MODE_PID_TYPE_SHIFT 31
#define TMC4671_MODE_PID_TYPE_FIELD ((RegisterField) {TMC4671_MODE_PID_TYPE_MASK, TMC4671_MODE_PID_TYPE_SHIFT, TMC4671_MODE_RAMP_MODE_MOTION, false})
#define TMC4671_PID_FLUX_TARGET_MASK 0x0000FFFF
#define TMC4671_PID_FLUX_TARGET_SHIFT 0
#define TMC4671_PID_FLUX_TARGET_FIELD ((RegisterField) {TMC4671_PID_FLUX_TARGET_MASK, TMC4671_PID_FLUX_TARGET_SHIFT, TMC4671_PID_TORQUE_FLUX_TARGET, true})
#define TMC4671_PID_TORQUE_TARGET_MASK 0xFFFF0000
#define TMC4671_PID_TORQUE_TARGET_SHIFT 16
#define TMC4671_PID_TORQUE_TARGET_FIELD ((RegisterField) {TMC4671_PID_TORQUE_TARGET_MASK, TMC4671_PID_TORQUE_TARGET_SHIFT, TMC4671_PID_TORQUE_FLUX_TARGET, true})
#define TMC4671_PID_FLUX_OFFSET_MASK 0x0000FFFF
#define TMC4671_PID_FLUX_OFFSET_SHIFT 0
#define TMC4671_PID_FLUX_OFFSET_FIELD ((RegisterField) {TMC4671_PID_FLUX_OFFSET_MASK, TMC4671_PID_FLUX_OFFSET_SHIFT, TMC4671_PID_TORQUE_FLUX_OFFSET, true})
#define TMC4671_PID_TORQUE_OFFSET_MASK 0xFFFF0000
#define TMC4671_PID_TORQUE_OFFSET_SHIFT 16
#define TMC4671_PID_TORQUE_OFFSET_FIELD ((RegisterField) {TMC4671_PID_TORQUE_OFFSET_MASK, TMC4671_PID_TORQUE_OFFSET_SHIFT, TMC4671_PID_TORQUE_FLUX_OFFSET, true})
#define TMC4671_PID_VELOCITY_TARGET_MASK 0xFFFFFFFF
#define TMC4671_PID_VELOCITY_TARGET_SHIFT 0
#define TMC4671_PID_VELOCITY_TARGET_FIELD ((RegisterField) {TMC4671_PID_VELOCITY_TARGET_MASK, TMC4671_PID_VELOCITY_TARGET_SHIFT, TMC4671_PID_VELOCITY_TARGET, true})
#define TMC4671_PID_VELOCITY_OFFSET_MASK 0xFFFFFFFF
#define TMC4671_PID_VELOCITY_OFFSET_SHIFT 0
#define TMC4671_PID_VELOCITY_OFFSET_FIELD ((RegisterField) {TMC4671_PID_VELOCITY_OFFSET_MASK, TMC4671_PID_VELOCITY_OFFSET_SHIFT, TMC4671_PID_VELOCITY_OFFSET, true})
#define TMC4671_PID_POSITION_TARGET_MASK 0xFFFFFFFF
#define TMC4671_PID_POSITION_TARGET_SHIFT 0
#define TMC4671_PID_POSITION_TARGET_FIELD ((RegisterField) {TMC4671_PID_POSITION_TARGET_MASK, TMC4671_PID_POSITION_TARGET_SHIFT, TMC4671_PID_POSITION_TARGET, true})
#define TMC4671_PID_FLUX_ACTUAL_MASK 0x0000FFFF
#define TMC4671_PID_FLUX_ACTUAL_SHIFT 0
#define TMC4671_PID_FLUX_ACTUAL_FIELD ((RegisterField) {TMC4671_PID_FLUX_ACTUAL_MASK, TMC4671_PID_FLUX_ACTUAL_SHIFT, TMC4671_PID_TORQUE_FLUX_ACTUAL, true})
#define TMC4671_PID_TORQUE_ACTUAL_MASK 0xFFFF0000
#define TMC4671_PID_TORQUE_ACTUAL_SHIFT 16
#define TMC4671_PID_TORQUE_ACTUAL_FIELD ((RegisterField) {TMC4671_PID_TORQUE_ACTUAL_MASK, TMC4671_PID_TORQUE_ACTUAL_SHIFT, TMC4671_PID_TORQUE_FLUX_ACTUAL, true})
#define TMC4671_PID_VELOCITY_ACTUAL_MASK 0xFFFFFFFF
#define TMC4671_PID_VELOCITY_ACTUAL_SHIFT 0
#define TMC4671_PID_VELOCITY_ACTUAL_FIELD ((RegisterField) {TMC4671_PID_VELOCITY_ACTUAL_MASK, TMC4671_PID_VELOCITY_ACTUAL_SHIFT, TMC4671_PID_VELOCITY_ACTUAL, true})
#define TMC4671_PID_POSITION_ACTUAL_MASK 0xFFFFFFFF
#define TMC4671_PID_POSITION_ACTUAL_SHIFT 0
#define TMC4671_PID_POSITION_ACTUAL_FIELD ((RegisterField) {TMC4671_PID_POSITION_ACTUAL_MASK, TMC4671_PID_POSITION_ACTUAL_SHIFT, TMC4671_PID_POSITION_ACTUAL, true})
#define TMC4671_PID_TORQUE_ERROR_MASK 0xFFFFFFFF
#define TMC4671_PID_TORQUE_ERROR_SHIFT 0
#define TMC4671_PID_TORQUE_ERROR_FIELD ((RegisterField) {TMC4671_PID_TORQUE_ERROR_MASK, TMC4671_PID_TORQUE_ERROR_SHIFT, TMC4671_PID_ERROR_DATA, true})
#define TMC4671_PID_FLUX_ERROR_MASK 0xFFFFFFFF
#define TMC4671_PID_FLUX_ERROR_SHIFT 0
#define TMC4671_PID_FLUX_ERROR_FIELD ((RegisterField) {TMC4671_PID_FLUX_ERROR_MASK, TMC4671_PID_FLUX_ERROR_SHIFT, TMC4671_PID_ERROR_DATA, true})
#define TMC4671_PID_VELOCITY_ERROR_MASK 0xFFFFFFFF
#define TMC4671_PID_VELOCITY_ERROR_SHIFT 0
#define TMC4671_PID_VELOCITY_ERROR_FIELD ((RegisterField) {TMC4671_PID_VELOCITY_ERROR_MASK, TMC4671_PID_VELOCITY_ERROR_SHIFT, TMC4671_PID_ERROR_DATA, true})
#define TMC4671_PID_POSITION_ERROR_MASK 0xFFFFFFFF
#define TMC4671_PID_POSITION_ERROR_SHIFT 0
#define TMC4671_PID_POSITION_ERROR_FIELD ((RegisterField) {TMC4671_PID_POSITION_ERROR_MASK, TMC4671_PID_POSITION_ERROR_SHIFT, TMC4671_PID_ERROR_DATA, true})
#define TMC4671_PID_TORQUE_ERROR_SUM_MASK 0xFFFFFFFF
#define TMC4671_PID_TORQUE_ERROR_SUM_SHIFT 0
#define TMC4671_PID_TORQUE_ERROR_SUM_FIELD ((RegisterField) {TMC4671_PID_TORQUE_ERROR_SUM_MASK, TMC4671_PID_TORQUE_ERROR_SUM_SHIFT, TMC4671_PID_ERROR_DATA, true})
#define TMC4671_PID_FLUX_ERROR_SUM_MASK 0xFFFFFFFF
#define TMC4671_PID_FLUX_ERROR_SUM_SHIFT 0
#define TMC4671_PID_FLUX_ERROR_SUM_FIELD ((RegisterField) {TMC4671_PID_FLUX_ERROR_SUM_MASK, TMC4671_PID_FLUX_ERROR_SUM_SHIFT, TMC4671_PID_ERROR_DATA, true})
#define TMC4671_PID_VELOCITY_ERROR_SUM_MASK 0xFFFFFFFF
#define TMC4671_PID_VELOCITY_ERROR_SUM_SHIFT 0
#define TMC4671_PID_VELOCITY_ERROR_SUM_FIELD ((RegisterField) {TMC4671_PID_VELOCITY_ERROR_SUM_MASK, TMC4671_PID_VELOCITY_ERROR_SUM_SHIFT, TMC4671_PID_ERROR_DATA, true})
#define TMC4671_PID_POSITION_ERROR_SUM_MASK 0xFFFFFFFF
#define TMC4671_PID_POSITION_ERROR_SUM_SHIFT 0
#define TMC4671_PID_POSITION_ERROR_SUM_FIELD ((RegisterField) {TMC4671_PID_POSITION_ERROR_SUM_MASK, TMC4671_PID_POSITION_ERROR_SUM_SHIFT, TMC4671_PID_ERROR_DATA, true})
#define TMC4671_PID_ERROR_ADDR_MASK 0x000000FF
#define TMC4671_PID_ERROR_ADDR_SHIFT 0
#define TMC4671_PID_ERROR_ADDR_FIELD ((RegisterField) {TMC4671_PID_ERROR_ADDR_MASK, TMC4671_PID_ERROR_ADDR_SHIFT, TMC4671_PID_ERROR_ADDR, false})
#define TMC4671_PIDIN_TARGET_TORQUE_MASK 0xFFFFFFFF
#define TMC4671_PIDIN_TARGET_TORQUE_SHIFT 0
#define TMC4671_PIDIN_TARGET_TORQUE_FIELD ((RegisterField) {TMC4671_PIDIN_TARGET_TORQUE_MASK, TMC4671_PIDIN_TARGET_TORQUE_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PIDIN_TARGET_FLUX_MASK 0xFFFFFFFF
#define TMC4671_PIDIN_TARGET_FLUX_SHIFT 0
#define TMC4671_PIDIN_TARGET_FLUX_FIELD ((RegisterField) {TMC4671_PIDIN_TARGET_FLUX_MASK, TMC4671_PIDIN_TARGET_FLUX_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PIDIN_TARGET_VELOCITY_MASK 0xFFFFFFFF
#define TMC4671_PIDIN_TARGET_VELOCITY_SHIFT 0
#define TMC4671_PIDIN_TARGET_VELOCITY_FIELD ((RegisterField) {TMC4671_PIDIN_TARGET_VELOCITY_MASK, TMC4671_PIDIN_TARGET_VELOCITY_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PIDIN_TARGET_POSITION_MASK 0xFFFFFFFF
#define TMC4671_PIDIN_TARGET_POSITION_SHIFT 0
#define TMC4671_PIDIN_TARGET_POSITION_FIELD ((RegisterField) {TMC4671_PIDIN_TARGET_POSITION_MASK, TMC4671_PIDIN_TARGET_POSITION_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PIDOUT_TARGET_TORQUE_MASK 0xFFFFFFFF
#define TMC4671_PIDOUT_TARGET_TORQUE_SHIFT 0
#define TMC4671_PIDOUT_TARGET_TORQUE_FIELD ((RegisterField) {TMC4671_PIDOUT_TARGET_TORQUE_MASK, TMC4671_PIDOUT_TARGET_TORQUE_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PIDOUT_TARGET_FLUX_MASK 0xFFFFFFFF
#define TMC4671_PIDOUT_TARGET_FLUX_SHIFT 0
#define TMC4671_PIDOUT_TARGET_FLUX_FIELD ((RegisterField) {TMC4671_PIDOUT_TARGET_FLUX_MASK, TMC4671_PIDOUT_TARGET_FLUX_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PIDOUT_TARGET_VELOCITY_MASK 0xFFFFFFFF
#define TMC4671_PIDOUT_TARGET_VELOCITY_SHIFT 0
#define TMC4671_PIDOUT_TARGET_VELOCITY_FIELD ((RegisterField) {TMC4671_PIDOUT_TARGET_VELOCITY_MASK, TMC4671_PIDOUT_TARGET_VELOCITY_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PIDOUT_TARGET_POSITION_MASK 0xFFFFFFFF
#define TMC4671_PIDOUT_TARGET_POSITION_SHIFT 0
#define TMC4671_PIDOUT_TARGET_POSITION_FIELD ((RegisterField) {TMC4671_PIDOUT_TARGET_POSITION_MASK, TMC4671_PIDOUT_TARGET_POSITION_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_FOC_IUX_MASK 0x0000FFFF
#define TMC4671_FOC_IUX_SHIFT 0
#define TMC4671_FOC_IUX_FIELD ((RegisterField) {TMC4671_FOC_IUX_MASK, TMC4671_FOC_IUX_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_FOC_IWY_MASK 0xFFFF0000
#define TMC4671_FOC_IWY_SHIFT 16
#define TMC4671_FOC_IWY_FIELD ((RegisterField) {TMC4671_FOC_IWY_MASK, TMC4671_FOC_IWY_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_FOC_IV_MASK 0x0000FFFF
#define TMC4671_FOC_IV_SHIFT 0
#define TMC4671_FOC_IV_FIELD ((RegisterField) {TMC4671_FOC_IV_MASK, TMC4671_FOC_IV_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_FOC_IA_MASK 0x0000FFFF
#define TMC4671_FOC_IA_SHIFT 0
#define TMC4671_FOC_IA_FIELD ((RegisterField) {TMC4671_FOC_IA_MASK, TMC4671_FOC_IA_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_FOC_IB_MASK 0xFFFF0000
#define TMC4671_FOC_IB_SHIFT 16
#define TMC4671_FOC_IB_FIELD ((RegisterField) {TMC4671_FOC_IB_MASK, TMC4671_FOC_IB_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_FOC_ID_MASK 0x0000FFFF
#define TMC4671_FOC_ID_SHIFT 0
#define TMC4671_FOC_ID_FIELD ((RegisterField) {TMC4671_FOC_ID_MASK, TMC4671_FOC_ID_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_FOC_IQ_MASK 0xFFFF0000
#define TMC4671_FOC_IQ_SHIFT 16
#define TMC4671_FOC_IQ_FIELD ((RegisterField) {TMC4671_FOC_IQ_MASK, TMC4671_FOC_IQ_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_FOC_UD_MASK 0x0000FFFF
#define TMC4671_FOC_UD_SHIFT 0
#define TMC4671_FOC_UD_FIELD ((RegisterField) {TMC4671_FOC_UD_MASK, TMC4671_FOC_UD_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_FOC_UQ_MASK 0xFFFF0000
#define TMC4671_FOC_UQ_SHIFT 16
#define TMC4671_FOC_UQ_FIELD ((RegisterField) {TMC4671_FOC_UQ_MASK, TMC4671_FOC_UQ_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_FOC_UD_LIMITED_MASK 0x0000FFFF
#define TMC4671_FOC_UD_LIMITED_SHIFT 0
#define TMC4671_FOC_UD_LIMITED_FIELD ((RegisterField) {TMC4671_FOC_UD_LIMITED_MASK, TMC4671_FOC_UD_LIMITED_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_FOC_UQ_LIMITED_MASK 0xFFFF0000
#define TMC4671_FOC_UQ_LIMITED_SHIFT 16
#define TMC4671_FOC_UQ_LIMITED_FIELD ((RegisterField) {TMC4671_FOC_UQ_LIMITED_MASK, TMC4671_FOC_UQ_LIMITED_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_FOC_UA_MASK 0x0000FFFF
#define TMC4671_FOC_UA_SHIFT 0
#define TMC4671_FOC_UA_FIELD ((RegisterField) {TMC4671_FOC_UA_MASK, TMC4671_FOC_UA_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_FOC_UB_MASK 0xFFFF0000
#define TMC4671_FOC_UB_SHIFT 16
#define TMC4671_FOC_UB_FIELD ((RegisterField) {TMC4671_FOC_UB_MASK, TMC4671_FOC_UB_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_FOC_UUX_MASK 0x0000FFFF
#define TMC4671_FOC_UUX_SHIFT 0
#define TMC4671_FOC_UUX_FIELD ((RegisterField) {TMC4671_FOC_UUX_MASK, TMC4671_FOC_UUX_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_FOC_UWY_MASK 0xFFFF0000
#define TMC4671_FOC_UWY_SHIFT 16
#define TMC4671_FOC_UWY_FIELD ((RegisterField) {TMC4671_FOC_UWY_MASK, TMC4671_FOC_UWY_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_FOC_UV_MASK 0x0000FFFF
#define TMC4671_FOC_UV_SHIFT 0
#define TMC4671_FOC_UV_FIELD ((RegisterField) {TMC4671_FOC_UV_MASK, TMC4671_FOC_UV_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PWM_UX_MASK 0x0000FFFF
#define TMC4671_PWM_UX_SHIFT 0
#define TMC4671_PWM_UX_FIELD ((RegisterField) {TMC4671_PWM_UX_MASK, TMC4671_PWM_UX_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PWM_WY_MASK 0xFFFF0000
#define TMC4671_PWM_WY_SHIFT 16
#define TMC4671_PWM_WY_FIELD ((RegisterField) {TMC4671_PWM_WY_MASK, TMC4671_PWM_WY_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PWM_V_MASK 0x0000FFFF
#define TMC4671_PWM_V_SHIFT 0
#define TMC4671_PWM_V_FIELD ((RegisterField) {TMC4671_PWM_V_MASK, TMC4671_PWM_V_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_ADC_I_0_MASK 0x0000FFFF
#define TMC4671_ADC_I_0_SHIFT 0
#define TMC4671_ADC_I_0_FIELD ((RegisterField) {TMC4671_ADC_I_0_MASK, TMC4671_ADC_I_0_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_ADC_I_1_MASK 0xFFFF0000
#define TMC4671_ADC_I_1_SHIFT 16
#define TMC4671_ADC_I_1_FIELD ((RegisterField) {TMC4671_ADC_I_1_MASK, TMC4671_ADC_I_1_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PID_FLUX_ACTUAL_DIV256_MASK 0x000000FF
#define TMC4671_PID_FLUX_ACTUAL_DIV256_SHIFT 0
#define TMC4671_PID_FLUX_ACTUAL_DIV256_FIELD ((RegisterField) {TMC4671_PID_FLUX_ACTUAL_DIV256_MASK, TMC4671_PID_FLUX_ACTUAL_DIV256_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PID_TORQUE_ACTUAL_DIV256_MASK 0x0000FF00
#define TMC4671_PID_TORQUE_ACTUAL_DIV256_SHIFT 8
#define TMC4671_PID_TORQUE_ACTUAL_DIV256_FIELD ((RegisterField) {TMC4671_PID_TORQUE_ACTUAL_DIV256_MASK, TMC4671_PID_TORQUE_ACTUAL_DIV256_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PID_FLUX_TARGET_DIV256_MASK 0x00FF0000
#define TMC4671_PID_FLUX_TARGET_DIV256_SHIFT 16
#define TMC4671_PID_FLUX_TARGET_DIV256_FIELD ((RegisterField) {TMC4671_PID_FLUX_TARGET_DIV256_MASK, TMC4671_PID_FLUX_TARGET_DIV256_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PID_TORQUE_TARGET_DIV256_MASK 0xFF000000
#define TMC4671_PID_TORQUE_TARGET_DIV256_SHIFT 24
#define TMC4671_PID_TORQUE_TARGET_DIV256_FIELD ((RegisterField) {TMC4671_PID_TORQUE_TARGET_DIV256_MASK, TMC4671_PID_TORQUE_TARGET_DIV256_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PID_VELOCITY_ACTUAL_DIV256_MASK 0x0000FFFF
#define TMC4671_PID_VELOCITY_ACTUAL_DIV256_SHIFT 0
#define TMC4671_PID_VELOCITY_ACTUAL_DIV256_FIELD ((RegisterField) {TMC4671_PID_VELOCITY_ACTUAL_DIV256_MASK, TMC4671_PID_VELOCITY_ACTUAL_DIV256_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PID_VELOCITY_TARGET_DIV256_MASK 0xFFFF0000
#define TMC4671_PID_VELOCITY_TARGET_DIV256_SHIFT 16
#define TMC4671_PID_VELOCITY_TARGET_DIV256_FIELD ((RegisterField) {TMC4671_PID_VELOCITY_TARGET_DIV256_MASK, TMC4671_PID_VELOCITY_TARGET_DIV256_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PID_VELOCITY_ACTUAL_LSB_MASK 0x0000FFFF
#define TMC4671_PID_VELOCITY_ACTUAL_LSB_SHIFT 0
#define TMC4671_PID_VELOCITY_ACTUAL_LSB_FIELD ((RegisterField) {TMC4671_PID_VELOCITY_ACTUAL_LSB_MASK, TMC4671_PID_VELOCITY_ACTUAL_LSB_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PID_VELOCITY_TARGET_LSB_MASK 0xFFFF0000
#define TMC4671_PID_VELOCITY_TARGET_LSB_SHIFT 16
#define TMC4671_PID_VELOCITY_TARGET_LSB_FIELD ((RegisterField) {TMC4671_PID_VELOCITY_TARGET_LSB_MASK, TMC4671_PID_VELOCITY_TARGET_LSB_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PID_POSITION_ACTUAL_DIV256_MASK 0x0000FFFF
#define TMC4671_PID_POSITION_ACTUAL_DIV256_SHIFT 0
#define TMC4671_PID_POSITION_ACTUAL_DIV256_FIELD ((RegisterField) {TMC4671_PID_POSITION_ACTUAL_DIV256_MASK, TMC4671_PID_POSITION_ACTUAL_DIV256_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PID_POSITION_TARGET_DIV256_MASK 0xFFFF0000
#define TMC4671_PID_POSITION_TARGET_DIV256_SHIFT 16
#define TMC4671_PID_POSITION_TARGET_DIV256_FIELD ((RegisterField) {TMC4671_PID_POSITION_TARGET_DIV256_MASK, TMC4671_PID_POSITION_TARGET_DIV256_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PID_POSITION_ACTUAL_LSB_MASK 0x0000FFFF
#define TMC4671_PID_POSITION_ACTUAL_LSB_SHIFT 0
#define TMC4671_PID_POSITION_ACTUAL_LSB_FIELD ((RegisterField) {TMC4671_PID_POSITION_ACTUAL_LSB_MASK, TMC4671_PID_POSITION_ACTUAL_LSB_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_PID_POSITION_TARGET_LSB_MASK 0xFFFF0000
#define TMC4671_PID_POSITION_TARGET_LSB_SHIFT 16
#define TMC4671_PID_POSITION_TARGET_LSB_FIELD ((RegisterField) {TMC4671_PID_POSITION_TARGET_LSB_MASK, TMC4671_PID_POSITION_TARGET_LSB_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_FF_VELOCITY_MASK 0xFFFFFFFF
#define TMC4671_FF_VELOCITY_SHIFT 0
#define TMC4671_FF_VELOCITY_FIELD ((RegisterField) {TMC4671_FF_VELOCITY_MASK, TMC4671_FF_VELOCITY_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_FF_TORQUE_MASK 0x0000FFFF
#define TMC4671_FF_TORQUE_SHIFT 0
#define TMC4671_FF_TORQUE_FIELD ((RegisterField) {TMC4671_FF_TORQUE_MASK, TMC4671_FF_TORQUE_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_ACTUAL_VELOCITY_PPTM_MASK 0xFFFFFFFF
#define TMC4671_ACTUAL_VELOCITY_PPTM_SHIFT 0
#define TMC4671_ACTUAL_VELOCITY_PPTM_FIELD ((RegisterField) {TMC4671_ACTUAL_VELOCITY_PPTM_MASK, TMC4671_ACTUAL_VELOCITY_PPTM_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_HOME_SWITCH_STATUS_MASK 0x00000001
#define TMC4671_HOME_SWITCH_STATUS_SHIFT 0
#define TMC4671_HOME_SWITCH_STATUS_FIELD ((RegisterField) {TMC4671_HOME_SWITCH_STATUS_MASK, TMC4671_HOME_SWITCH_STATUS_SHIFT, TMC4671_INTERIM_DATA, false})
#define TMC4671_LEFT_SWITCH_STATUS_MASK 0x00000002
#define TMC4671_LEFT_SWITCH_STATUS_SHIFT 1
#define TMC4671_LEFT_SWITCH_STATUS_FIELD ((RegisterField) {TMC4671_LEFT_SWITCH_STATUS_MASK, TMC4671_LEFT_SWITCH_STATUS_SHIFT, TMC4671_INTERIM_DATA, false})
#define TMC4671_RIGHT_SWITCH_STATUS_MASK 0x00000004
#define TMC4671_RIGHT_SWITCH_STATUS_SHIFT 2
#define TMC4671_RIGHT_SWITCH_STATUS_FIELD ((RegisterField) {TMC4671_RIGHT_SWITCH_STATUS_MASK, TMC4671_RIGHT_SWITCH_STATUS_SHIFT, TMC4671_INTERIM_DATA, false})
#define TMC4671_HOME_POSITION_MASK 0xFFFFFFFF
#define TMC4671_HOME_POSITION_SHIFT 0
#define TMC4671_HOME_POSITION_FIELD ((RegisterField) {TMC4671_HOME_POSITION_MASK, TMC4671_HOME_POSITION_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_LEFT_POSITION_MASK 0xFFFFFFFF
#define TMC4671_LEFT_POSITION_SHIFT 0
#define TMC4671_LEFT_POSITION_FIELD ((RegisterField) {TMC4671_LEFT_POSITION_MASK, TMC4671_LEFT_POSITION_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_RIGHT_POSITION_MASK 0xFFFFFFFF
#define TMC4671_RIGHT_POSITION_SHIFT 0
#define TMC4671_RIGHT_POSITION_FIELD ((RegisterField) {TMC4671_RIGHT_POSITION_MASK, TMC4671_RIGHT_POSITION_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_ENC_INIT_HALL_STATUS_MASK 0x0000FFFF
#define TMC4671_ENC_INIT_HALL_STATUS_SHIFT 0
#define TMC4671_ENC_INIT_HALL_STATUS_FIELD ((RegisterField) {TMC4671_ENC_INIT_HALL_STATUS_MASK, TMC4671_ENC_INIT_HALL_STATUS_SHIFT, TMC4671_INTERIM_DATA, false})
#define TMC4671_ENC_INIT_HALL_PHI_E_ABN_OFFSET_MASK 0x0000FFFF
#define TMC4671_ENC_INIT_HALL_PHI_E_ABN_OFFSET_SHIFT 0
#define TMC4671_ENC_INIT_HALL_PHI_E_ABN_OFFSET_FIELD ((RegisterField) {TMC4671_ENC_INIT_HALL_PHI_E_ABN_OFFSET_MASK, TMC4671_ENC_INIT_HALL_PHI_E_ABN_OFFSET_SHIFT, TMC4671_INTERIM_DATA, false})
#define TMC4671_ENC_INIT_HALL_PHI_E_AENC_OFFSET_MASK 0x0000FFFF
#define TMC4671_ENC_INIT_HALL_PHI_E_AENC_OFFSET_SHIFT 0
#define TMC4671_ENC_INIT_HALL_PHI_E_AENC_OFFSET_FIELD ((RegisterField) {TMC4671_ENC_INIT_HALL_PHI_E_AENC_OFFSET_MASK, TMC4671_ENC_INIT_HALL_PHI_E_AENC_OFFSET_SHIFT, TMC4671_INTERIM_DATA, false})
#define TMC4671_ENC_INIT_HALL_PHI_A_AENC_OFFSET_MASK 0x0000FFFF
#define TMC4671_ENC_INIT_HALL_PHI_A_AENC_OFFSET_SHIFT 0
#define TMC4671_ENC_INIT_HALL_PHI_A_AENC_OFFSET_FIELD ((RegisterField) {TMC4671_ENC_INIT_HALL_PHI_A_AENC_OFFSET_MASK, TMC4671_ENC_INIT_HALL_PHI_A_AENC_OFFSET_SHIFT, TMC4671_INTERIM_DATA, false})
#define TMC4671_ENC_INIT_MINI_MOVE_STATUS_MASK 0x0000FFFF
#define TMC4671_ENC_INIT_MINI_MOVE_STATUS_SHIFT 0
#define TMC4671_ENC_INIT_MINI_MOVE_STATUS_FIELD ((RegisterField) {TMC4671_ENC_INIT_MINI_MOVE_STATUS_MASK, TMC4671_ENC_INIT_MINI_MOVE_STATUS_SHIFT, TMC4671_INTERIM_DATA, false})
#define TMC4671_ENC_INIT_MINI_MOVE_U_D_MASK 0xFFFF0000
#define TMC4671_ENC_INIT_MINI_MOVE_U_D_SHIFT 16
#define TMC4671_ENC_INIT_MINI_MOVE_U_D_FIELD ((RegisterField) {TMC4671_ENC_INIT_MINI_MOVE_U_D_MASK, TMC4671_ENC_INIT_MINI_MOVE_U_D_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_ENC_INIT_MINI_MOVE_PHI_E_OFFSET_MASK 0x0000FFFF
#define TMC4671_ENC_INIT_MINI_MOVE_PHI_E_OFFSET_SHIFT 0
#define TMC4671_ENC_INIT_MINI_MOVE_PHI_E_OFFSET_FIELD ((RegisterField) {TMC4671_ENC_INIT_MINI_MOVE_PHI_E_OFFSET_MASK, TMC4671_ENC_INIT_MINI_MOVE_PHI_E_OFFSET_SHIFT, TMC4671_INTERIM_DATA, false})
#define TMC4671_ENC_INIT_MINI_MOVE_PHI_E_MASK 0xFFFF0000
#define TMC4671_ENC_INIT_MINI_MOVE_PHI_E_SHIFT 16
#define TMC4671_ENC_INIT_MINI_MOVE_PHI_E_FIELD ((RegisterField) {TMC4671_ENC_INIT_MINI_MOVE_PHI_E_MASK, TMC4671_ENC_INIT_MINI_MOVE_PHI_E_SHIFT, TMC4671_INTERIM_DATA, false})
#define TMC4671_SINGLE_PIN_IF_TARGET_TORQUE_MASK 0x0000FFFF
#define TMC4671_SINGLE_PIN_IF_TARGET_TORQUE_SHIFT 0
#define TMC4671_SINGLE_PIN_IF_TARGET_TORQUE_FIELD ((RegisterField) {TMC4671_SINGLE_PIN_IF_TARGET_TORQUE_MASK, TMC4671_SINGLE_PIN_IF_TARGET_TORQUE_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_SINGLE_PIN_IF_PWM_DUTY_CYCLE_MASK 0xFFFF0000
#define TMC4671_SINGLE_PIN_IF_PWM_DUTY_CYCLE_SHIFT 16
#define TMC4671_SINGLE_PIN_IF_PWM_DUTY_CYCLE_FIELD ((RegisterField) {TMC4671_SINGLE_PIN_IF_PWM_DUTY_CYCLE_MASK, TMC4671_SINGLE_PIN_IF_PWM_DUTY_CYCLE_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_SINGLE_PIN_IF_TARGET_VELOCITY_MASK 0xFFFFFFFF
#define TMC4671_SINGLE_PIN_IF_TARGET_VELOCITY_SHIFT 0
#define TMC4671_SINGLE_PIN_IF_TARGET_VELOCITY_FIELD ((RegisterField) {TMC4671_SINGLE_PIN_IF_TARGET_VELOCITY_MASK, TMC4671_SINGLE_PIN_IF_TARGET_VELOCITY_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_SINGLE_PIN_IF_TARGET_POSITION_MASK 0xFFFFFFFF
#define TMC4671_SINGLE_PIN_IF_TARGET_POSITION_SHIFT 0
#define TMC4671_SINGLE_PIN_IF_TARGET_POSITION_FIELD ((RegisterField) {TMC4671_SINGLE_PIN_IF_TARGET_POSITION_MASK, TMC4671_SINGLE_PIN_IF_TARGET_POSITION_SHIFT, TMC4671_INTERIM_DATA, true})
#define TMC4671_INTERIM_ADDR_MASK 0x000000FF
#define TMC4671_INTERIM_ADDR_SHIFT 0
#define TMC4671_INTERIM_ADDR_FIELD ((RegisterField) {TMC4671_INTERIM_ADDR_MASK, TMC4671_INTERIM_ADDR_SHIFT, TMC4671_INTERIM_ADDR, false})
#define TMC4671_WATCHDOG_CFG_MASK 0x00000003
#define TMC4671_WATCHDOG_CFG_SHIFT 0
#define TMC4671_WATCHDOG_CFG_FIELD ((RegisterField) {TMC4671_WATCHDOG_CFG_MASK, TMC4671_WATCHDOG_CFG_SHIFT, TMC4671_WATCHDOG_CFG, false})
#define TMC4671_ADC_VM_LIMIT_LOW_MASK 0x0000FFFF
#define TMC4671_ADC_VM_LIMIT_LOW_SHIFT 0
#define TMC4671_ADC_VM_LIMIT_LOW_FIELD ((RegisterField) {TMC4671_ADC_VM_LIMIT_LOW_MASK, TMC4671_ADC_VM_LIMIT_LOW_SHIFT, TMC4671_ADC_VM_LIMITS, false})
#define TMC4671_ADC_VM_LIMIT_HIGH_MASK 0xFFFF0000
#define TMC4671_ADC_VM_LIMIT_HIGH_SHIFT 16
#define TMC4671_ADC_VM_LIMIT_HIGH_FIELD ((RegisterField) {TMC4671_ADC_VM_LIMIT_HIGH_MASK, TMC4671_ADC_VM_LIMIT_HIGH_SHIFT, TMC4671_ADC_VM_LIMITS, false})
#define TMC4671_A_OF_ABN_RAW_MASK 0x00000001
#define TMC4671_A_OF_ABN_RAW_SHIFT 0
#define TMC4671_A_OF_ABN_RAW_FIELD ((RegisterField) {TMC4671_A_OF_ABN_RAW_MASK, TMC4671_A_OF_ABN_RAW_SHIFT, TMC4671_INPUTS_RAW, false})
#define TMC4671_B_OF_ABN_RAW_MASK 0x00000002
#define TMC4671_B_OF_ABN_RAW_SHIFT 1
#define TMC4671_B_OF_ABN_RAW_FIELD ((RegisterField) {TMC4671_B_OF_ABN_RAW_MASK, TMC4671_B_OF_ABN_RAW_SHIFT, TMC4671_INPUTS_RAW, false})
#define TMC4671_N_OF_ABN_RAW_MASK 0x00000004
#define TMC4671_N_OF_ABN_RAW_SHIFT 2
#define TMC4671_N_OF_ABN_RAW_FIELD ((RegisterField) {TMC4671_N_OF_ABN_RAW_MASK, TMC4671_N_OF_ABN_RAW_SHIFT, TMC4671_INPUTS_RAW, false})
#define TMC4671_A_OF_ABN_2_RAW_MASK 0x00000010
#define TMC4671_A_OF_ABN_2_RAW_SHIFT 4
#define TMC4671_A_OF_ABN_2_RAW_FIELD ((RegisterField) {TMC4671_A_OF_ABN_2_RAW_MASK, TMC4671_A_OF_ABN_2_RAW_SHIFT, TMC4671_INPUTS_RAW, false})
#define TMC4671_B_OF_ABN_2_RAW_MASK 0x00000020
#define TMC4671_B_OF_ABN_2_RAW_SHIFT 5
#define TMC4671_B_OF_ABN_2_RAW_FIELD ((RegisterField) {TMC4671_B_OF_ABN_2_RAW_MASK, TMC4671_B_OF_ABN_2_RAW_SHIFT, TMC4671_INPUTS_RAW, false})
#define TMC4671_N_OF_ABN_2_RAW_MASK 0x00000040
#define TMC4671_N_OF_ABN_2_RAW_SHIFT 6
#define TMC4671_N_OF_ABN_2_RAW_FIELD ((RegisterField) {TMC4671_N_OF_ABN_2_RAW_MASK, TMC4671_N_OF_ABN_2_RAW_SHIFT, TMC4671_INPUTS_RAW, false})
#define TMC4671_HALL_UX_OF_HALL_RAW_MASK 0x00000100
#define TMC4671_HALL_UX_OF_HALL_RAW_SHIFT 8
#define TMC4671_HALL_UX_OF_HALL_RAW_FIELD ((RegisterField) {TMC4671_HALL_UX_OF_HALL_RAW_MASK, TMC4671_HALL_UX_OF_HALL_RAW_SHIFT, TMC4671_INPUTS_RAW, false})
#define TMC4671_HALL_V_OF_HALL_RAW_MASK 0x00000200
#define TMC4671_HALL_V_OF_HALL_RAW_SHIFT 9
#define TMC4671_HALL_V_OF_HALL_RAW_FIELD ((RegisterField) {TMC4671_HALL_V_OF_HALL_RAW_MASK, TMC4671_HALL_V_OF_HALL_RAW_SHIFT, TMC4671_INPUTS_RAW, false})
#define TMC4671_HALL_WY_OF_HALL_RAW_MASK 0x00000400
#define TMC4671_HALL_WY_OF_HALL_RAW_SHIFT 10
#define TMC4671_HALL_WY_OF_HALL_RAW_FIELD ((RegisterField) {TMC4671_HALL_WY_OF_HALL_RAW_MASK, TMC4671_HALL_WY_OF_HALL_RAW_SHIFT, TMC4671_INPUTS_RAW, false})
#define TMC4671_REF_SW_R_RAW_MASK 0x00001000
#define TMC4671_REF_SW_R_RAW_SHIFT 12
#define TMC4671_REF_SW_R_RAW_FIELD ((RegisterField) {TMC4671_REF_SW_R_RAW_MASK, TMC4671_REF_SW_R_RAW_SHIFT, TMC4671_INPUTS_RAW, false})
#define TMC4671_REF_SW_H_RAW_MASK 0x00002000
#define TMC4671_REF_SW_H_RAW_SHIFT 13
#define TMC4671_REF_SW_H_RAW_FIELD ((RegisterField) {TMC4671_REF_SW_H_RAW_MASK, TMC4671_REF_SW_H_RAW_SHIFT, TMC4671_INPUTS_RAW, false})
#define TMC4671_REF_SW_L_RAW_MASK 0x00004000
#define TMC4671_REF_SW_L_RAW_SHIFT 14
#define TMC4671_REF_SW_L_RAW_FIELD ((RegisterField) {TMC4671_REF_SW_L_RAW_MASK, TMC4671_REF_SW_L_RAW_SHIFT, TMC4671_INPUTS_RAW, false})
#define TMC4671_ENABLE_IN_RAW_MASK 0x00008000
#define TMC4671_ENABLE_IN_RAW_SHIFT 15
#define TMC4671_ENABLE_IN_RAW_FIELD ((RegisterField) {TMC4671_ENABLE_IN_RAW_MASK, TMC4671_ENABLE_IN_RAW_SHIFT, TMC4671_INPUTS_RAW, false})
#define TMC4671_STP_OF_DIRSTP_RAW_MASK 0x00010000
#define TMC4671_STP_OF_DIRSTP_RAW_SHIFT 16
#define TMC4671_STP_OF_DIRSTP_RAW_FIELD ((RegisterField) {TMC4671_STP_OF_DIRSTP_RAW_MASK, TMC4671_STP_OF_DIRSTP_RAW_SHIFT, TMC4671_INPUTS_RAW, false})
#define TMC4671_DIR_OF_DIRSTP_RAW_MASK 0x00020000
#define TMC4671_DIR_OF_DIRSTP_RAW_SHIFT 17
#define TMC4671_DIR_OF_DIRSTP_RAW_FIELD ((RegisterField) {TMC4671_DIR_OF_DIRSTP_RAW_MASK, TMC4671_DIR_OF_DIRSTP_RAW_SHIFT, TMC4671_INPUTS_RAW, false})
#define TMC4671_PWM_IN_RAW_MASK 0x00040000
#define TMC4671_PWM_IN_RAW_SHIFT 18
#define TMC4671_PWM_IN_RAW_FIELD ((RegisterField) {TMC4671_PWM_IN_RAW_MASK, TMC4671_PWM_IN_RAW_SHIFT, TMC4671_INPUTS_RAW, false})
#define TMC4671_HALL_UX_FILT_MASK 0x00100000
#define TMC4671_HALL_UX_FILT_SHIFT 20
#define TMC4671_HALL_UX_FILT_FIELD ((RegisterField) {TMC4671_HALL_UX_FILT_MASK, TMC4671_HALL_UX_FILT_SHIFT, TMC4671_INPUTS_RAW, false})
#define TMC4671_HALL_V_FILT_MASK 0x00200000
#define TMC4671_HALL_V_FILT_SHIFT 21
#define TMC4671_HALL_V_FILT_FIELD ((RegisterField) {TMC4671_HALL_V_FILT_MASK, TMC4671_HALL_V_FILT_SHIFT, TMC4671_INPUTS_RAW, false})
#define TMC4671_HALL_WY_FILT_MASK 0x00400000
#define TMC4671_HALL_WY_FILT_SHIFT 22
#define TMC4671_HALL_WY_FILT_FIELD ((RegisterField) {TMC4671_HALL_WY_FILT_MASK, TMC4671_HALL_WY_FILT_SHIFT, TMC4671_INPUTS_RAW, false})
#define TMC4671_PWM_IDLE_L_RAW_MASK 0x10000000
#define TMC4671_PWM_IDLE_L_RAW_SHIFT 28
#define TMC4671_PWM_IDLE_L_RAW_FIELD ((RegisterField) {TMC4671_PWM_IDLE_L_RAW_MASK, TMC4671_PWM_IDLE_L_RAW_SHIFT, TMC4671_INPUTS_RAW, false})
#define TMC4671_PWM_IDLE_H_RAW_MASK 0x20000000
#define TMC4671_PWM_IDLE_H_RAW_SHIFT 29
#define TMC4671_PWM_IDLE_H_RAW_FIELD ((RegisterField) {TMC4671_PWM_IDLE_H_RAW_MASK, TMC4671_PWM_IDLE_H_RAW_SHIFT, TMC4671_INPUTS_RAW, false})
#define TMC4671_OUTPUTS_RAW_0_MASK 0x00000001
#define TMC4671_OUTPUTS_RAW_0_SHIFT 0
#define TMC4671_OUTPUTS_RAW_0_FIELD ((RegisterField) {TMC4671_OUTPUTS_RAW_0_MASK, TMC4671_OUTPUTS_RAW_0_SHIFT, TMC4671_OUTPUTS_RAW, false})
#define TMC4671_OUTPUTS_RAW_1_MASK 0x00000002
#define TMC4671_OUTPUTS_RAW_1_SHIFT 1
#define TMC4671_OUTPUTS_RAW_1_FIELD ((RegisterField) {TMC4671_OUTPUTS_RAW_1_MASK, TMC4671_OUTPUTS_RAW_1_SHIFT, TMC4671_OUTPUTS_RAW, false})
#define TMC4671_OUTPUTS_RAW_2_MASK 0x00000004
#define TMC4671_OUTPUTS_RAW_2_SHIFT 2
#define TMC4671_OUTPUTS_RAW_2_FIELD ((RegisterField) {TMC4671_OUTPUTS_RAW_2_MASK, TMC4671_OUTPUTS_RAW_2_SHIFT, TMC4671_OUTPUTS_RAW, false})
#define TMC4671_OUTPUTS_RAW_3_MASK 0x00000008
#define TMC4671_OUTPUTS_RAW_3_SHIFT 3
#define TMC4671_OUTPUTS_RAW_3_FIELD ((RegisterField) {TMC4671_OUTPUTS_RAW_3_MASK, TMC4671_OUTPUTS_RAW_3_SHIFT, TMC4671_OUTPUTS_RAW, false})
#define TMC4671_OUTPUTS_RAW_4_MASK 0x00000010
#define TMC4671_OUTPUTS_RAW_4_SHIFT 4
#define TMC4671_OUTPUTS_RAW_4_FIELD ((RegisterField) {TMC4671_OUTPUTS_RAW_4_MASK, TMC4671_OUTPUTS_RAW_4_SHIFT, TMC4671_OUTPUTS_RAW, false})
#define TMC4671_OUTPUTS_RAW_5_MASK 0x00000020
#define TMC4671_OUTPUTS_RAW_5_SHIFT 5
#define TMC4671_OUTPUTS_RAW_5_FIELD ((RegisterField) {TMC4671_OUTPUTS_RAW_5_MASK, TMC4671_OUTPUTS_RAW_5_SHIFT, TMC4671_OUTPUTS_RAW, false})
#define TMC4671_OUTPUTS_RAW_6_MASK 0x00000040
#define TMC4671_OUTPUTS_RAW_6_SHIFT 6
#define TMC4671_OUTPUTS_RAW_6_FIELD ((RegisterField) {TMC4671_OUTPUTS_RAW_6_MASK, TMC4671_OUTPUTS_RAW_6_SHIFT, TMC4671_OUTPUTS_RAW, false})
#define TMC4671_OUTPUTS_RAW_7_MASK 0x00000080
#define TMC4671_OUTPUTS_RAW_7_SHIFT 7
#define TMC4671_OUTPUTS_RAW_7_FIELD ((RegisterField) {TMC4671_OUTPUTS_RAW_7_MASK, TMC4671_OUTPUTS_RAW_7_SHIFT, TMC4671_OUTPUTS_RAW, false})
#define TMC4671_STEP_WIDTH_MASK 0xFFFFFFFF
#define TMC4671_STEP_WIDTH_SHIFT 0
#define TMC4671_STEP_WIDTH_FIELD ((RegisterField) {TMC4671_STEP_WIDTH_MASK, TMC4671_STEP_WIDTH_SHIFT, TMC4671_STEP_WIDTH, true})
#define TMC4671_UART_BPS_MASK 0x03FFFFFF
#define TMC4671_UART_BPS_SHIFT 0
#define TMC4671_UART_BPS_FIELD ((RegisterField) {TMC4671_UART_BPS_MASK, TMC4671_UART_BPS_SHIFT, TMC4671_UART_BPS, false})
#define TMC4671_ADDR_A_MASK 0x000000FF
#define TMC4671_ADDR_A_SHIFT 0
#define TMC4671_ADDR_A_FIELD ((RegisterField) {TMC4671_ADDR_A_MASK, TMC4671_ADDR_A_SHIFT, TMC4671_UART_ADDRS, false})
#define TMC4671_ADDR_B_MASK 0x0000FF00
#define TMC4671_ADDR_B_SHIFT 8
#define TMC4671_ADDR_B_FIELD ((RegisterField) {TMC4671_ADDR_B_MASK, TMC4671_ADDR_B_SHIFT, TMC4671_UART_ADDRS, false})
#define TMC4671_ADDR_C_MASK 0x00FF0000
#define TMC4671_ADDR_C_SHIFT 16
#define TMC4671_ADDR_C_FIELD ((RegisterField) {TMC4671_ADDR_C_MASK, TMC4671_ADDR_C_SHIFT, TMC4671_UART_ADDRS, false})
#define TMC4671_ADDR_D_MASK 0xFF000000
#define TMC4671_ADDR_D_SHIFT 24
#define TMC4671_ADDR_D_FIELD ((RegisterField) {TMC4671_ADDR_D_MASK, TMC4671_ADDR_D_SHIFT, TMC4671_UART_ADDRS, false})
#define TMC4671_GPIO_DSADCI_CONFIG_0_MASK 0x00000001
#define TMC4671_GPIO_DSADCI_CONFIG_0_SHIFT 0
#define TMC4671_GPIO_DSADCI_CONFIG_0_FIELD ((RegisterField) {TMC4671_GPIO_DSADCI_CONFIG_0_MASK, TMC4671_GPIO_DSADCI_CONFIG_0_SHIFT, TMC4671_GPIO_dsADCI_CONFIG, false})
#define TMC4671_GPIO_DSADCI_CONFIG_1_MASK 0x00000002
#define TMC4671_GPIO_DSADCI_CONFIG_1_SHIFT 1
#define TMC4671_GPIO_DSADCI_CONFIG_1_FIELD ((RegisterField) {TMC4671_GPIO_DSADCI_CONFIG_1_MASK, TMC4671_GPIO_DSADCI_CONFIG_1_SHIFT, TMC4671_GPIO_dsADCI_CONFIG, false})
#define TMC4671_GPIO_DSADCI_CONFIG_2_MASK 0x00000004
#define TMC4671_GPIO_DSADCI_CONFIG_2_SHIFT 2
#define TMC4671_GPIO_DSADCI_CONFIG_2_FIELD ((RegisterField) {TMC4671_GPIO_DSADCI_CONFIG_2_MASK, TMC4671_GPIO_DSADCI_CONFIG_2_SHIFT, TMC4671_GPIO_dsADCI_CONFIG, false})
#define TMC4671_GPIO_DSADCI_CONFIG_3_MASK 0x00000008
#define TMC4671_GPIO_DSADCI_CONFIG_3_SHIFT 3
#define TMC4671_GPIO_DSADCI_CONFIG_3_FIELD ((RegisterField) {TMC4671_GPIO_DSADCI_CONFIG_3_MASK, TMC4671_GPIO_DSADCI_CONFIG_3_SHIFT, TMC4671_GPIO_dsADCI_CONFIG, false})
#define TMC4671_GPIO_DSADCI_CONFIG_4_MASK 0x00000010
#define TMC4671_GPIO_DSADCI_CONFIG_4_SHIFT 4
#define TMC4671_GPIO_DSADCI_CONFIG_4_FIELD ((RegisterField) {TMC4671_GPIO_DSADCI_CONFIG_4_MASK, TMC4671_GPIO_DSADCI_CONFIG_4_SHIFT, TMC4671_GPIO_dsADCI_CONFIG, false})
#define TMC4671_GPIO_DSADCI_CONFIG_5_MASK 0x00000020
#define TMC4671_GPIO_DSADCI_CONFIG_5_SHIFT 5
#define TMC4671_GPIO_DSADCI_CONFIG_5_FIELD ((RegisterField) {TMC4671_GPIO_DSADCI_CONFIG_5_MASK, TMC4671_GPIO_DSADCI_CONFIG_5_SHIFT, TMC4671_GPIO_dsADCI_CONFIG, false})
#define TMC4671_GPIO_DSADCI_CONFIG_6_MASK 0x00000040
#define TMC4671_GPIO_DSADCI_CONFIG_6_SHIFT 6
#define TMC4671_GPIO_DSADCI_CONFIG_6_FIELD ((RegisterField) {TMC4671_GPIO_DSADCI_CONFIG_6_MASK, TMC4671_GPIO_DSADCI_CONFIG_6_SHIFT, TMC4671_GPIO_dsADCI_CONFIG, false})
#define TMC4671_GPO_MASK 0x00FF0000
#define TMC4671_GPO_SHIFT 16
#define TMC4671_GPO_FIELD ((RegisterField) {TMC4671_GPO_MASK, TMC4671_GPO_SHIFT, TMC4671_GPIO_dsADCI_CONFIG, false})
#define TMC4671_GPI_MASK 0xFF000000
#define TMC4671_GPI_SHIFT 24
#define TMC4671_GPI_FIELD ((RegisterField) {TMC4671_GPI_MASK, TMC4671_GPI_SHIFT, TMC4671_GPIO_dsADCI_CONFIG, false})
#define TMC4671_STATUS_FLAGS_0_MASK 0x00000001
#define TMC4671_STATUS_FLAGS_0_SHIFT 0
#define TMC4671_STATUS_FLAGS_0_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_0_MASK, TMC4671_STATUS_FLAGS_0_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_1_MASK 0x00000002
#define TMC4671_STATUS_FLAGS_1_SHIFT 1
#define TMC4671_STATUS_FLAGS_1_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_1_MASK, TMC4671_STATUS_FLAGS_1_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_2_MASK 0x00000004
#define TMC4671_STATUS_FLAGS_2_SHIFT 2
#define TMC4671_STATUS_FLAGS_2_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_2_MASK, TMC4671_STATUS_FLAGS_2_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_3_MASK 0x00000008
#define TMC4671_STATUS_FLAGS_3_SHIFT 3
#define TMC4671_STATUS_FLAGS_3_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_3_MASK, TMC4671_STATUS_FLAGS_3_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_4_MASK 0x00000010
#define TMC4671_STATUS_FLAGS_4_SHIFT 4
#define TMC4671_STATUS_FLAGS_4_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_4_MASK, TMC4671_STATUS_FLAGS_4_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_5_MASK 0x00000020
#define TMC4671_STATUS_FLAGS_5_SHIFT 5
#define TMC4671_STATUS_FLAGS_5_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_5_MASK, TMC4671_STATUS_FLAGS_5_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_6_MASK 0x00000040
#define TMC4671_STATUS_FLAGS_6_SHIFT 6
#define TMC4671_STATUS_FLAGS_6_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_6_MASK, TMC4671_STATUS_FLAGS_6_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_7_MASK 0x00000080
#define TMC4671_STATUS_FLAGS_7_SHIFT 7
#define TMC4671_STATUS_FLAGS_7_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_7_MASK, TMC4671_STATUS_FLAGS_7_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_8_MASK 0x00000100
#define TMC4671_STATUS_FLAGS_8_SHIFT 8
#define TMC4671_STATUS_FLAGS_8_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_8_MASK, TMC4671_STATUS_FLAGS_8_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_9_MASK 0x00000200
#define TMC4671_STATUS_FLAGS_9_SHIFT 9
#define TMC4671_STATUS_FLAGS_9_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_9_MASK, TMC4671_STATUS_FLAGS_9_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_10_MASK 0x00000400
#define TMC4671_STATUS_FLAGS_10_SHIFT 10
#define TMC4671_STATUS_FLAGS_10_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_10_MASK, TMC4671_STATUS_FLAGS_10_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_11_MASK 0x00000800
#define TMC4671_STATUS_FLAGS_11_SHIFT 11
#define TMC4671_STATUS_FLAGS_11_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_11_MASK, TMC4671_STATUS_FLAGS_11_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_12_MASK 0x00001000
#define TMC4671_STATUS_FLAGS_12_SHIFT 12
#define TMC4671_STATUS_FLAGS_12_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_12_MASK, TMC4671_STATUS_FLAGS_12_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_13_MASK 0x00002000
#define TMC4671_STATUS_FLAGS_13_SHIFT 13
#define TMC4671_STATUS_FLAGS_13_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_13_MASK, TMC4671_STATUS_FLAGS_13_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_14_MASK 0x00004000
#define TMC4671_STATUS_FLAGS_14_SHIFT 14
#define TMC4671_STATUS_FLAGS_14_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_14_MASK, TMC4671_STATUS_FLAGS_14_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_15_MASK 0x00008000
#define TMC4671_STATUS_FLAGS_15_SHIFT 15
#define TMC4671_STATUS_FLAGS_15_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_15_MASK, TMC4671_STATUS_FLAGS_15_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_16_MASK 0x00010000
#define TMC4671_STATUS_FLAGS_16_SHIFT 16
#define TMC4671_STATUS_FLAGS_16_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_16_MASK, TMC4671_STATUS_FLAGS_16_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_17_MASK 0x00020000
#define TMC4671_STATUS_FLAGS_17_SHIFT 17
#define TMC4671_STATUS_FLAGS_17_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_17_MASK, TMC4671_STATUS_FLAGS_17_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_18_MASK 0x00040000
#define TMC4671_STATUS_FLAGS_18_SHIFT 18
#define TMC4671_STATUS_FLAGS_18_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_18_MASK, TMC4671_STATUS_FLAGS_18_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_19_MASK 0x00080000
#define TMC4671_STATUS_FLAGS_19_SHIFT 19
#define TMC4671_STATUS_FLAGS_19_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_19_MASK, TMC4671_STATUS_FLAGS_19_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_20_MASK 0x00100000
#define TMC4671_STATUS_FLAGS_20_SHIFT 20
#define TMC4671_STATUS_FLAGS_20_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_20_MASK, TMC4671_STATUS_FLAGS_20_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_21_MASK 0x00200000
#define TMC4671_STATUS_FLAGS_21_SHIFT 21
#define TMC4671_STATUS_FLAGS_21_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_21_MASK, TMC4671_STATUS_FLAGS_21_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_22_MASK 0x00400000
#define TMC4671_STATUS_FLAGS_22_SHIFT 22
#define TMC4671_STATUS_FLAGS_22_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_22_MASK, TMC4671_STATUS_FLAGS_22_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_23_MASK 0x00800000
#define TMC4671_STATUS_FLAGS_23_SHIFT 23
#define TMC4671_STATUS_FLAGS_23_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_23_MASK, TMC4671_STATUS_FLAGS_23_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_24_MASK 0x01000000
#define TMC4671_STATUS_FLAGS_24_SHIFT 24
#define TMC4671_STATUS_FLAGS_24_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_24_MASK, TMC4671_STATUS_FLAGS_24_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_25_MASK 0x02000000
#define TMC4671_STATUS_FLAGS_25_SHIFT 25
#define TMC4671_STATUS_FLAGS_25_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_25_MASK, TMC4671_STATUS_FLAGS_25_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_26_MASK 0x04000000
#define TMC4671_STATUS_FLAGS_26_SHIFT 26
#define TMC4671_STATUS_FLAGS_26_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_26_MASK, TMC4671_STATUS_FLAGS_26_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_27_MASK 0x08000000
#define TMC4671_STATUS_FLAGS_27_SHIFT 27
#define TMC4671_STATUS_FLAGS_27_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_27_MASK, TMC4671_STATUS_FLAGS_27_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_28_MASK 0x10000000
#define TMC4671_STATUS_FLAGS_28_SHIFT 28
#define TMC4671_STATUS_FLAGS_28_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_28_MASK, TMC4671_STATUS_FLAGS_28_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_29_MASK 0x20000000
#define TMC4671_STATUS_FLAGS_29_SHIFT 29
#define TMC4671_STATUS_FLAGS_29_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_29_MASK, TMC4671_STATUS_FLAGS_29_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_30_MASK 0x40000000
#define TMC4671_STATUS_FLAGS_30_SHIFT 30
#define TMC4671_STATUS_FLAGS_30_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_30_MASK, TMC4671_STATUS_FLAGS_30_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_STATUS_FLAGS_31_MASK 0x80000000
#define TMC4671_STATUS_FLAGS_31_SHIFT 31
#define TMC4671_STATUS_FLAGS_31_FIELD ((RegisterField) {TMC4671_STATUS_FLAGS_31_MASK, TMC4671_STATUS_FLAGS_31_SHIFT, TMC4671_STATUS_FLAGS, false})
#define TMC4671_WARNING_MASK_MASK 0xFFFFFFFF
#define TMC4671_WARNING_MASK_SHIFT 0
#define TMC4671_WARNING_MASK_FIELD ((RegisterField) {TMC4671_WARNING_MASK_MASK, TMC4671_WARNING_MASK_SHIFT, TMC4671_STATUS_MASK, false})
#endif /* TMC4671_HW_ABSTRACTION_H_ */