Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2474542f authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'for-3.7-rc1' of git://gitorious.org/linux-pwm/linux-pwm

Pull pwm changes from Thierry Reding:
 "All legacy PWM providers have now been moved to the PWM subsystem.
  The plan for 3.8 is to adapt all board files to provide a lookup table
  for PWM devices in order to get rid of the global namespace.
  Subsequently, users of the legacy pwm_request() and pwm_free()
  functions can be migrated to the new pwm_get() and pwm_put()
  functions.  Once this has been completed, the legacy API and the
  compatibility code in the core can be removed.

  In addition to the above, these changes also add support for
  configuring the polarity of a PWM signal (currently only supported on
  ECAP and EHRPWM) and include a much needed rework of the i.MX driver.
  Managed functions to obtain and release a PWM device (devm_pwm_get()
  and devm_pwm_put()) have been added and the pwm-backlight driver has
  been updated to use them.  If the PWM subsystem hasn't been enabled,
  dummy functions are provided that allow the subsystem to safely
  compile out.

  Some common checks on input parameters have been moved to the core and
  removed from the drivers.  Finally, a small fix corrects the
  description of the PWM specifier's second cell in the device tree
  representation."

* tag 'for-3.7-rc1' of git://gitorious.org/linux-pwm/linux-pwm: (23 commits)
  pwm: dt: Fix description of second PWM cell
  pwm: Check for negative duty-cycle and period
  pwm: Add Ingenic JZ4740 support
  MIPS: JZ4740: Export timer API
  pwm: Move PUV3 PWM driver to PWM framework
  unicore32: pwm: Use managed resource allocations
  unicore32: pwm: Remove unnecessary indirection
  unicore32: pwm: Use module_platform_driver()
  unicore32: pwm: Properly remap memory-mapped registers
  pwm-backlight: Use devm_pwm_get() instead of pwm_get()
  pwm: Move AB8500 PWM driver to PWM framework
  pwm: Fix compilation error when CONFIG_PWM is not defined
  pwm: i.MX: fix clock lookup
  pwm: i.MX: use per clock unconditionally
  pwm: i.MX: add devicetree support
  pwm: i.MX: Use module_platform_driver
  pwm: i.MX: add functions to enable/disable pwm.
  pwm: i.MX: remove unnecessary if in pwm_[en|dis]able
  pwm: i.MX: factor out SoC specific functions
  pwm: pwm-tiehrpwm: Add support for configuring polarity of PWM
  ...
parents c7a6ced9 85f8879c
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
Freescale i.MX PWM controller

Required properties:
- compatible: should be "fsl,<soc>-pwm"
- reg: physical base address and length of the controller's registers
- #pwm-cells: should be 2.  The first cell specifies the per-chip index
  of the PWM to use and the second cell is the period in nanoseconds.
- interrupts: The interrupt for the pwm controller

Example:

pwm1: pwm@53fb4000 {
	#pwm-cells = <2>;
	compatible = "fsl,imx53-pwm", "fsl,imx27-pwm";
	reg = <0x53fb4000 0x4000>;
	interrupts = <61>;
};
+1 −1
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ Required properties:
- compatible: should be "fsl,imx23-pwm"
- reg: physical base address and length of the controller's registers
- #pwm-cells: should be 2.  The first cell specifies the per-chip index
  of the PWM to use and the second cell is the duty cycle in nanoseconds.
  of the PWM to use and the second cell is the period in nanoseconds.
- fsl,pwm-number: the number of PWM devices

Example:
+1 −1
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ Required properties:
- reg: physical base address and length of the controller's registers
- #pwm-cells: On Tegra the number of cells used to specify a PWM is 2. The
  first cell specifies the per-chip index of the PWM to use and the second
  cell is the duty cycle in nanoseconds.
  cell is the period in nanoseconds.

Example:

+4 −0
Original line number Diff line number Diff line
@@ -284,3 +284,7 @@ CLOCK
PINCTRL
  devm_pinctrl_get()
  devm_pinctrl_put()

PWM
  devm_pwm_get()
  devm_pwm_put()
+2 −1
Original line number Diff line number Diff line
@@ -36,7 +36,8 @@ Legacy users can request a PWM device using pwm_request() and free it
after usage with pwm_free().

New users should use the pwm_get() function and pass to it the consumer
device or a consumer name. pwm_put() is used to free the PWM device.
device or a consumer name. pwm_put() is used to free the PWM device. Managed
variants of these functions, devm_pwm_get() and devm_pwm_put(), also exist.

After being requested a PWM has to be configured using:

Loading