Messages in this thread | ![/](/images/icornerl.gif) | | From | Trevor Gamblin <> | Subject | [PATCH 0/2 v2] pwm: add support for duty_offset | Date | Tue, 9 Apr 2024 13:41:24 -0400 |
| |
This series extends the PWM subsystem to support the duty_offset feature found on some PWM devices. It includes a patch to enable this feature for the axi-pwmgen driver, which can also serve as an example of how to implement it for other devices.
The series was tested on actual hardware using a Zedboard. An oscilloscope was used to validate that the generated PWM signals matched the requested ones. The libpwm [1] tool was also used for testing the char device functionality.
Note that in addition to the other patches in this series, the changes to the axi-pwmgen driver rely on [2] and [3], which haven't been picked up yet.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/libpwm.git/ [2] https://lore.kernel.org/linux-pwm/20240301173343.1086332-1-tgamblin@baylibre.com/ [3] https://lore.kernel.org/linux-pwm/20240314204722.1291993-1-tgamblin@baylibre.com/
--- v2 changes: * Address feedback for driver in v1: * Remove supports_offset flag in pwm_chip struct, and references to it in the axi-pwmgen driver patch * Drop pwm_config_full patch entirely * Don't return EINVAL when state->duty_offset + state->duty_cycle > state->period in __pwm_apply(), since this is valid as long as neither is greater than state->period on its own * Add a check to disallow setting the PWM signal as inverse and a nonzero duty_offset at the same time in __pwm_apply(), with a comment explaining why
Link to v1 (RFC): https://lore.kernel.org/linux-pwm/20240405003025.739603-1-tgamblin@baylibre.com/
Trevor Gamblin (2): pwm: add duty offset support pwm: axi-pwmgen: add duty offset support
drivers/pwm/core.c | 82 +++++++++++++++++++++++++++++++++--- drivers/pwm/pwm-axi-pwmgen.c | 34 +++++++++++---- include/linux/pwm.h | 15 +++++++ include/trace/events/pwm.h | 6 ++- 4 files changed, 121 insertions(+), 16 deletions(-)
-- 2.44.0
| ![\](/images/icornerr.gif) |