drivers: stepper: tmc5041: use tmc5xxx generalized macros
This commit refactors tmc5041 driver to use tmc5xxx generalized macros Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
This commit is contained in:
parent
f3a868ad90
commit
6098b2f673
2 changed files with 31 additions and 31 deletions
|
@ -63,7 +63,7 @@ static int tmc5041_write(const struct device *dev, const uint8_t reg_addr, const
|
|||
|
||||
k_sem_take(&data->sem, K_FOREVER);
|
||||
|
||||
err = tmc_spi_write_register(&bus, TMC5041_WRITE_BIT, reg_addr, reg_val);
|
||||
err = tmc_spi_write_register(&bus, TMC5XXX_WRITE_BIT, reg_addr, reg_val);
|
||||
|
||||
k_sem_give(&data->sem);
|
||||
|
||||
|
@ -83,7 +83,7 @@ static int tmc5041_read(const struct device *dev, const uint8_t reg_addr, uint32
|
|||
|
||||
k_sem_take(&data->sem, K_FOREVER);
|
||||
|
||||
err = tmc_spi_read_register(&bus, TMC5041_ADDRESS_MASK, reg_addr, reg_val);
|
||||
err = tmc_spi_read_register(&bus, TMC5XXX_ADDRESS_MASK, reg_addr, reg_val);
|
||||
|
||||
k_sem_give(&data->sem);
|
||||
|
||||
|
@ -117,7 +117,7 @@ static int stallguard_enable(const struct device *dev, const bool enable)
|
|||
}
|
||||
|
||||
if (enable) {
|
||||
reg_value |= TMC5041_SW_MODE_SG_STOP_ENABLE;
|
||||
reg_value |= TMC5XXX_SW_MODE_SG_STOP_ENABLE;
|
||||
|
||||
int32_t actual_velocity;
|
||||
|
||||
|
@ -136,7 +136,7 @@ static int stallguard_enable(const struct device *dev, const bool enable)
|
|||
return -EAGAIN;
|
||||
}
|
||||
} else {
|
||||
reg_value &= ~TMC5041_SW_MODE_SG_STOP_ENABLE;
|
||||
reg_value &= ~TMC5XXX_SW_MODE_SG_STOP_ENABLE;
|
||||
}
|
||||
err = tmc5041_write(config->controller, TMC5041_SWMODE(config->index), reg_value);
|
||||
if (err) {
|
||||
|
@ -193,11 +193,11 @@ static void rampstat_work_handler(struct k_work *work)
|
|||
|
||||
tmc5041_read(stepper_config->controller, TMC5041_DRVSTATUS(stepper_config->index),
|
||||
&drv_status);
|
||||
if (FIELD_GET(TMC5041_DRV_STATUS_SG_STATUS_MASK, drv_status) == 1U) {
|
||||
if (FIELD_GET(TMC5XXX_DRV_STATUS_SG_STATUS_MASK, drv_status) == 1U) {
|
||||
LOG_INF("%s: Stall detected", stepper_data->stepper->name);
|
||||
err = tmc5041_write(stepper_config->controller,
|
||||
TMC5041_RAMPMODE(stepper_config->index),
|
||||
TMC5041_RAMPMODE_HOLD_MODE);
|
||||
TMC5XXX_RAMPMODE_HOLD_MODE);
|
||||
if (err != 0) {
|
||||
LOG_ERR("%s: Failed to stop motor", stepper_data->stepper->name);
|
||||
return;
|
||||
|
@ -213,29 +213,29 @@ static void rampstat_work_handler(struct k_work *work)
|
|||
return;
|
||||
}
|
||||
|
||||
const uint8_t ramp_stat_values = FIELD_GET(TMC5041_RAMPSTAT_INT_MASK, rampstat_value);
|
||||
const uint8_t ramp_stat_values = FIELD_GET(TMC5XXX_RAMPSTAT_INT_MASK, rampstat_value);
|
||||
|
||||
if (ramp_stat_values > 0) {
|
||||
switch (ramp_stat_values) {
|
||||
|
||||
case TMC5041_STOP_LEFT_EVENT:
|
||||
case TMC5XXX_STOP_LEFT_EVENT:
|
||||
LOG_DBG("RAMPSTAT %s:Left end-stop detected", stepper_data->stepper->name);
|
||||
execute_callback(stepper_data->stepper,
|
||||
STEPPER_EVENT_LEFT_END_STOP_DETECTED);
|
||||
break;
|
||||
|
||||
case TMC5041_STOP_RIGHT_EVENT:
|
||||
case TMC5XXX_STOP_RIGHT_EVENT:
|
||||
LOG_DBG("RAMPSTAT %s:Right end-stop detected", stepper_data->stepper->name);
|
||||
execute_callback(stepper_data->stepper,
|
||||
STEPPER_EVENT_RIGHT_END_STOP_DETECTED);
|
||||
break;
|
||||
|
||||
case TMC5041_POS_REACHED_EVENT:
|
||||
case TMC5XXX_POS_REACHED_EVENT:
|
||||
LOG_DBG("RAMPSTAT %s:Position reached", stepper_data->stepper->name);
|
||||
execute_callback(stepper_data->stepper, STEPPER_EVENT_STEPS_COMPLETED);
|
||||
break;
|
||||
|
||||
case TMC5041_STOP_SG_EVENT:
|
||||
case TMC5XXX_STOP_SG_EVENT:
|
||||
LOG_DBG("RAMPSTAT %s:Stall detected", stepper_data->stepper->name);
|
||||
stallguard_enable(stepper_data->stepper, false);
|
||||
execute_callback(stepper_data->stepper, STEPPER_EVENT_STALL_DETECTED);
|
||||
|
@ -266,9 +266,9 @@ static int tmc5041_stepper_enable(const struct device *dev, const bool enable)
|
|||
}
|
||||
|
||||
if (enable) {
|
||||
reg_value |= TMC5041_CHOPCONF_DRV_ENABLE_MASK;
|
||||
reg_value |= TMC5XXX_CHOPCONF_DRV_ENABLE_MASK;
|
||||
} else {
|
||||
reg_value &= ~TMC5041_CHOPCONF_DRV_ENABLE_MASK;
|
||||
reg_value &= ~TMC5XXX_CHOPCONF_DRV_ENABLE_MASK;
|
||||
}
|
||||
|
||||
err = tmc5041_write(config->controller, TMC5041_CHOPCONF(config->index), reg_value);
|
||||
|
@ -291,7 +291,7 @@ static int tmc5041_stepper_is_moving(const struct device *dev, bool *is_moving)
|
|||
return -EIO;
|
||||
}
|
||||
|
||||
*is_moving = (FIELD_GET(TMC5041_DRV_STATUS_STST_BIT, reg_value) != 1U);
|
||||
*is_moving = (FIELD_GET(TMC5XXX_DRV_STATUS_STST_BIT, reg_value) != 1U);
|
||||
LOG_DBG("Stepper motor controller %s is moving: %d", dev->name, *is_moving);
|
||||
return 0;
|
||||
}
|
||||
|
@ -318,7 +318,7 @@ static int tmc5041_stepper_move(const struct device *dev, const int32_t steps)
|
|||
int32_t target_position = position + steps;
|
||||
|
||||
err = tmc5041_write(config->controller, TMC5041_RAMPMODE(config->index),
|
||||
TMC5041_RAMPMODE_POSITIONING_MODE);
|
||||
TMC5XXX_RAMPMODE_POSITIONING_MODE);
|
||||
if (err != 0) {
|
||||
return -EIO;
|
||||
}
|
||||
|
@ -373,9 +373,9 @@ static int tmc5041_stepper_set_micro_step_res(const struct device *dev,
|
|||
return -EIO;
|
||||
}
|
||||
|
||||
reg_value &= ~TMC5041_CHOPCONF_MRES_MASK;
|
||||
reg_value &= ~TMC5XXX_CHOPCONF_MRES_MASK;
|
||||
reg_value |= ((MICRO_STEP_RES_INDEX(STEPPER_MICRO_STEP_256) - LOG2(res))
|
||||
<< TMC5041_CHOPCONF_MRES_SHIFT);
|
||||
<< TMC5XXX_CHOPCONF_MRES_SHIFT);
|
||||
|
||||
err = tmc5041_write(config->controller, TMC5041_CHOPCONF(config->index), reg_value);
|
||||
if (err != 0) {
|
||||
|
@ -398,8 +398,8 @@ static int tmc5041_stepper_get_micro_step_res(const struct device *dev,
|
|||
if (err != 0) {
|
||||
return -EIO;
|
||||
}
|
||||
reg_value &= TMC5041_CHOPCONF_MRES_MASK;
|
||||
reg_value >>= TMC5041_CHOPCONF_MRES_SHIFT;
|
||||
reg_value &= TMC5XXX_CHOPCONF_MRES_MASK;
|
||||
reg_value >>= TMC5XXX_CHOPCONF_MRES_SHIFT;
|
||||
*res = (1 << (MICRO_STEP_RES_INDEX(STEPPER_MICRO_STEP_256) - reg_value));
|
||||
LOG_DBG("Stepper motor controller %s get micro step resolution: %d", dev->name, *res);
|
||||
return 0;
|
||||
|
@ -411,7 +411,7 @@ static int tmc5041_stepper_set_actual_position(const struct device *dev, const i
|
|||
int err;
|
||||
|
||||
err = tmc5041_write(config->controller, TMC5041_RAMPMODE(config->index),
|
||||
TMC5041_RAMPMODE_HOLD_MODE);
|
||||
TMC5XXX_RAMPMODE_HOLD_MODE);
|
||||
if (err != 0) {
|
||||
return -EIO;
|
||||
}
|
||||
|
@ -449,7 +449,7 @@ static int tmc5041_stepper_set_target_position(const struct device *dev, const i
|
|||
}
|
||||
|
||||
err = tmc5041_write(config->controller, TMC5041_RAMPMODE(config->index),
|
||||
TMC5041_RAMPMODE_POSITIONING_MODE);
|
||||
TMC5XXX_RAMPMODE_POSITIONING_MODE);
|
||||
if (err != 0) {
|
||||
return -EIO;
|
||||
}
|
||||
|
@ -493,7 +493,7 @@ static int tmc5041_stepper_enable_constant_velocity_mode(const struct device *de
|
|||
switch (direction) {
|
||||
case STEPPER_DIRECTION_POSITIVE:
|
||||
err = tmc5041_write(config->controller, TMC5041_RAMPMODE(config->index),
|
||||
TMC5041_RAMPMODE_POSITIVE_VELOCITY_MODE);
|
||||
TMC5XXX_RAMPMODE_POSITIVE_VELOCITY_MODE);
|
||||
if (err != 0) {
|
||||
return -EIO;
|
||||
}
|
||||
|
@ -505,7 +505,7 @@ static int tmc5041_stepper_enable_constant_velocity_mode(const struct device *de
|
|||
|
||||
case STEPPER_DIRECTION_NEGATIVE:
|
||||
err = tmc5041_write(config->controller, TMC5041_RAMPMODE(config->index),
|
||||
TMC5041_RAMPMODE_NEGATIVE_VELOCITY_MODE);
|
||||
TMC5XXX_RAMPMODE_NEGATIVE_VELOCITY_MODE);
|
||||
if (err != 0) {
|
||||
return -EIO;
|
||||
}
|
||||
|
@ -611,7 +611,7 @@ static int tmc5041_init(const struct device *dev)
|
|||
|
||||
/* Init non motor-index specific registers here. */
|
||||
LOG_DBG("GCONF: %d", config->gconf);
|
||||
err = tmc5041_write(dev, TMC5041_GCONF, config->gconf);
|
||||
err = tmc5041_write(dev, TMC5XXX_GCONF, config->gconf);
|
||||
if (err != 0) {
|
||||
return -EIO;
|
||||
}
|
||||
|
@ -619,7 +619,7 @@ static int tmc5041_init(const struct device *dev)
|
|||
/* Read GSTAT register values to clear any errors SPI Datagram. */
|
||||
uint32_t gstat_value;
|
||||
|
||||
err = tmc5041_read(dev, TMC5041_GSTAT, &gstat_value);
|
||||
err = tmc5041_read(dev, TMC5XXX_GSTAT, &gstat_value);
|
||||
if (err != 0) {
|
||||
return -EIO;
|
||||
}
|
||||
|
@ -647,8 +647,8 @@ static int tmc5041_stepper_init(const struct device *dev)
|
|||
|
||||
LOG_DBG("Setting stall guard to %d with delay %d ms", stepper_config->sg_threshold,
|
||||
stepper_config->sg_velocity_check_interval_ms);
|
||||
if (!IN_RANGE(stepper_config->sg_threshold, TMC5041_SG_MIN_VALUE,
|
||||
TMC5041_SG_MAX_VALUE)) {
|
||||
if (!IN_RANGE(stepper_config->sg_threshold, TMC5XXX_SG_MIN_VALUE,
|
||||
TMC5XXX_SG_MAX_VALUE)) {
|
||||
LOG_ERR("Stallguard threshold out of range");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
@ -657,7 +657,7 @@ static int tmc5041_stepper_init(const struct device *dev)
|
|||
|
||||
err = tmc5041_write(
|
||||
stepper_config->controller, TMC5041_COOLCONF(stepper_config->index),
|
||||
stall_guard_threshold << TMC5041_COOLCONF_SG2_THRESHOLD_VALUE_SHIFT);
|
||||
stall_guard_threshold << TMC5XXX_COOLCONF_SG2_THRESHOLD_VALUE_SHIFT);
|
||||
if (err != 0) {
|
||||
return -EIO;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue