[PATCH v3] pwm: pwm-samsung: Trigger manual update when disabling PWM
Uwe Kleine-König
u.kleine-koenig at pengutronix.de
Fri Oct 29 09:06:44 PDT 2021
On Thu, Sep 09, 2021 at 12:10:42PM +0200, Mårten Lindahl wrote:
> When duty-cycle is at full level (100%), the TCNTn and TCMPn registers
> needs to be flushed in order to disable the signal. The PWM manual does
> not say anything about this, but states that only clearing the TCON
> auto-reload bit should be needed, and this seems to be true when the PWM
> duty-cycle is not at full level. This can be observed on an Axis
> ARTPEC-8, by running:
>
> echo <period> > pwm/period
> echo <period> > pwm/duty_cycle
> echo 1 > pwm/enable
> echo 0 > pwm/enable
>
> Since the TCNTn and TCMPn registers are activated when enabling the PWM
> (setting TCON auto-reload bit), and are not touched when disabling the
> PWM, the double buffered auto-reload function seems to be still active.
> Lowering duty-cycle, and restoring it again in between the enabling and
> disabling, makes the disable work since it triggers a reload of the
> TCNTn and TCMPn registers.
>
> Fix this by securing a reload of the TCNTn and TCMPn registers when
> disabling the PWM and having a full duty-cycle.
>
> Signed-off-by: Mårten Lindahl <marten.lindahl at axis.com>
Acked-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
Thanks
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | https://www.pengutronix.de/ |
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20211029/d3323d31/attachment.sig>
More information about the linux-arm-kernel
mailing list