Commit 3eb05225 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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

Pull PWM changes from Thierry Reding:
 "A new driver has been added to support the PWM mode of the timer
  counter blocks found on Atmel AT91 SoCs.  The VT8500 driver now
  supports changing the PWM signal polarity and the TI drivers (EHRPWM
  and ECAP) gained suspend and resume functionality.

  User drivers can now query the core for whether access to a PWM device
  will sleep (if the PWM chip is on a slow bus such as I2C or SPI).

  The pwm-backlight driver now handles the backlight BL_CORE_FBBLANK
  state in addition to the FB layer's blanking states.

  To round things off, a few fixes and cleanups are also included"

* tag 'for-3.9-rc1' of git://gitorious.org/linux-pwm/linux-pwm:
  pwm: twl: Use to_twl() instead of container_of()
  pwm: tegra: assume CONFIG_OF
  pwm_backlight: Validate dft_brightness in main probe function
  pwm: Export pwm_{set,get}_chip_data()
  pwm: Make Kconfig entries more consistent
  pwm: Add can_sleep property to drivers
  pwm: Add pwm_can_sleep() as exported API to users
  pwm-backlight: handle BL_CORE_FBBLANK state
  pwm: pwm-tiecap: Low power sleep support
  pwm: pwm-tiehrpwm: Low power sleep support
  pwm: pwm-tiehrpwm: Update the clock handling of pwm-tiehrpwm driver
  pwm: vt8500: Add polarity support
  pwm: vt8500: Register write busy test performed incorrectly
  pwm: atmel: add Timer Counter Block PWM driver
parents ed5dc237 30f78617
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
Atmel TCB PWM controller

Required properties:
- compatible: should be "atmel,tcb-pwm"
- #pwm-cells: Should be 3.  The first cell specifies the per-chip index
  of the PWM to use, the second cell is the period in nanoseconds and
  bit 0 in the third cell is used to encode the polarity of PWM output.
  Set bit 0 of the third cell in PWM specifier to 1 for inverse polarity &
  set to 0 for normal polarity.
- tc-block: The Timer Counter block to use as a PWM chip.

Example:

pwm {
	compatible = "atmel,tcb-pwm";
	#pwm-cells = <3>;
	tc-block = <1>;
};
+6 −3
Original line number Diff line number Diff line
@@ -3,14 +3,17 @@ VIA/Wondermedia VT8500/WM8xxx series SoC PWM controller
Required properties:
- compatible: should be "via,vt8500-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.
- #pwm-cells: Should be 3. Number of cells being used to specify PWM property.
  First cell specifies the per-chip index of the PWM to use, the second
  cell is the period in nanoseconds and bit 0 in the third cell is used to
  encode the polarity of PWM output. Set bit 0 of the third in PWM specifier
  to 1 for inverse polarity & set to 0 for normal polarity.
- clocks: phandle to the PWM source clock

Example:

pwm1: pwm@d8220000 {
	#pwm-cells = <2>;
	#pwm-cells = <3>;
	compatible = "via,vt8500-pwm";
	reg = <0xd8220000 0x1000>;
	clocks = <&clkpwm>;
+15 −3
Original line number Diff line number Diff line
@@ -37,6 +37,18 @@ config PWM_AB8500
	  To compile this driver as a module, choose M here: the module
	  will be called pwm-ab8500.

config PWM_ATMEL_TCB
	tristate "Atmel TC Block PWM support"
	depends on ATMEL_TCLIB && OF
	help
	  Generic PWM framework driver for Atmel Timer Counter Block.

	  A Timer Counter Block provides 6 PWM devices grouped by 2.
	  Devices in a given group must have the same period.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-atmel-tcb.

config PWM_BFIN
	tristate "Blackfin PWM support"
	depends on BFIN_GPTIMERS
@@ -47,7 +59,7 @@ config PWM_BFIN
	  will be called pwm-bfin.

config PWM_IMX
	tristate "i.MX pwm support"
	tristate "i.MX PWM support"
	depends on ARCH_MXC
	help
	  Generic PWM framework driver for i.MX.
@@ -104,7 +116,7 @@ config PWM_PXA
	  will be called pwm-pxa.

config PWM_SAMSUNG
	tristate "Samsung pwm support"
	tristate "Samsung PWM support"
	depends on PLAT_SAMSUNG
	help
	  Generic PWM framework driver for Samsung.
@@ -183,7 +195,7 @@ config PWM_TWL_LED
	  will be called pwm-twl-led.

config PWM_VT8500
	tristate "vt8500 pwm support"
	tristate "vt8500 PWM support"
	depends on ARCH_VT8500
	help
	  Generic PWM framework driver for vt8500.
+1 −0
Original line number Diff line number Diff line
obj-$(CONFIG_PWM)		+= core.o
obj-$(CONFIG_PWM_AB8500)	+= pwm-ab8500.o
obj-$(CONFIG_PWM_ATMEL_TCB)	+= pwm-atmel-tcb.o
obj-$(CONFIG_PWM_BFIN)		+= pwm-bfin.o
obj-$(CONFIG_PWM_IMX)		+= pwm-imx.o
obj-$(CONFIG_PWM_JZ4740)	+= pwm-jz4740.o
+14 −0
Original line number Diff line number Diff line
@@ -211,6 +211,7 @@ int pwm_set_chip_data(struct pwm_device *pwm, void *data)

	return 0;
}
EXPORT_SYMBOL_GPL(pwm_set_chip_data);

/**
 * pwm_get_chip_data() - get private chip data for a PWM
@@ -220,6 +221,7 @@ void *pwm_get_chip_data(struct pwm_device *pwm)
{
	return pwm ? pwm->chip_data : NULL;
}
EXPORT_SYMBOL_GPL(pwm_get_chip_data);

/**
 * pwmchip_add() - register a new PWM chip
@@ -763,6 +765,18 @@ void devm_pwm_put(struct device *dev, struct pwm_device *pwm)
}
EXPORT_SYMBOL_GPL(devm_pwm_put);

/**
  * pwm_can_sleep() - report whether PWM access will sleep
  * @pwm: PWM device
  *
  * It returns true if accessing the PWM can sleep, false otherwise.
  */
bool pwm_can_sleep(struct pwm_device *pwm)
{
	return pwm->chip->can_sleep;
}
EXPORT_SYMBOL_GPL(pwm_can_sleep);

#ifdef CONFIG_DEBUG_FS
static void pwm_dbg_show(struct pwm_chip *chip, struct seq_file *s)
{
Loading