linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 00/14] regulator: pwm: various improvements
@ 2016-06-14  9:13 Boris Brezillon
  2016-06-14  9:13 ` [PATCH v3 01/14] pwm: Add an helper to prepare a new PWM state Boris Brezillon
                   ` (14 more replies)
  0 siblings, 15 replies; 27+ messages in thread
From: Boris Brezillon @ 2016-06-14  9:13 UTC (permalink / raw)
  To: Thierry Reding, linux-pwm, Mark Brown, Liam Girdwood
  Cc: Heiko Stuebner, linux-rockchip, Rob Herring, Pawel Moll,
	Mark Rutland, Ian Campbell, Kumar Gala, devicetree,
	linux-arm-kernel, linux-kernel, Milo Kim, Doug Anderson,
	Caesar Wang, Stephen Barber, Brian Norris, Ajit Pal Singh,
	Srinivas Kandagatla, Maxime Coquelin, Patrice Chotard, kernel,
	Laxman Dewangan, Boris Brezillon

Hello,

This patch series series aims at adding two important features to the
pwm-regulator driver.

The first one is the support for 'smooth handover' between the
bootloader and the kernel. This is mainly solving problems we have when
the PWM is controlling a critical regulator (like the one powering the
DDR chip). Currently, when the PWM regulator acquire the PWM device it
assumes it was off and it's safe to change the configuration before
enabling it, which can generate glitches on the PWM signal which in turn
generated glitches on the output voltage.
To solve that we've introduced support for hardware readout to the
PWM framework, so that the PWM regulator driver can adjust the PWM
a probe time and avoid glitches.
Atomic update is also helping in this regard.

Patch 1 is adding convenient helpers (at the PWM level) that will be
used by the PWM regulator driver.
Patches 2 to 7 are preparing everything on the PWM driver side to make
hardware readout available to all platforms using the PWM regulator
driver (rockchip and sti).
Patches 8 to 11 are making use of the atomic update and hardware readout
features to implement this smooth handover.

The second feature we add to the driver is the capability of using
a sub duty_cycle range in continuous mode. By default the regulator
is assuming that min_uV is achieved with a 0% dutycyle and max_uV
with a 100% dutycycle, but this is not necessarily true.
Moreover, in some cases (when the PWM device does not support
polarity inversion), we might have min_uV at 100% and max_uV at 0%.
Hence the addition of new properties to the existing DT bindings.
The feature is added in patch 12 and 13.

Best Regards,

Boris

Changes since v2:
- add Heiko's Tested-by
- split patch 1 in 2 patches
- rework the documentation
- rename pwm_prepare_new_state() into pwm_init_state()
- make pwm_set_relative_duty_cycle() return an error code when scale
  or duty_cycle are inconsistent

Changes since v1:
- dropped already applied patches
- added R-b/A-b/T-b tags
- s/readl/readl_relaxed/ in patch 3 (as suggested by Brian)
- fixed pwm-regulator DT binding doc
- added some comments in the code
- replaced pwm_get_state() + if (state.enabled) by if (pwm_is_enabled())

Boris Brezillon (14):
  pwm: Add an helper to prepare a new PWM state
  pwm: Add two helpers to ease relative duty cycle manipulation
  pwm: rockchip: Fix period and duty_cycle approximation
  pwm: rockchip: Add support for hardware readout
  pwm: rockchip: Avoid glitches on already running PWMs
  pwm: rockchip: Add support for atomic update
  pwm: sti: Add support for hardware readout
  pwm: sti: Avoid glitches on already running PWMs
  regulator: pwm: Adjust PWM config at probe time
  regulator: pwm: Switch to the atomic PWM API
  regulator: pwm: Properly initialize the ->state field
  regulator: pwm: Retrieve correct voltage
  regulator: pwm: Support extra continuous mode cases
  regulator: pwm: Document pwm-dutycycle-unit and pwm-dutycycle-range

 .../bindings/regulator/pwm-regulator.txt           |  19 +++
 drivers/pwm/pwm-rockchip.c                         | 178 +++++++++++++++------
 drivers/pwm/pwm-sti.c                              |  52 +++++-
 drivers/regulator/pwm-regulator.c                  | 160 +++++++++++++-----
 include/linux/pwm.h                                |  89 +++++++++++
 5 files changed, 407 insertions(+), 91 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2016-07-11 16:53 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-14  9:13 [PATCH v3 00/14] regulator: pwm: various improvements Boris Brezillon
2016-06-14  9:13 ` [PATCH v3 01/14] pwm: Add an helper to prepare a new PWM state Boris Brezillon
2016-06-14  9:13 ` [PATCH v3 02/14] pwm: Add two helpers to ease relative duty cycle manipulation Boris Brezillon
2016-06-14  9:13 ` [PATCH v3 03/14] pwm: rockchip: Fix period and duty_cycle approximation Boris Brezillon
2016-06-14  9:13 ` [PATCH v3 04/14] pwm: rockchip: Add support for hardware readout Boris Brezillon
2016-06-14  9:13 ` [PATCH v3 05/14] pwm: rockchip: Avoid glitches on already running PWMs Boris Brezillon
2016-06-14  9:13 ` [PATCH v3 06/14] pwm: rockchip: Add support for atomic update Boris Brezillon
2016-06-14  9:13 ` [PATCH v3 07/14] pwm: sti: Add support for hardware readout Boris Brezillon
2016-06-14  9:13 ` [PATCH v3 08/14] pwm: sti: Avoid glitches on already running PWMs Boris Brezillon
2016-06-14  9:13 ` [PATCH v3 09/14] regulator: pwm: Adjust PWM config at probe time Boris Brezillon
2016-06-14  9:13 ` [PATCH v3 10/14] regulator: pwm: Switch to the atomic PWM API Boris Brezillon
2016-07-05 14:30   ` Mark Brown
2016-06-14  9:13 ` [PATCH v3 11/14] regulator: pwm: Properly initialize the ->state field Boris Brezillon
2016-07-05 14:31   ` Mark Brown
2016-06-14  9:13 ` [PATCH v3 12/14] regulator: pwm: Retrieve correct voltage Boris Brezillon
2016-07-05 14:32   ` Mark Brown
2016-07-08 15:43   ` Thierry Reding
2016-07-09  9:47     ` Mark Brown
2016-07-11  7:02       ` Thierry Reding
2016-07-11  7:20         ` Boris Brezillon
2016-07-11 16:53         ` Doug Anderson
2016-06-14  9:13 ` [PATCH v3 13/14] regulator: pwm: Support extra continuous mode cases Boris Brezillon
2016-07-05 14:34   ` Mark Brown
2016-06-14  9:13 ` [PATCH v3 14/14] regulator: pwm: Document pwm-dutycycle-unit and pwm-dutycycle-range Boris Brezillon
2016-06-16 22:26   ` Rob Herring
2016-07-05 14:36   ` Mark Brown
2016-07-08 16:35 ` [PATCH v3 00/14] regulator: pwm: various improvements Thierry Reding

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).