mirror of
https://github.com/torvalds/linux.git
synced 2024-12-01 16:41:39 +00:00
7f61257cd6
Add a software PWM which toggles a GPIO from a high-resolution timer. This will naturally not be as accurate or as efficient as a hardware PWM, but it is useful in some cases. I have for example used it for evaluating LED brightness handling (via leds-pwm) on a board where the LED was just hooked up to a GPIO, and for a simple verification of the timer frequency on another platform. Since high-resolution timers are used, sleeping GPIO chips are not supported and are rejected in the probe function. Signed-off-by: Vincent Whitchurch <vincent.whitchurch@axis.com> Co-developed-by: Stefan Wahren <wahrenst@gmx.net> Signed-off-by: Stefan Wahren <wahrenst@gmx.net> Co-developed-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: Andy Shevchenko <andy@kernel.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: Dhruva Gole <d-gole@ti.com> Link: https://lore.kernel.org/r/20240604-pwm-gpio-v7-2-6b67cf60db92@linaro.org Signed-off-by: Uwe Kleine-König <ukleinek@kernel.org>
71 lines
2.9 KiB
Makefile
71 lines
2.9 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
obj-$(CONFIG_PWM) += core.o
|
|
obj-$(CONFIG_PWM_AB8500) += pwm-ab8500.o
|
|
obj-$(CONFIG_PWM_APPLE) += pwm-apple.o
|
|
obj-$(CONFIG_PWM_ATMEL) += pwm-atmel.o
|
|
obj-$(CONFIG_PWM_ATMEL_HLCDC_PWM) += pwm-atmel-hlcdc.o
|
|
obj-$(CONFIG_PWM_ATMEL_TCB) += pwm-atmel-tcb.o
|
|
obj-$(CONFIG_PWM_AXI_PWMGEN) += pwm-axi-pwmgen.o
|
|
obj-$(CONFIG_PWM_BCM_IPROC) += pwm-bcm-iproc.o
|
|
obj-$(CONFIG_PWM_BCM_KONA) += pwm-bcm-kona.o
|
|
obj-$(CONFIG_PWM_BCM2835) += pwm-bcm2835.o
|
|
obj-$(CONFIG_PWM_BERLIN) += pwm-berlin.o
|
|
obj-$(CONFIG_PWM_BRCMSTB) += pwm-brcmstb.o
|
|
obj-$(CONFIG_PWM_CLK) += pwm-clk.o
|
|
obj-$(CONFIG_PWM_CLPS711X) += pwm-clps711x.o
|
|
obj-$(CONFIG_PWM_CRC) += pwm-crc.o
|
|
obj-$(CONFIG_PWM_CROS_EC) += pwm-cros-ec.o
|
|
obj-$(CONFIG_PWM_DWC_CORE) += pwm-dwc-core.o
|
|
obj-$(CONFIG_PWM_DWC) += pwm-dwc.o
|
|
obj-$(CONFIG_PWM_EP93XX) += pwm-ep93xx.o
|
|
obj-$(CONFIG_PWM_FSL_FTM) += pwm-fsl-ftm.o
|
|
obj-$(CONFIG_PWM_GPIO) += pwm-gpio.o
|
|
obj-$(CONFIG_PWM_HIBVT) += pwm-hibvt.o
|
|
obj-$(CONFIG_PWM_IMG) += pwm-img.o
|
|
obj-$(CONFIG_PWM_IMX1) += pwm-imx1.o
|
|
obj-$(CONFIG_PWM_IMX27) += pwm-imx27.o
|
|
obj-$(CONFIG_PWM_IMX_TPM) += pwm-imx-tpm.o
|
|
obj-$(CONFIG_PWM_INTEL_LGM) += pwm-intel-lgm.o
|
|
obj-$(CONFIG_PWM_IQS620A) += pwm-iqs620a.o
|
|
obj-$(CONFIG_PWM_JZ4740) += pwm-jz4740.o
|
|
obj-$(CONFIG_PWM_KEEMBAY) += pwm-keembay.o
|
|
obj-$(CONFIG_PWM_LP3943) += pwm-lp3943.o
|
|
obj-$(CONFIG_PWM_LPC18XX_SCT) += pwm-lpc18xx-sct.o
|
|
obj-$(CONFIG_PWM_LPC32XX) += pwm-lpc32xx.o
|
|
obj-$(CONFIG_PWM_LPSS) += pwm-lpss.o
|
|
obj-$(CONFIG_PWM_LPSS_PCI) += pwm-lpss-pci.o
|
|
obj-$(CONFIG_PWM_LPSS_PLATFORM) += pwm-lpss-platform.o
|
|
obj-$(CONFIG_PWM_MESON) += pwm-meson.o
|
|
obj-$(CONFIG_PWM_MEDIATEK) += pwm-mediatek.o
|
|
obj-$(CONFIG_PWM_MICROCHIP_CORE) += pwm-microchip-core.o
|
|
obj-$(CONFIG_PWM_MTK_DISP) += pwm-mtk-disp.o
|
|
obj-$(CONFIG_PWM_MXS) += pwm-mxs.o
|
|
obj-$(CONFIG_PWM_NTXEC) += pwm-ntxec.o
|
|
obj-$(CONFIG_PWM_OMAP_DMTIMER) += pwm-omap-dmtimer.o
|
|
obj-$(CONFIG_PWM_PCA9685) += pwm-pca9685.o
|
|
obj-$(CONFIG_PWM_PXA) += pwm-pxa.o
|
|
obj-$(CONFIG_PWM_RASPBERRYPI_POE) += pwm-raspberrypi-poe.o
|
|
obj-$(CONFIG_PWM_RCAR) += pwm-rcar.o
|
|
obj-$(CONFIG_PWM_RENESAS_TPU) += pwm-renesas-tpu.o
|
|
obj-$(CONFIG_PWM_ROCKCHIP) += pwm-rockchip.o
|
|
obj-$(CONFIG_PWM_RZ_MTU3) += pwm-rz-mtu3.o
|
|
obj-$(CONFIG_PWM_SAMSUNG) += pwm-samsung.o
|
|
obj-$(CONFIG_PWM_SIFIVE) += pwm-sifive.o
|
|
obj-$(CONFIG_PWM_SL28CPLD) += pwm-sl28cpld.o
|
|
obj-$(CONFIG_PWM_SPEAR) += pwm-spear.o
|
|
obj-$(CONFIG_PWM_SPRD) += pwm-sprd.o
|
|
obj-$(CONFIG_PWM_STI) += pwm-sti.o
|
|
obj-$(CONFIG_PWM_STM32) += pwm-stm32.o
|
|
obj-$(CONFIG_PWM_STM32_LP) += pwm-stm32-lp.o
|
|
obj-$(CONFIG_PWM_STMPE) += pwm-stmpe.o
|
|
obj-$(CONFIG_PWM_SUN4I) += pwm-sun4i.o
|
|
obj-$(CONFIG_PWM_SUNPLUS) += pwm-sunplus.o
|
|
obj-$(CONFIG_PWM_TEGRA) += pwm-tegra.o
|
|
obj-$(CONFIG_PWM_TIECAP) += pwm-tiecap.o
|
|
obj-$(CONFIG_PWM_TIEHRPWM) += pwm-tiehrpwm.o
|
|
obj-$(CONFIG_PWM_TWL) += pwm-twl.o
|
|
obj-$(CONFIG_PWM_TWL_LED) += pwm-twl-led.o
|
|
obj-$(CONFIG_PWM_VISCONTI) += pwm-visconti.o
|
|
obj-$(CONFIG_PWM_VT8500) += pwm-vt8500.o
|
|
obj-$(CONFIG_PWM_XILINX) += pwm-xilinx.o
|