Commit 08dd7c51 authored by Jilay Pandya's avatar Jilay Pandya Committed by Benjamin Cabé
Browse files

drivers: stepper: tmc5xxx: introduce stop function

Introduce stop function in tmc5xxx

Signed-off-by: default avatarJilay Pandya <jilay.pandya@outlook.com>
parent 2aca0d3e
Loading
Loading
Loading
Loading
+20 −1
Changes for drivers/stepper/adi_tmc/tmc50xx.c: 20 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -176,7 +176,6 @@ static void stallguard_work_handler(struct k_work *work)
	}
}


static void execute_callback(const struct device *dev, const enum stepper_event event)
{
	struct tmc50xx_stepper_data *data = dev->data;
@@ -543,6 +542,25 @@ static int tmc50xx_stepper_run(const struct device *dev, const enum stepper_dire
	return 0;
}

static int tmc50xx_stepper_stop(const struct device *dev)
{
	const struct tmc50xx_stepper_config *config = dev->config;
	int err;

	err = tmc50xx_write(config->controller, TMC50XX_RAMPMODE(config->index),
			    TMC5XXX_RAMPMODE_POSITIVE_VELOCITY_MODE);
	if (err != 0) {
		return -EIO;
	}

	err = tmc50xx_write(config->controller, TMC50XX_VMAX(config->index), 0);
	if (err != 0) {
		return -EIO;
	}

	return 0;
}

#ifdef CONFIG_STEPPER_ADI_TMC50XX_RAMP_GEN

int tmc50xx_stepper_set_ramp(const struct device *dev,
@@ -704,6 +722,7 @@ static DEVICE_API(stepper, tmc50xx_stepper_api) = {
	.get_actual_position = tmc50xx_stepper_get_actual_position,
	.move_to = tmc50xx_stepper_move_to,
	.run = tmc50xx_stepper_run,
	.stop = tmc50xx_stepper_stop,
	.set_event_callback = tmc50xx_stepper_set_event_callback,
};

+18 −0
Changes for drivers/stepper/adi_tmc/tmc51xx/tmc51xx.c: 18 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -781,6 +781,23 @@ static int tmc51xx_init(const struct device *dev)
	return 0;
}

static int tmc51xx_stepper_stop(const struct device *dev)
{
	int err;

	err = tmc51xx_write(dev, TMC51XX_RAMPMODE, TMC5XXX_RAMPMODE_POSITIVE_VELOCITY_MODE);
	if (err != 0) {
		return -EIO;
	}

	err = tmc51xx_write(dev, TMC51XX_VMAX, 0);
	if (err != 0) {
		return -EIO;
	}

	return 0;
}

static DEVICE_API(stepper, tmc51xx_api) = {
	.enable = tmc51xx_stepper_enable,
	.disable = tmc51xx_stepper_disable,
@@ -792,6 +809,7 @@ static DEVICE_API(stepper, tmc51xx_api) = {
	.get_actual_position = tmc51xx_stepper_get_actual_position,
	.move_to = tmc51xx_stepper_move_to,
	.run = tmc51xx_stepper_run,
	.stop = tmc51xx_stepper_stop,
	.set_event_callback = tmc51xx_stepper_set_event_callback,
};