On Sun, 28 Jan 2024 at 16:37, Stefan Wahren <wahrenst@xxxxxxx> wrote: > > Add a software PWM which toggles a GPIO from a high-resolution timer. > > Recent discussions in the Raspberry Pi community revealt that a lot > of users still use MMIO userspace tools for GPIO access. One argument > for this approach is the lack of a GPIO PWM kernel driver. So this > series tries to fill this gap. *Thank you* for picking this up. I've been stuck down by covid but am aiming to build and test this on a Pi 5 (with a gpio chip over PCIe) to see if it runs- though I am fully expecting a PIO solution (using the Pi 5s RP1) to handle PWM in this case, and hope to rely upon this gpio-pwm module for previous iterations. > > This continues the work of Vincent Whitchurch [1], which is easier > to read and more consequent by rejecting sleeping GPIOs than Nicola's > approach [2]. > > The work has been tested on a Raspberry Pi 3 B+ and a cheap logic > analyzer. > > V3: > - rebase on top of v6.8-pwm-next > - cherry-pick improvements from Nicola's series > - try to address Uwe's, Linus' and Andy's comments > - try to avoid GPIO glitches during probe > - fix pwm_gpio_remove() > - some code clean up's and comments > > V2: > - Rename gpio to gpios in binding > - Calculate next expiry from expected current expiry rather than "now" > - Only change configuration after current period ends > - Implement get_state() > - Add error message for probe failures > - Stop PWM before unregister > > [1] - https://lore.kernel.org/all/20200915135445.al75xmjxudj2rgcp@xxxxxxxx/T/ > [2] - https://lore.kernel.org/all/20201205214353.xapax46tt5snzd2v@xxxxxxxxxxxxxxxxxxx/ > > Nicola Di Lieto (1): > dt-bindings: pwm: Add pwm-gpio > > Vincent Whitchurch (1): > pwm: Add GPIO PWM driver > > .../devicetree/bindings/pwm/pwm-gpio.yaml | 42 ++++ > drivers/pwm/Kconfig | 11 + > drivers/pwm/Makefile | 1 + > drivers/pwm/pwm-gpio.c | 221 ++++++++++++++++++ > 4 files changed, 275 insertions(+) > create mode 100644 Documentation/devicetree/bindings/pwm/pwm-gpio.yaml > create mode 100644 drivers/pwm/pwm-gpio.c > > -- > 2.34.1 >