devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH v2 00/13] arm/tegra: Initialize GPIO & pinmux from DT
@ 2011-08-15 20:28 Stephen Warren
  2011-08-15 20:28 ` [RFC PATCH v2 02/13] arm/tegra: Avoid duplicate gpio/pinmux devices with dt Stephen Warren
                   ` (5 more replies)
  0 siblings, 6 replies; 41+ messages in thread
From: Stephen Warren @ 2011-08-15 20:28 UTC (permalink / raw)
  To: Grant Likely, Colin Cross, Erik Gilling, Olof Johansson
  Cc: Russell King, Arnd Bergmann,
	devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA, Belisko Marek, Jamie Iles,
	Shawn Guo, Sergei Shtylyov, Stephen Warren

v2:
* Enhanced pinmux code to handle "drive pingroups" as well as "mux
  pingroups". This altered the pinmux binding a little; shifting each
  type of pingroup into a sub-node in the pinmux node.
* Enumerate pingroups by enumerating DT child nodes, and mapping them to
  pingroups, rather than the other way around. Hence also removed
  modifications to <linux/of.h> and drivers/of/base.c.
* Included documentation of the bindings.
* Represent pingroup names and function names, as lower case in DT.
* Used a better name for GPIO binding GPIO list.
* Switched to boolean properties for pinmux pull-up/down.
* s/dev_err/dev_dbg/ in DT parsing debug code.
* Various minor cleanups (e.g. typos, white-space).

This patch modifies Tegra's device tree support to remove the dependency
on harmony_pinmux_init(), thus making it completely board-independent.

Some notes:

* This series is built on top of linux-next with a bunch of patches
  applied, in particular the removal of irq_to_gpio and custom gpio_to_irq
  that I'm in the process of sending to Russell. I haven't yet thought
  through how/where to merge this without causing all kinds of conflicts.

* I took care to preserve bisectability of Tegra DT support. However,
  linux-next doesn't yet have entirely useful Tegra DT support; some stuff
  from Grant's devicetree/next hasn't been pushed into linux-next yet. If
  we don't care about bisectability, I can remove a couple commits and
  possibly squash some others.

* The approach taken here is to have a custom semantic SoC-specific
  binding for each the gpio and pinmux drivers. Other alternatives
  suggested included:

  1) A generic "list of register writes" to be performed at boot. This has
     the advantage of reusability across different SoCs. However, this
     approach isn't semantic, and requires detailed knowledge of pinmux
     registers and potentially fiddly calculations when constructing the
     device tree.

  2) The ability to define disabled child nodes of the pinmux controller
     that are not processed by tegra_pinmux_probe_dt(). Other devices may
     refer to those using phandles, and later enable/disable them, thus
     representing dynamic pinmuxing in the device tree. I wasn't convinced
     whether we should represent dynamic pinmuxing using phandles.

  I discussed in more detail why I prefer the current proposal in various
  email threads.

Thanks for reading!

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

^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2011-08-23 23:35 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-15 20:28 [RFC PATCH v2 00/13] arm/tegra: Initialize GPIO & pinmux from DT Stephen Warren
2011-08-15 20:28 ` [RFC PATCH v2 02/13] arm/tegra: Avoid duplicate gpio/pinmux devices with dt Stephen Warren
     [not found]   ` <1313440100-17131-3-git-send-email-swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2011-08-16 20:46     ` Stephen Warren
2011-08-15 20:28 ` [RFC PATCH v2 09/13] gpio/tegra: Add device tree support Stephen Warren
     [not found]   ` <1313440100-17131-10-git-send-email-swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2011-08-16  3:39     ` Shawn Guo
