Commit Graph

44 Commits

Author SHA1 Message Date
Fabian Blatz
0ac9a6c512 drivers: stepper: drv8424: Use step_dir common code
Adapt the drv8424 driver to use the common step dir interface.

Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
2025-01-01 02:04:53 +01:00
Fabian Blatz
39dbd49874 drivers: stepper: step_dir: Fix actual position increment
Address issue where the timing source is not stopped upon step completion
and not adjusting the actual position after performing a step.

Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
2025-01-01 02:04:53 +01:00
Fabian Blatz
9e6366a01e drivers: stepper: step_dir: Add fallback for dual-edge-step
Adds a fallback for the dual-edge-step property in the step dir common
code. Without this drivers using the common code would have to declare the
dual-edge-step property so it can default to false when not set, even if
the IC does not support adjusting it.

Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
2025-01-01 02:04:53 +01:00
Fabian Blatz
0b124a2ff6 drivers: stepper: Add timing source for step dir stepper
Adds a timing source api which is used by the step-dir stepper common code.
This allows the reusable common code to configure different timing sources,
since the initial delayable work implementation was inacurate for higher
maximum velocities.

Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
2024-12-28 04:37:05 +01:00
Fabian Blatz
fc2567939b drivers: stepper: shell: Use shell_device_filter
Use the shell_device_filter utils method and leverage the new api classing
to only suggest stepper devices via tab-complete within the shell.

Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
2024-12-27 21:18:04 +01:00
Jilay Pandya
2382d239d7 drivers: stepper: gpio: return -ECANCELED from move operations
return -ECANCELED when move operations are called with stepper not enabled

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-12-23 22:00:35 +01:00
Jilay Pandya
59064a409e dts: bindings: stepper: add en-gpios to common stepper-controller.yaml
- rename enable-gpios to en-gpios in adi,tmc2209
- place en-gpios in common stepper-controller.yaml

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-12-23 17:10:06 +01:00
Sarah Renkhoff
79d62944b1 drivers: stepper: Add driver for DRV8424 stepper motor controller
Adds a step/dir stepper driver for the drv8424 stepper driver.

Signed-off-by: Sarah Renkhoff <sarah.renkhoff@navimatix.de>
2024-12-19 15:21:44 +01:00
Jilay Pandya
f6b24d6240 drivers: stepper: tmc: add CONFIG_STEPPER_ADI_TMC5041_RAMP_GEN
rename CONFIG_STEPPER_ADI_RAMP_GEN to CONFIG_STEPPER_ADI_TMC5041_RAMP_GEN

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-12-18 20:32:24 +01:00
Jilay Pandya
eef92b8719 drivers: stepper: tmc: create rampstat Kconfig template
create rampstat Kconfig template to enable respective tmc drivers to
reuse the common configurations

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-12-18 20:32:24 +01:00
Yishai Jaffe
1b4cef325b shell: use shell_device_get_binding
Use shell_device_get_binding() instead of device_get_binding() so that
we get the device based on its name and in addition by its label.

