On Fri, 2 Feb 2024 at 20:13, Stefan Wahren <wahrenst@xxxxxxx> wrote: > > Hi Phil, > > Am 02.02.24 um 14:19 schrieb Phil Howard: > > 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. > i hope you are doing well. > > There will be small functional changes in V4. Since this series based on > Linux 6.8 and there is no RPi 5 mainline support, you will need to apply > it on top of rpi-6.8.y. I've got as far as applying the patches and building myself a 6.8.y kernel, just dragging the ol' brain kicking and screaming into dts world again. > > Should i wait for your test results (no pressure) before sending V4? Don't wait on my account- (no really, it's chaos here)- send away! > > > >> 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 > >> > -- Philip Howard Technology & Lifestyle Writer gadgetoid.com Gadgetoid gadg-et-oid [gaj-it-oid] -adjective 1. having the characteristics or form of a gadget; resembling a mechanical contrivance or device.