2011-08-15 20:28 ` [RFC PATCH v2 11/13] arm/tegra: Add device tree support to pinmux driver Stephen Warren
     [not found]   ` <1313440100-17131-12-git-send-email-swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2011-08-16  3:45     ` Shawn Guo
     [not found]       ` <20110816034509.GG8044-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2011-08-23 23:35         ` Stephen Warren
2011-08-15 20:28 ` [RFC PATCH v2 12/13] arm/tegra: board-dt: Remove dependency on non-dt pinmux functions Stephen Warren
2011-08-15 20:28 ` [RFC PATCH v2 13/13] arm/tegra: Remove temporary gpio/pinmux registration workaround Stephen Warren
     [not found] ` <1313440100-17131-1-git-send-email-swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2011-08-15 20:28   ` [RFC PATCH v2 01/13] arm/tegra: Prep boards for gpio/pinmux conversion to pdevs Stephen Warren
2011-08-15 20:28   ` [RFC PATCH v2 03/13] arm/tegra: board-dt: Add AUXDATA for tegra-gpio and tegra-pinmux Stephen Warren
2011-08-16  3:30     ` Shawn Guo
     [not found]       ` <20110816033056.GE8044-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2011-08-16 20:24         ` Stephen Warren
2011-08-15 20:28   ` [RFC PATCH v2 04/13] docs/dt: Document nvidia, tegra20-gpio's nvidia, enabled-gpios property Stephen Warren
2011-08-15 20:28   ` [RFC PATCH v2 05/13] arm/dt: Tegra: Add nvidia, gpios property to GPIO controller Stephen Warren
2011-08-15 20:28   ` [RFC PATCH v2 06/13] docs/dt: Document nvidia,tegra20-pinmux binding Stephen Warren
     [not found]     ` <1313440100-17131-7-git-send-email-swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2011-08-16  3:48       ` Shawn Guo
2011-08-16 13:51       ` Arnd Bergmann
     [not found]         ` <201108161551.31389.arnd-r2nGTMty4D4@public.gmane.org>
2011-08-16 17:32           ` Stephen Warren
     [not found]             ` <74CDBE0F657A3D45AFBB94109FB122FF04AEA2537D-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2011-08-17  6:02               ` Shawn Guo
     [not found]                 ` <20110817060242.GA10037-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2011-08-17  6:17                   ` Shawn Guo
2011-08-17 11:37               ` Arnd Bergmann
     [not found]                 ` <201108171337.26166.arnd-r2nGTMty4D4@public.gmane.org>
2011-08-17 11:43                   ` Jamie Iles
2011-08-18  6:36                   ` Stephen Warren
2011-08-15 20:28   ` [RFC PATCH v2 07/13] arm/dt: Tegra: Add pinmux node Stephen Warren
2011-08-15 20:28   ` [RFC PATCH v2 08/13] gpio/tegra: Convert to a platform device Stephen Warren
2011-08-15 20:28   ` [RFC PATCH v2 10/13] arm/tegra: Convert pinmux driver " Stephen Warren
2011-08-16 13:09   ` [RFC PATCH v2 00/13] arm/tegra: Initialize GPIO & pinmux from DT Arnd Bergmann
     [not found]     ` <201108161509.17157.arnd-r2nGTMty4D4@public.gmane.org>
2011-08-16 14:01       ` Linus Walleij
     [not found]         ` <CACRpkdaVx=6AJ5DFjVN1ZYQ++hu9pT6WxD9n+pqmYVaCf1xawg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-08-16 14:37           ` Arnd Bergmann
     [not found]             ` <201108161637.16620.arnd-r2nGTMty4D4@public.gmane.org>
2011-08-16 14:45               ` Linus Walleij
2011-08-16 17:12               ` Stephen Warren
     [not found]                 ` <74CDBE0F657A3D45AFBB94109FB122FF04AEA25368-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2011-08-17 11:23                   ` Arnd Bergmann
     [not found]                     ` <201108171323.38441.arnd-r2nGTMty4D4@public.gmane.org>
2011-08-18  6:22                       ` Stephen Warren
     [not found]                         ` <74CDBE0F657A3D45AFBB94109FB122FF04AF6F3062-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2011-08-18  9:15                           ` Arnd Bergmann
2011-08-23 12:51                   ` Linus Walleij
     [not found]                     ` <CACRpkdY=nVQYnznTU7=_D0n1V1U_xOKH2y75-jKp7k7NzwH8Zw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-08-23 18:49                       ` Stephen Warren
     [not found]                         ` <74CDBE0F657A3D45AFBB94109FB122FF04B24A38E6-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2011-08-23 20:00                           ` Linus Walleij
2011-08-22 19:56   ` Stephen Warren
     [not found]     ` <74CDBE0F657A3D45AFBB94109FB122FF04B24A3687-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2011-08-22 22:56       ` Olof Johansson

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).