pwm: atmel: add Timer Counter Block PWM driver
Subsystems (3)
PATCH v2 1/1 pwm: atmel: add Timer Counter Block PWM driver
Hello,
This patch adds a PWM driver based on Atmel Timer Counter Block. Timer Counter Block is used in Waveform generator mode.
A Timer Counter Block provides up to 6 PWM devices grouped by 2:
* group 0 = PWM 0 and 1
* group 1 = PWM 1 and 2
* group 2 = PMW 3 and 4
PWM devices in a given group must be configured with the same period value.
If a PWM device in a group tries to change the period value and the other device is already configured with a different value an error will be returned.
This driver requires device tree support.
The Timer Counter Block number used to create a PWM chip is given by tc-block field in an "atmel,pwm-tcb" compatible node.
Regards,
Boris
Changes since v1:
- Fix device tree binding Documentation
- Fix Kconfig issues (missing OF dependency, deprecated HAVE_PWM select, ...)
- Fix various coding style issues.
- Cleanup code and add some comments.
---
create mode 100644 Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt create mode 100644 drivers/pwm/pwm-atmel-tcb.c
Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt new file +15 -0
@@ -0,0 +1,15 @@ +Atmel TCB PWM controller + +Required properties: +- compatible: should be "atmel,tcb-pwm" +- #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. +- tc-block: the Timer Counter block to use as a PWM chip. + +Example: + +pwm { + compatible = "atmel,tcb-pwm"; + #pwm-cells = <2>; + tc-block = <1>; +};
drivers/pwm/Kconfig +12 -0
@@ -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 "TC Block PWM" + 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-tc. + config PWM_BFIN tristate "Blackfin PWM support" depends on BFIN_GPTIMERS
drivers/pwm/Makefile +1 -0
@@ -1,5 +1,6 @@ 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
drivers/pwm/pwm-atmel-tcb.c new file +433 -0
433 lines not on this page · raw message
Signature · 1 line
1.7.0.4