Signed-off-by: Yishai Jaffe <yishai1999@gmail.com>
2024-12-18 15:32:10 +01:00
Jilay Pandya
d5ae99a551 drivers: stepper: step_dir: rename direction_gpios to dir_gpios
for the brevity renaming direction_gpios to dir_gpios since STEP/DIR
interface is quite an established term in context of stepper controllers.

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-12-11 07:58:34 +01:00
Jilay Pandya
5a2c6bf66c drivers: stepper: adi: tmc2209 allow instantiation of tmc2209 without msx
The current implementation of tmc2209 driver does not allow instantiation
of the driver without configuring msx pins.

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-12-11 07:58:34 +01:00
Fabian Blatz
6e799979d8 drivers: stepper: Add adi,tmc2209 driver
Adds the tmc2209 driver using the step dir interface.

Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
2024-12-07 16:01:41 +00:00
Fabian Blatz
ba2aee24c9 drivers: stepper: Add step direction stepper common binding
Adds a step direction binding that can be used with any stepper that
implements said control interface to cut down on boilerplate code.

Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
2024-12-07 16:01:41 +00:00
Jilay Pandya
030444822e drivers: stepper: api: rename stepper_set_target_pos to stepper_move_to
rename stepper_set_target_position to stepper_move_to in following files:
- doc/hardware/peripherals/stepper.rst
- doc/releases/migration-guide-4.1.rst
- drivers/stepper/adi_tmc/adi_tmc5041_stepper_controller.c
- drivers/stepper/fake_stepper_controller.c
- drivers/stepper/gpio_stepper_controller.c
- drivers/stepper/stepper_shell.c
- include/zephyr/drivers/stepper.h
- include/zephyr/drivers/stepper/stepper_fake.h
- tests/drivers/stepper/shell/src/main.c
- tests/drivers/stepper/stepper_api/src/main.c

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-12-06 22:21:44 +01:00
Jilay Pandya
05e94ed234 drivers: stepper: api: rename stepper_move to stepper_move_by
rename stepper_move to stepper_move_by in following files:
- include/zephyr/drivers/stepper.h
- include/zephyr/drivers/stepper/stepper_fake.h
- doc/hardware/peripherals/stepper.rst
- doc/releases/migration-guide-4.1.rst
- drivers/stepper/adi_tmc/adi_tmc5041_stepper_controller.c
- drivers/stepper/fake_stepper_controller.c
- drivers/stepper/gpio_stepper_controller.c
- drivers/stepper/stepper_shell.c
- tests/drivers/stepper/shell/src/main.c

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-12-06 22:21:44 +01:00
Jilay Pandya
af68d97507 drivers: stepper: api: rename enable_constant_velocity_mode to run
rename enable_constant_velocity_mode to run in following files:
- include/zephyr/drivers/stepper.h
- include/zephyr/drivers/stepper/stepper_fake.h
- doc/hardware/peripherals/stepper.rst
- doc/releases/migration-guide-4.1.rst
- drivers/stepper/adi_tmc/adi_tmc5041_stepper_controller.c
- drivers/stepper/fake_stepper_controller.c
- drivers/stepper/gpio_stepper_controller.c
- drivers/stepper/stepper_shell.c
- tests/drivers/stepper/shell/src/main.c

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-12-04 09:24:05 +01:00
Pieter De Gendt
c0adf726ff drivers: stepper: Place API into iterable section
Add wrapper DEVICE_API macro to all stepper_driver_api instances.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2024-12-02 22:08:07 +00:00
Jilay Pandya
719cd2639c drivers: stepper: refactor set_actual_position to set_reference_position
This commit refactos set_actual_position to set_reference_position.
stepper_set_reference_position is more apt in regards to what this func
actually does

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-11-27 10:29:47 +01:00
Jilay Pandya
6d87bd65ae drivers: stepper: fix fake stepper controller cid issues
Fix: Write to const-qualified field. (WRITE_CONST_FIELD)
- #81915, #81920, #81922, #81924, #81932, #81940, #81941
- #81946, #81947, #81959, #81961, #81970, #81973, #81977

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-11-26 10:37:35 +00:00
Jilay Pandya
92fce644e5 drivers: stepper: tmc5041: fix cid issues
fix cid issues related to unchecked return values.

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-11-26 10:37:27 +00:00
Jilay Pandya
6098b2f673 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>
2024-11-19 09:49:53 -05:00
Jilay Pandya
f3a868ad90 drivers: stepper: tmc5xxx: generalized macros for tmc5xxx
This commit generalizes macros which are common to tmc5xxx drivers

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-11-19 09:49:53 -05:00
Jilay Pandya
1e142b0001 drivers: stepper: shell: fix null pointer check
This commit introduces null pointer check in print_callback

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-11-18 19:37:37 -05:00
Jilay Pandya
195c2c1360 drivers: stepper: fix stepper_set_event_callback c prototype and definition
This commit fixes incorrect c prototype and defintion of
stepper_set_callback to stepper_set_event_callback

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-11-18 19:37:37 -05:00
Jilay Pandya
843625a29b drivers: stepper: change gpio-stepper dt-compatible
This commit changes compatible of gpio-stepper in driver

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-11-18 19:37:37 -05:00
Jilay Pandya
df3b76b55a drivers: stepper: gpio: introduce power down coils function
power down coils when gpio stepper is disabled

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-11-18 19:37:37 -05:00
Jilay Pandya
5032d8ede8 drivers: stepper: add common helper header for tmc5xxx functions
This commit adds a common helper header for tmc5xxx driver

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-11-16 15:22:24 -05:00
Jilay Pandya
0687522cd4 drivers: stepper: introduce invert-direction property to gpio-stepper
This commit introduces invert-direction property to gpio-stepper

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-10-26 11:29:57 +02:00
Jilay Pandya
367f853a4c drivers: stepper: rename compatible of gpio-stepper
This commit fixes minor copyright issues and corrects the compatible of
gpio-stepper with the vendor name as zephyr

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-10-26 11:29:57 +02:00
Jilay Pandya
271aeaf5f9 tests: drivers: stepper: stepper_api: test cb user_data
This commit does the following:
1. tests set_callback and user_data
2. fixes the api as well as the drivers by passing user_data
back to the set callback

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-10-22 22:46:26 -04:00
Jilay Pandya
ecada895da drivers: stepper: update drivers as per the api changes
This commit deprecates passing of async signal in functions such as move
and set_target_position. As per the new API, the async signal has to be
set via set_async_signal.

