From: Bill Gatliff <bgat@billgatliff.com>
To: linux-embedded@vger.kernel.org
Cc: Bill Gatliff <bgat@billgatliff.com>
Subject: [PATCH 0/6] Generic PWM API implementation
Date: Wed, 15 Oct 2008 13:14:35 -0500 [thread overview]
Message-ID: <cover.1224093510.git.bgat@billgatliff.com> (raw)
This series implements a Generic PWM Device API, including reference
implementations for the Atmel PWMC device, an LED device, and an LED
trigger. It is based on linux-2.6.27.
This API is motivated by the author's need to support pluggable
devices; a secondary objective is to consolidate the existing PWM
implementations behind an agreeable, consistent, redundancy-reducing
interface.
The code included in this patch series draws heavily from the existing
PWM infrastructure and driver for the AT91SAM9263 PWMC. The author is
grateful to Russell King, Eric Miao, David Brownell and many others
for providing such tall "shoulders" to stand upon. Modifications to
their code as described in this changeset should not be interpreted as
attempts to address shortcomings, but rather to extend functionality
in ways that were not originally required.
The implementation of the Generic PWM Device API is structurally
similar to the generic GPIO API, except that the PWM code uses
platform bus_id strings instead of integers to identify target
deviices. A configuration structure is also provided, both to
facilitate atomic hardware state changes and so that the API can be
extended in a source-code-compatible way to accomodate devices with
features not anticipated by the current code.
Pulse width modulated signals are used in an astounding number and
range of applications, and there is no "one true way" of either
realizing them or employing them to accomplish real work. The review
process revealed many use cases to the author, but countless others
undoubtedly remain. The current API attempts to provide a useful
feature set for the most basic users, packaged in such a way as to
allow the API to be extended in a backwards-compatible way as new
needs are identified.
The proposed code has been run-tested on a Cogent CSB737
(AT91SAM9263), mated to a custom circuit that drives multiple DC
motors and sensors.
Feedback is welcome!
b.g.
--
Bill Gatliff
<bgat@billgatliff.com>
---
Bill Gatliff (6):
[PWM] Generic PWM API implementation
[PWM] Changes to existing include/linux/pwm.h to adapt to generic PWM
API
[PWM] Documentation
[PWM] Driver for Atmel PWMC peripheral
[PWM] Install new Atmel PWMC driver in Kconfig, expunge old one
[PWM] New LED driver and trigger that use PWM API
Documentation/pwm.txt | 258 +++++++++++++++++
arch/arm/Kconfig | 2 +
drivers/Makefile | 2 +
drivers/leds/Kconfig | 24 ++-
drivers/leds/Makefile | 2 +
drivers/leds/leds-pwm.c | 167 +++++++++++
drivers/leds/ledtrig-dim.c | 95 ++++++
drivers/misc/Kconfig | 9 -
drivers/misc/Makefile | 1 -
drivers/misc/atmel_pwm.c | 409 --------------------------
drivers/pwm/Kconfig | 24 ++
drivers/pwm/Makefile | 6 +
drivers/pwm/atmel-pwm.c | 633 ++++++++++++++++++++++++++++++++++++++++
drivers/pwm/pwm.c | 681 ++++++++++++++++++++++++++++++++++++++++++++
include/linux/pwm-led.h | 34 +++
include/linux/pwm.h | 172 ++++++++++--
16 files changed, 2074 insertions(+), 445 deletions(-)
create mode 100644 Documentation/pwm.txt
create mode 100644 drivers/leds/leds-pwm.c
create mode 100644 drivers/leds/ledtrig-dim.c
delete mode 100644 drivers/misc/atmel_pwm.c
create mode 100644 drivers/pwm/Kconfig
create mode 100644 drivers/pwm/Makefile
create mode 100644 drivers/pwm/atmel-pwm.c
create mode 100644 drivers/pwm/pwm.c
create mode 100644 include/linux/pwm-led.h
next reply other threads:[~2008-10-15 18:14 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-15 18:14 Bill Gatliff [this message]
2008-10-15 18:14 ` [PATCH 1/6] [PWM] Generic PWM API implementation Bill Gatliff
2008-10-17 15:59 ` Mike Frysinger
2008-11-04 20:16 ` Bill Gatliff
2008-11-04 20:51 ` Mike Frysinger
2008-11-04 23:55 ` David Brownell
2008-11-05 0:17 ` Mike Frysinger
2008-11-05 2:59 ` Bill Gatliff
2008-11-05 5:08 ` David Brownell
2008-11-05 2:56 ` Bill Gatliff
2008-10-15 18:14 ` [PATCH 2/6] [PWM] Changes to existing include/linux/pwm.h to adapt to generic PWM API Bill Gatliff
2008-10-15 18:14 ` [PATCH 3/6] [PWM] Documentation Bill Gatliff
2008-10-15 18:14 ` [PATCH 4/6] [PWM] Driver for Atmel PWMC peripheral Bill Gatliff
2008-10-15 18:14 ` [PATCH 5/6] [PWM] Install new Atmel PWMC driver in Kconfig, expunge old one Bill Gatliff
2008-10-15 18:14 ` [PATCH 6/6] [PWM] New LED driver and trigger that use PWM API Bill Gatliff
2009-11-13 19:08 ` [PATCH 0/6] Generic PWM API implementation Grant Likely
2009-11-14 4:22 ` Mike Frysinger
2009-11-14 7:55 ` Grant Likely
2009-11-17 7:47 ` David Brownell
2009-11-17 15:48 ` Bill Gatliff
2009-11-17 16:53 ` David Brownell
2009-11-20 22:51 ` Grant Likely
2009-11-20 22:14 ` Grant Likely
2009-11-23 14:12 ` Bill Gatliff
2009-11-23 17:39 ` Grant Likely
2009-11-23 20:51 ` Albrecht Dreß
2009-11-28 21:38 ` David Brownell
2009-11-28 21:59 ` David Brownell
2009-11-17 15:45 ` Bill Gatliff
2009-11-17 8:27 ` David Brownell
2009-11-17 15:54 ` Bill Gatliff
2009-11-20 22:21 ` Grant Likely
2009-11-23 14:13 ` Bill Gatliff
2009-11-23 17:40 ` Grant Likely
2009-11-23 15:29 ` Mark Brown
2009-11-23 17:44 ` Grant Likely
2009-11-23 18:09 ` Mark Brown
2009-11-28 21:54 ` David Brownell
2009-11-17 15:39 ` Bill Gatliff
2009-11-20 22:49 ` Grant Likely
2009-11-28 21:28 ` David Brownell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1224093510.git.bgat@billgatliff.com \
--to=bgat@billgatliff.com \
--cc=linux-embedded@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.