Thread (41 messages) 41 messages, 7 authors, 2011-08-23

RE: [RFC PATCH v2 00/13] arm/tegra: Initialize GPIO & pinmux from DT

From: Stephen Warren <hidden>
Date: 2011-08-22 19:56:54
Also in: linux-arm-kernel, linux-tegra, lkml

Stephen Warren wrote at Monday, August 15, 2011 2:28 PM:
...
This patch modifies Tegra's device tree support to remove the dependency
on harmony_pinmux_init(), thus making it completely board-independent.
I had the good fortune of meeting Grant at LinuxCon last week and talked
through this patchset a little (thanks!)

The message I got from Grant was that the patches are basically OK. He
did have a couple of concerns:

* Does this cause the compiled DTB to blow up in size.

The DTB goes from ~3-4K to ~8-9K with these patches added. While that
is a large % increase, Grant said that as an absolute value, that size
shouldn't be an issue.

* There's lots of repetition in the .dts representation; can this be improved?

We discussed enhancing the syntax a little, so that you can configure
multiple pins/pingroups from a single node. In particular, the syntax
in my patches was:

ld0 {
    nvidia,function = "displaya";
    nvidia,pull-down;
};
ld1 {
    nvidia,function = "displaya";
    nvidia,pull-down;
};

Which we discussed enhancing to something like:

ld0 {
    additional-pins = "ld1", "ld2", ...;
    nvidia,function = "displaya";
    nvidia,pull-down;
};

or:

meaningless-name { // typically would just use the pin name
    pins = "ld0", "ld1", "ld2", ...;
    nvidia,function = "displaya";
    nvidia,pull-down;
};

* We also briefly discussed that dtc could be modified to support symbolic
constants, so we could use named integers for the function names (perhaps
pin names too). I'll look into how easy it is to modify dtc for this.

I'll look into implementing these enhancements, and others discussed in
this email thread, and repost.
...
Stephen Warren (13):
  arm/tegra: Prep boards for gpio/pinmux conversion to pdevs
  arm/tegra: Avoid duplicate gpio/pinmux devices with dt
  arm/tegra: board-dt: Add AUXDATA for tegra-gpio and tegra-pinmux
  docs/dt: Document nvidia,tegra20-gpio's nvidia,enabled-gpios property
  arm/dt: Tegra: Add nvidia,gpios property to GPIO controller
  docs/dt: Document nvidia,tegra20-pinmux binding
  arm/dt: Tegra: Add pinmux node
  gpio/tegra: Convert to a platform device
  gpio/tegra: Add device tree support
  arm/tegra: Convert pinmux driver to a platform device
  arm/tegra: Add device tree support to pinmux driver
  arm/tegra: board-dt: Remove dependency on non-dt pinmux functions
  arm/tegra: Remove temporary gpio/pinmux registration workaround

 .../devicetree/bindings/gpio/gpio_nvidia.txt       |   20 +
 .../devicetree/bindings/pinmux/pinmux_nvidia.txt   |  294 ++++++++++++
 arch/arm/boot/dts/tegra-harmony.dts                |  483 ++++++++++++++++++++
 arch/arm/boot/dts/tegra-seaboard.dts               |  421 +++++++++++++++++
 arch/arm/boot/dts/tegra20.dtsi                     |    5 +
 arch/arm/mach-tegra/Makefile                       |    1 -
 arch/arm/mach-tegra/board-dt.c                     |   12 +-
 arch/arm/mach-tegra/board-harmony-pinmux.c         |    8 +
 arch/arm/mach-tegra/board-paz00-pinmux.c           |    8 +
 arch/arm/mach-tegra/board-seaboard-pinmux.c        |    9 +-
 arch/arm/mach-tegra/board-trimslice-pinmux.c       |    7 +
 arch/arm/mach-tegra/devices.c                      |   10 +
 arch/arm/mach-tegra/devices.h                      |    2 +
 arch/arm/mach-tegra/pinmux.c                       |  269 +++++++++++
 drivers/gpio/gpio-tegra.c                          |   57 ++-
 15 files changed, 1582 insertions(+), 24 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/pinmux/pinmux_nvidia.txt
-- 
nvpublic
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help