If RAMPSTAT_POLL is activated then enable_constant_velocity_mode would be
able to raise signals like END_STOP_DETECTED & SENSORLESS_STALL_DETECTED.
This commit also adjusts shell script in order to test these signals.

Signed-off-by: Jilay Pandya <jilay.pandya@zeiss.com>
2024-10-15 13:53:16 +02:00
Jilay Pandya
4f18d64b30 drivers: stepper: api: introduce stepper_set_event_callback function
- Refactor stepper_signal_result to stepper_event.
- Introduce stepper_set_event_callback function
- Deprecate k_poll_signal

Signed-off-by: Jilay Pandya <jilay.pandya@zeiss.com>
2024-10-15 13:53:16 +02:00
Jilay Pandya
9cf1269e0e shell: stepper: add further stepper signals to shell
This commit adds further signals to stepper shell
- STEPPER_SIGNAL_SENSORLESS_STALL_DETECTED
- STEPPER_SIGNAL_LEFT_END_STOP_DETECTED
- STEPPER_SIGNAL_RIGHT_END_STOP_DETECTED

Signed-off-by: Jilay Pandya <jilay.pandya@zeiss.com>
2024-10-09 18:24:08 +01:00
Jilay Pandya
52c6a289f1 drivers: stepper: adi: trinamic tmc5041
This commit introduces initial structure for trinamic drivers
TMC5041 is implemented with following features:
- StallGuard
- RAMPSTAT_POLL
- RAMP_GEN

Signed-off-by: Dipak Shetty <dipak.shetty@zeiss.com>
Signed-off-by: Jilay Pandya <jilay.pandya@zeiss.com>
2024-10-09 18:24:08 +01:00
Fabio Baltieri
5e2203a6cd stepper: shell: fix uninitialized variable compiler warning
Fixes:

/__w/zephyr/zephyr/include/zephyr/drivers/stepper.h:429:16: error:
'direction' may be used uninitialized [-Werror=maybe-uninitialized]

found with:

west build -p -b esp32s3_touch_lcd_1_28/esp32s3/appcpu -T
tests/drivers/stepper/shell/drivers.stepper.shell

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2024-09-30 17:13:07 +01:00
Fabian Blatz
c525dc0813 drivers: stepper: Add fake stepper driver
Add `zephyr,fake-stepper` compatible which can be used inside of unit
tests.

Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
2024-09-21 12:23:19 +01:00
Fabian Blatz
c694858d06 drivers: stepper: add stepper shell
Add shell commands to enable/disable, move, set velocity, configure
micro-step resolution, and display stepper motor status. Includes an
`info` command to output all relevant data with graceful handling of
unsupported features.

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
2024-09-21 12:23:19 +01:00
Jilay Pandya
fda97de253 drivers: stepper: refactor gpio stepper driver
This commit refactors gpio stepper driver

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-09-03 10:42:19 +02:00
Jilay Pandya
28cd1c8439 stepper: fix: introduce step count check in gpio stepper
This commit introduces step count check before updating
actual position.

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-09-03 10:42:19 +02:00
Fabian Blatz
6ae753f5bd drivers: stepper: Fix missing _driver_api suffix
The gen_kobject_list.py script expects the __subystem declaration to end
with _driver_api. Adjust the stepper api and existing driver implementation
accordingly.

Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
2024-08-29 18:03:01 +02:00
Jilay Pandya
4f36fa8010 stepper: driver: introduce gpio driver
This commit introduces a basic gpio stepper driver

Signed-off-by: Jilay Pandya <jilay.pandya@zeiss.com>
Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
2024-08-27 12:43:39 +02:00
Jilay Pandya
1af0ec1d96 stepper motor controller: introduce api
This commit introduces api for stepper motor controllers

Signed-off-by: Dipak Shetty <dipak.shetty@zeiss.com>
Signed-off-by: Florian Guhl <florian.guhl@zeiss.com>
Signed-off-by: Jilay Pandya <jilay.pandya@zeiss.com>
Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
2024-08-27 12:43:39 +02:00