pwm: lpss: Avoid reconfiguring while UPDATE bit is still enabled
authorIlkka Koskinen <ilkka.koskinen@intel.com>
Sat, 28 Jan 2017 15:10:42 +0000 (17:10 +0200)
committerThierry Reding <thierry.reding@gmail.com>
Mon, 30 Jan 2017 07:15:12 +0000 (08:15 +0100)
commit10d56a4cb1c6c894c60acbaec0f8aa44aba833b0
tree8788ae33cdd8ed448435a6cc165baf37d22a3775
parentb14e8ceff03404cce4d9b85204246d3ed1259ec7
pwm: lpss: Avoid reconfiguring while UPDATE bit is still enabled

PWM Configuration register has SW_UPDATE bit that is set when a new
configuration is written to the register. The bit is automatically
cleared at the start of the next output cycle by the IP block.

If one writes a new configuration to the register while it still has
the bit enabled, PWM may freeze. That is, while one can still write
to the register, it won't have an effect. Thus, we try to sleep long
enough that the bit gets cleared and make sure the bit is not
enabled while we update the configuration.

Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Tested-by: Richard Griffiths <richard.a.griffiths@intel.com>
Signed-off-by: Ilkka Koskinen <ilkka.koskinen@intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
drivers/pwm/pwm-lpss.c