From: Thierry Reding <thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
To: devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org
Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Sascha Hauer <s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>,
Matthias Kaehlcke
<matthias-RprLehDfhQ3k1uMJSBkQmQ@public.gmane.org>,
Kurt Van Dijck <kurt.van.dijck-/BeEPy95v10@public.gmane.org>,
Rob Herring <rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org>,
Grant Likely
<grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>,
Colin Cross <ccross-z5hGa2qSFaRBDgjK7y7TUQ@public.gmane.org>,
Olof Johansson <olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org>,
Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>,
Richard Purdie <rpurdie-Fm38FmjxZ/leoWH0uzbU5w@public.gmane.org>,
Mark Brown
<broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>,
Mitch Bradley <wmb-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>,
Mike Frysinger <vapier-aBrp7R+bbdUdnm+yROfE0A@public.gmane.org>,
Eric Miao <eric.y.miao-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Lars-Peter Clausen <lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>,
Ryan Mallon <rmallon-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Shawn Guo <shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Bernhard Walle <walle-pDveNdigDaDu9UdzE1sIFA@public.gmane.org>
Subject: [PATCH v5 00/16] Add PWM framework and device tree support
Date: Wed, 28 Mar 2012 16:33:42 +0200 [thread overview]
Message-ID: <1332945238-14897-1-git-send-email-thierry.reding@avionic-design.de> (raw)
This patch series adds very rudimentary device-tree support for PWM
devices. With all of these patches applied (plus one board-specific
patch that is not included), I'm able to control the backlight on the
device I'm working on using the sysfs interface provided by the pwm-bl
driver and the backlight class.
This series is based on Sascha Hauer's series of patches[0] to add a
generic PWM framework. The first patch in this series is taken from
Sascha's branch, while the second patch enables each PWM chip to provide
multiple PWM devices (the Blackfin and PXA drivers have been ported to
the framework for reference). Currently a global namespace is still
provided to keep backwards-compatibility with the legacy PWM API. In
order to achieve this, the number of global PWM devices is limited to
1024. However, patch 2 introduces per-chip indexing of PWM devices in
the core and patch 4 adds an API to request a PWM device using a lookup
table registered by board setup code. They are supposed to eventually
replace pwm_request() and allow to get rid of the global namespace. The
device tree support code does not use the global namespace.
Patch 3 adds a debugfs interface.
Patch 5 adds some code to lookup a PWM chip given its device-tree
handle. This code will be used later on by the pwm-bl driver to find the
PWM device that it should be using. If the no corresponding PWM chip is
available yet, the code returns EPROBE_DEFER to have users automatically
probed again later when the PWM provider may have become available.
Device tree binding documentation is also provided.
Patch 6 was taken from the Chromium tree and is required to provide
proper clocking of the Tegra2 PWFM controller. All Chromium-specific
tags have been removed from the commit message. Some cleanup of the
clock registration for Tegra is done in patch 7 because a subsequent
patch will instantiate one PWFM controller device instead of four.
Patch 8 adds a generic PWM framework driver for the Tegra2 PWFM
controller. The code is taken from the Chromium tree with some
adjustments to integrate it with the PWM framework. Device tree based
probing of the driver is implemented in patch 9.
Patches 10 and 11 are ports of the Blackfin PWM and the PXA PWM drivers
to the PWM framework. These are only compile-tested as I do not have any
hardware to test them on.
Patches 12, 13 and 14 move the i.MX, Samsung and VT8500 drivers over to
the framework. These are originally by Sascha Hauer and were updated to
take advantage of the multiple PWM devices per chip feature.
Patch 15 implements DT-based probing in the pwm-backlight driver. Note
that this code only handles the "pwms" property (by looking up the PWM
device via the new PWM DT binding). Switching power to the backlight via
GPIOs is not supported yet. The DT binding also deviates from the
platform data in that it requires a list of brightness levels to be
specified instead of assuming a linearily spaced range from 0 to a given
maximum brightness.
Finally, patch 16 makes me the new maintainer of the PWM subsystem.
The whole series is based on the linux-next tree from 20120328. I think
I've addressed all of the concerns raised in the first four versions.
Thierry
[0]: http://git.pengutronix.de/?p=imx/linux-2.6.git;a=shortlog;h=refs/heads/pwmlib
Sascha Hauer (4):
pwm: Add PWM framework support
ARM i.MX: Move i.MX pwm driver to pwm framework
ARM Samsung: Move s3c pwm driver to pwm framework
ARM vt8500: Move vt8500 pwm driver to pwm framework
Simon Que (1):
ARM: tegra: Fix PWM clock programming
Thierry Reding (11):
pwm: Allow chips to support multiple PWMs
pwm: Add debugfs interface
pwm: Add table-based lookup for static mappings
pwm: Add device tree support
ARM: tegra: Provide clock for only one PWM controller
pwm: Add NVIDIA Tegra SoC support
pwm: tegra: Add device tree support
pwm: Move Blackfin PWM driver to PWM framework
pwm: Move PXA PWM driver to PWM framework
pwm-backlight: Add rudimentary device tree support
pwm: Take over maintainership of the PWM subsystem
.../devicetree/bindings/pwm/nvidia,tegra20-pwm.txt | 18 +
Documentation/devicetree/bindings/pwm/pwm.txt | 53 ++
.../bindings/video/backlight/pwm-backlight | 30 +
Documentation/pwm.txt | 76 +++
MAINTAINERS | 12 +
arch/arm/boot/dts/tegra20.dtsi | 6 +
arch/arm/boot/dts/tegra30.dtsi | 6 +
arch/arm/mach-tegra/board-dt-tegra20.c | 1 +
arch/arm/mach-tegra/board-dt-tegra30.c | 3 +
arch/arm/mach-tegra/tegra2_clocks.c | 36 +-
arch/arm/mach-tegra/tegra30_clocks.c | 6 +-
arch/arm/mach-vt8500/Makefile | 2 -
arch/arm/plat-mxc/Kconfig | 6 -
arch/arm/plat-mxc/Makefile | 1 -
arch/arm/plat-pxa/Makefile | 1 -
arch/arm/plat-samsung/Makefile | 4 -
arch/blackfin/Kconfig | 10 -
arch/blackfin/kernel/Makefile | 1 -
arch/blackfin/kernel/pwm.c | 100 ---
drivers/Kconfig | 2 +
drivers/Makefile | 1 +
drivers/pwm/Kconfig | 67 ++
drivers/pwm/Makefile | 7 +
drivers/pwm/core.c | 679 ++++++++++++++++++++
drivers/pwm/pwm-bfin.c | 164 +++++
arch/arm/plat-mxc/pwm.c => drivers/pwm/pwm-imx.c | 182 ++----
arch/arm/plat-pxa/pwm.c => drivers/pwm/pwm-pxa.c | 172 ++---
.../pwm.c => drivers/pwm/pwm-samsung.c | 228 +++----
drivers/pwm/pwm-tegra.c | 265 ++++++++
.../mach-vt8500/pwm.c => drivers/pwm/pwm-vt8500.c | 169 ++---
drivers/video/backlight/Kconfig | 2 +-
drivers/video/backlight/pwm_bl.c | 145 ++++-
include/linux/of_pwm.h | 34 +
include/linux/pwm.h | 115 ++++
include/linux/pwm_backlight.h | 1 +
35 files changed, 1967 insertions(+), 638 deletions(-)
create mode 100644 Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt
create mode 100644 Documentation/devicetree/bindings/pwm/pwm.txt
create mode 100644 Documentation/devicetree/bindings/video/backlight/pwm-backlight
create mode 100644 Documentation/pwm.txt
delete mode 100644 arch/blackfin/kernel/pwm.c
create mode 100644 drivers/pwm/Kconfig
create mode 100644 drivers/pwm/Makefile
create mode 100644 drivers/pwm/core.c
create mode 100644 drivers/pwm/pwm-bfin.c
rename arch/arm/plat-mxc/pwm.c => drivers/pwm/pwm-imx.c (58%)
rename arch/arm/plat-pxa/pwm.c => drivers/pwm/pwm-pxa.c (57%)
rename arch/arm/plat-samsung/pwm.c => drivers/pwm/pwm-samsung.c (58%)
create mode 100644 drivers/pwm/pwm-tegra.c
rename arch/arm/mach-vt8500/pwm.c => drivers/pwm/pwm-vt8500.c (52%)
create mode 100644 include/linux/of_pwm.h
--
1.7.9.4
next reply other threads:[~2012-03-28 14:33 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-28 14:33 Thierry Reding [this message]
[not found] ` <1332945238-14897-1-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-03-28 14:33 ` [PATCH v5 01/16] pwm: Add PWM framework support Thierry Reding
[not found] ` <1332945238-14897-2-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-03-29 21:41 ` Mark Brown
2012-04-04 6:36 ` Shawn Guo
[not found] ` <20120404063605.GB7264-rvtDTF3kK1ictlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2012-04-04 6:39 ` Thierry Reding
2012-03-28 14:33 ` [PATCH v5 02/16] pwm: Allow chips to support multiple PWMs Thierry Reding
[not found] ` <1332945238-14897-3-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-03-29 21:50 ` Mark Brown
2012-04-04 6:44 ` Shawn Guo
2012-03-28 14:33 ` [PATCH v5 03/16] pwm: Add debugfs interface Thierry Reding
[not found] ` <1332945238-14897-4-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-03-29 21:56 ` Mark Brown
2012-04-04 6:47 ` Shawn Guo
2012-03-28 14:33 ` [PATCH v5 04/16] pwm: Add table-based lookup for static mappings Thierry Reding
[not found] ` <1332945238-14897-5-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-03-29 22:03 ` Mark Brown
2012-03-30 5:06 ` Thierry Reding
[not found] ` <20120330050641.GA21823-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-03-30 10:18 ` Mark Brown
[not found] ` <20120330101800.GD21950-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2012-03-30 10:38 ` Thierry Reding
[not found] ` <20120330103840.GB961-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-03-31 14:30 ` Thierry Reding
[not found] ` <20120331143021.GA18382-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-04-01 15:20 ` Shawn Guo
[not found] ` <20120401152042.GE2395-rvtDTF3kK1ictlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2012-04-02 0:47 ` Shawn Guo
[not found] ` <20120402004730.GA910-rvtDTF3kK1ictlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2012-04-02 4:50 ` Thierry Reding
2012-03-28 14:33 ` [PATCH v5 05/16] pwm: Add device tree support Thierry Reding
[not found] ` <1332945238-14897-6-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-03-28 14:53 ` Arnd Bergmann
2012-03-29 21:47 ` Mark Brown
[not found] ` <20120329214717.GG4153-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2012-03-30 6:24 ` Thierry Reding
2012-03-28 14:33 ` [PATCH v5 06/16] ARM: tegra: Fix PWM clock programming Thierry Reding
2012-03-28 14:33 ` [PATCH v5 07/16] ARM: tegra: Provide clock for only one PWM controller Thierry Reding
2012-03-28 14:33 ` [PATCH v5 08/16] pwm: Add NVIDIA Tegra SoC support Thierry Reding
[not found] ` <1332945238-14897-9-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-03-30 18:57 ` Stephen Warren
2012-04-04 6:54 ` Shawn Guo
2012-03-28 14:33 ` [PATCH v5 09/16] pwm: tegra: Add device tree support Thierry Reding
[not found] ` <1332945238-14897-10-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-03-30 19:00 ` Stephen Warren
[not found] ` <4F7602CD.2010808-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-04-02 8:37 ` Thierry Reding
[not found] ` <20120402083749.GA6576-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-04-02 15:42 ` Stephen Warren
[not found] ` <4F79C8D4.2000306-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-04-03 17:55 ` Thierry Reding
[not found] ` <20120403175511.GA26399-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-04-03 19:43 ` Rob Herring
2012-04-03 23:42 ` Grant Likely
2012-04-04 5:00 ` Thierry Reding
[not found] ` <20120404050054.GA30807-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-04-04 18:32 ` Stephen Warren
2012-04-07 1:44 ` Grant Likely
2012-03-28 14:33 ` [PATCH v5 10/16] pwm: Move Blackfin PWM driver to PWM framework Thierry Reding
2012-03-28 14:33 ` [PATCH v5 11/16] pwm: Move PXA " Thierry Reding
2012-03-28 14:33 ` [PATCH v5 12/16] ARM i.MX: Move i.MX pwm driver to pwm framework Thierry Reding
2012-03-28 14:33 ` [PATCH v5 13/16] ARM Samsung: Move s3c " Thierry Reding
2012-03-28 14:33 ` [PATCH v5 14/16] ARM vt8500: Move vt8500 " Thierry Reding
2012-03-28 14:33 ` [PATCH v5 16/16] pwm: Take over maintainership of the PWM subsystem Thierry Reding
2012-03-28 14:33 ` [PATCH v5 15/16] pwm-backlight: Add rudimentary device tree support Thierry Reding
[not found] ` <1332945238-14897-16-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-03-30 19:04 ` Stephen Warren
[not found] ` <4F7603BC.2050300-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-04-04 18:11 ` Thierry Reding
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=1332945238-14897-1-git-send-email-thierry.reding@avionic-design.de \
--to=thierry.reding-rm9k5ik7kjkj5m59nbduvrnah6klmebb@public.gmane.org \
--cc=arnd-r2nGTMty4D4@public.gmane.org \
--cc=broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org \
--cc=ccross-z5hGa2qSFaRBDgjK7y7TUQ@public.gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
--cc=eric.y.miao-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org \
--cc=kurt.van.dijck-/BeEPy95v10@public.gmane.org \
--cc=lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=matthias-RprLehDfhQ3k1uMJSBkQmQ@public.gmane.org \
--cc=olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org \
--cc=rmallon-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org \
--cc=rpurdie-Fm38FmjxZ/leoWH0uzbU5w@public.gmane.org \
--cc=s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
--cc=shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org \
--cc=vapier-aBrp7R+bbdUdnm+yROfE0A@public.gmane.org \
--cc=walle-pDveNdigDaDu9UdzE1sIFA@public.gmane.org \
--cc=wmb-D5eQfiDGL7eakBO8gow8eQ@public.gmane.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 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).