linux/drivers/pwm
Linus Torvalds ecd5d67ad6 pwm: A set of fixes for pwm core and various drivers
The first three patches handle clk_get_rate() returning 0 (which might
 happen for example if the CCF is disabled). The first of these was found
 because this triggered a warning with clang, the two others by looking
 for similar issues in other drivers. Similar patches were merged earlier
 for v6.15-rc1 in commit 92b71befc3 ("Merge tag
 'objtool-urgent-2025-04-01' of
 git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip").
 The remaining three fixes address issues in the new waveform pwm API.
 Now that I worked on this a bit more, the finer details and corner cases
 are better understood and the code is fixed accordingly.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEP4GsaTp6HlmJrf7Tj4D7WH0S/k4FAmf6XjUACgkQj4D7WH0S
 /k5tlgf/dq4lAR0MvJi8XHv2uc8sLSMlMGajCezEiIF2aQ09lqloq68uDD6YzkJV
 IlUCH353GKBNJQuFml15TodhIuAfBKKtUutW9pRgaC20HtE1PItKSk3ebYVL8m6l
 ilLeDWA07jB3gkoDdewGnjSxIQ7jCBrcF+s0OTXibpAdBP+vbbDy/aGPM0E0Byk4
 zfGg39l9g0mwJ5ayGR+ZAncxiJM1bfWWcKpZLvOWpA7VnT7Gve9ibYdONtq+2csk
 b3ZURiwA/MTa3acbYfBxZKjwOJzphy4ZnrXtpAJpko5JjdLiRLWToe5uBDEldjV0
 b1icgiI0kIv8f1JBQ02tHsx0UOh3Uw==
 =V4W8
 -----END PGP SIGNATURE-----

Merge tag 'pwm/for-6.15-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux

Pull pwm fixes from Uwe Kleine-König:
 "A set of fixes for pwm core and various drivers

  The first three patches handle clk_get_rate() returning 0 (which might
  happen for example if the CCF is disabled). The first of these was
  found because this triggered a warning with clang, the two others by
  looking for similar issues in other drivers.

  The remaining three fixes address issues in the new waveform pwm API.
  Now that I worked on this a bit more, the finer details and corner
  cases are better understood and the code is fixed accordingly"

* tag 'pwm/for-6.15-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux:
  pwm: axi-pwmgen: Let .round_waveform_tohw() signal when request was rounded up
  pwm: stm32: Search an appropriate duty_cycle if period cannot be modified
  pwm: Let pwm_set_waveform() succeed even if lowlevel driver rounded up
  pwm: fsl-ftm: Handle clk_get_rate() returning 0
  pwm: rcar: Improve register calculation
  pwm: mediatek: Prevent divide-by-zero in pwm_mediatek_config()
2025-04-12 08:11:19 -07:00
..
core.c pwm: Let pwm_set_waveform() succeed even if lowlevel driver rounded up 2025-04-07 15:10:13 +02:00
Kconfig pwm: stmpe: Allow to compile as a module 2025-03-03 10:38:54 +01:00
Makefile pwm: sophgo: add driver for Sophgo SG2042 PWM 2025-02-05 11:06:38 +01:00
pwm-ab8500.c pwm: ab8500: Make use of devm_pwmchip_alloc() function 2024-02-15 12:59:19 +01:00
pwm-adp5585.c pwm: adp5585: Set OSC_EN bit to 1 when PWM state is enabled 2024-09-16 15:24:58 +02:00
pwm-apple.c pwm: apple: Make use of devm_pwmchip_alloc() function 2024-02-15 12:59:19 +01:00
pwm-atmel-hlcdc.c pwm: Switch back to struct platform_driver::remove() 2024-09-16 15:24:59 +02:00
pwm-atmel-tcb.c pwm: atmel-tcb: Use min() macro 2024-10-25 11:33:34 +02:00
pwm-atmel.c pwm: atmel: Make use of devm_pwmchip_alloc() function 2024-02-15 12:59:19 +01:00
pwm-axi-pwmgen.c pwm: axi-pwmgen: Let .round_waveform_tohw() signal when request was rounded up 2025-04-07 15:10:30 +02:00
pwm-bcm-iproc.c pwm: bcm-iproc: Make use of devm_pwmchip_alloc() function 2024-02-15 12:59:20 +01:00
pwm-bcm-kona.c pwm: bcm-kona: Make use of devm_pwmchip_alloc() function 2024-02-15 12:59:20 +01:00
pwm-bcm2835.c pwm: bcm2835: Drop open coded variant of devm_clk_rate_exclusive_get() 2024-04-30 18:57:08 +02:00
pwm-berlin.c pwm: berlin: Make use of devm_pwmchip_alloc() function 2024-02-15 12:59:20 +01:00
pwm-brcmstb.c pwm: brcmstb: Make use of devm_pwmchip_alloc() function 2024-02-15 12:59:20 +01:00
pwm-clk.c pwm: Switch back to struct platform_driver::remove() 2024-09-16 15:24:59 +02:00
pwm-clps711x.c pwm: clps711x: Drop of_match_ptr() usage for .of_match_table 2025-02-15 15:40:26 +01:00
pwm-crc.c pwm: crc: Make use of devm_pwmchip_alloc() function 2024-02-15 12:59:21 +01:00
pwm-cros-ec.c pwm: cros-ec: Simplify device tree xlation 2024-07-10 17:52:47 +02:00
pwm-dwc-core.c module: Convert default symbol namespace to string literal 2024-12-03 08:22:25 -08:00
pwm-dwc.c pwm: Replace deprecated PCI functions 2024-12-18 11:12:05 +01:00
pwm-dwc.h module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
pwm-ep93xx.c pwm: ep93xx: drop legacy pinctrl 2024-09-12 14:33:11 +00:00
pwm-fsl-ftm.c pwm: fsl-ftm: Handle clk_get_rate() returning 0 2025-04-04 09:23:56 +02:00
pwm-gpio.c pwm: gpio: Switch to use hrtimer_setup() 2025-02-07 16:41:37 +01:00
pwm-hibvt.c pwm: Switch back to struct platform_driver::remove() 2024-09-16 15:24:59 +02:00
pwm-img.c pwm: Switch back to struct platform_driver::remove() 2024-09-16 15:24:59 +02:00
pwm-imx-tpm.c pwm: imx-tpm: Use correct MODULO value for EPWM mode 2024-10-25 11:29:17 +02:00
pwm-imx1.c pwm: add missing MODULE_DESCRIPTION() macros 2024-07-10 17:52:46 +02:00
pwm-imx27.c pwm: imx27: Use clk_bulk_*() API to simplify clock handling 2024-10-25 11:42:36 +02:00
pwm-intel-lgm.c pwm: add missing MODULE_DESCRIPTION() macros 2024-07-10 17:52:46 +02:00
pwm-iqs620a.c pwm: iqs620a: Make use of devm_pwmchip_alloc() function 2024-02-19 11:04:10 +01:00
pwm-jz4740.c pwm: jz4740: Another few conversions to regmap_{set,clear}_bits() 2024-07-10 17:52:46 +02:00
pwm-keembay.c pwm: keembay: Make use of devm_pwmchip_alloc() function 2024-02-19 11:04:10 +01:00
pwm-lp3943.c pwm: lp3943: Fix an incorrect type in lp3943_pwm_parse_dt() 2024-09-16 15:23:36 +02:00
pwm-lpc18xx-sct.c pwm: Switch back to struct platform_driver::remove() 2024-09-16 15:24:59 +02:00
pwm-lpc32xx.c pwm: lpc32xx: Make use of devm_pwmchip_alloc() function 2024-02-19 11:04:11 +01:00
pwm-lpss-pci.c pwm: Changes for v6.14-rc1 2025-01-22 10:43:09 -08:00
pwm-lpss-platform.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
pwm-lpss.c Pin control changes for the v6.15 kernel cycle: 2025-03-29 16:59:16 -07:00
pwm-lpss.h pwm: lpss: Only include <linux/pwm.h> where needed 2025-02-04 08:23:42 +01:00
pwm-mediatek.c pwm: mediatek: Prevent divide-by-zero in pwm_mediatek_config() 2025-04-02 18:31:42 +02:00
pwm-meson.c pwm: meson: Add support for Amlogic S4 PWM 2024-07-10 17:52:47 +02:00
pwm-microchip-core.c pwm: microchip-core: fix incorrect comparison with max period 2025-01-23 16:14:09 +01:00
pwm-mtk-disp.c pwm: mtk-disp: Make use of devm_pwmchip_alloc() function 2024-02-19 11:04:12 +01:00
pwm-mxs.c pwm: mxs: Make use of devm_pwmchip_alloc() function 2024-02-19 11:04:12 +01:00
pwm-ntxec.c pwm: ntxec: Make use of devm_pwmchip_alloc() function 2024-02-19 11:04:12 +01:00
pwm-omap-dmtimer.c pwm: Switch back to struct platform_driver::remove() 2024-09-16 15:24:59 +02:00
pwm-pca9685.c pwm: pca9685: Drop ACPI_PTR() and of_match_ptr() 2025-02-15 15:40:05 +01:00
pwm-pxa.c pwm: add missing MODULE_DESCRIPTION() macros 2024-07-10 17:52:46 +02:00
pwm-raspberrypi-poe.c pwm: raspberrypi-poe: Make use of devm_pwmchip_alloc() function 2024-02-19 11:04:13 +01:00
pwm-rcar.c pwm: rcar: Improve register calculation 2025-04-04 09:23:39 +02:00
pwm-renesas-tpu.c pwm: renesas-tpu: Make use of devm_pwmchip_alloc() function 2024-02-19 11:04:13 +01:00
pwm-rockchip.c pwm: Switch back to struct platform_driver::remove() 2024-09-16 15:24:59 +02:00
pwm-rz-mtu3.c pwm: rz-mtu3: Make use of devm_pwmchip_alloc() function 2024-02-19 11:04:14 +01:00
pwm-samsung.c of: remove internal arguments from of_property_for_each_u32() 2024-07-25 06:53:47 -05:00
pwm-sifive.c pwm: Switch back to struct platform_driver::remove() 2024-09-16 15:24:59 +02:00
pwm-sl28cpld.c pwm: sl28cpld: Make use of devm_pwmchip_alloc() function 2024-02-19 11:04:15 +01:00
pwm-sophgo-sg2042.c pwm: sophgo: add driver for Sophgo SG2042 PWM 2025-02-05 11:06:38 +01:00
pwm-spear.c pwm: add missing MODULE_DESCRIPTION() macros 2024-07-10 17:52:46 +02:00
pwm-sprd.c pwm: sprd: Make use of devm_pwmchip_alloc() function 2024-02-22 14:39:10 +01:00
pwm-sti.c pwm: sti: Prefer local variable over pointer dereference 2024-04-26 21:29:17 +02:00
pwm-stm32-lp.c pwm: stm32-lp: Add check for clk_enable() 2024-12-18 11:12:05 +01:00
pwm-stm32.c pwm: stm32: Search an appropriate duty_cycle if period cannot be modified 2025-04-07 15:10:30 +02:00
pwm-stmpe.c pwm: stmpe: Allow to compile as a module 2025-03-03 10:38:54 +01:00
pwm-sun4i.c pwm: Switch back to struct platform_driver::remove() 2024-09-16 15:24:59 +02:00
pwm-sunplus.c pwm: sunplus: Make use of devm_pwmchip_alloc() function 2024-02-22 14:39:25 +01:00
pwm-tegra.c pwm: Switch back to struct platform_driver::remove() 2024-09-16 15:24:59 +02:00
pwm-tiecap.c pwm: Switch back to struct platform_driver::remove() 2024-09-16 15:24:59 +02:00
pwm-tiehrpwm.c pwm: Switch back to struct platform_driver::remove() 2024-09-16 15:24:59 +02:00
pwm-twl-led.c pwm: twl-led: Make use of devm_pwmchip_alloc() function 2024-02-22 14:39:27 +01:00
pwm-twl.c pwm: twl: Make use of devm_pwmchip_alloc() function 2024-02-22 14:39:27 +01:00
pwm-visconti.c pwm: add missing MODULE_DESCRIPTION() macros 2024-07-10 17:52:46 +02:00
pwm-vt8500.c pwm: vt8500: Make use of devm_pwmchip_alloc() function 2024-02-22 14:39:27 +01:00
pwm-xilinx.c pwm: xilinx: Simplify using devm_ functions 2024-07-10 17:53:52 +02:00