summaryrefslogtreecommitdiffstats
path: root/drivers/pwm/pwm-twl-led.c
diff options
context:
space:
mode:
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>2022-07-12 10:46:56 +0200
committerThierry Reding <thierry.reding@gmail.com>2022-07-29 13:41:18 +0200
commitea95b29983b999eac4522d50da78e6ba70c3d065 (patch)
tree822183ec8f9916d151b57f146019c2a7c124738d /drivers/pwm/pwm-twl-led.c
parentMAINTAINERS: Remove myself as PWM maintainer (diff)
downloadlinux-ea95b29983b999eac4522d50da78e6ba70c3d065.tar.xz
linux-ea95b29983b999eac4522d50da78e6ba70c3d065.zip
pwm: twl-led: Document some limitations and link to the reference manual
I found these just from reading the reference manual and the driver source. It's unclear to me if there are glitches when updating the ON and OFF registers. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
Diffstat (limited to 'drivers/pwm/pwm-twl-led.c')
-rw-r--r--drivers/pwm/pwm-twl-led.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/pwm/pwm-twl-led.c b/drivers/pwm/pwm-twl-led.c
index ed0b63dd38f1..8fb84b441853 100644
--- a/drivers/pwm/pwm-twl-led.c
+++ b/drivers/pwm/pwm-twl-led.c
@@ -7,6 +7,22 @@
*
* This driver is a complete rewrite of the former pwm-twl6030.c authorded by:
* Hemanth V <hemanthv@ti.com>
+ *
+ * Reference manual for the twl6030 is available at:
+ * https://www.ti.com/lit/ds/symlink/twl6030.pdf
+ *
+ * Limitations:
+ * - The twl6030 hardware only supports two period lengths (128 clock ticks and
+ * 64 clock ticks), the driver only uses 128 ticks
+ * - The hardware doesn't support ON = 0, so the active part of a period doesn't
+ * start at its beginning.
+ * - The hardware could support inverted polarity (with a similar limitation as
+ * for normal: the last clock tick is always inactive).
+ * - The hardware emits a constant low output when disabled.
+ * - A request for .duty_cycle = 0 results in an output wave with one active
+ * clock tick per period. This should better use the disabled state.
+ * - The driver only implements setting the relative duty cycle.
+ * - The driver doesn't implement .get_state().
*/
#include <linux/module.h>