From: grant.likely@secretlab.ca (Grant Likely)
To: linux-arm-kernel@lists.infradead.org
Subject: Pinmux bindings proposal
Date: Mon, 16 Jan 2012 11:28:08 -0700 [thread overview]
Message-ID: <20120116182808.GG4223@ponder.secretlab.ca> (raw)
In-Reply-To: <74CDBE0F657A3D45AFBB94109FB122FF17801D202F@HQMAIL01.nvidia.com>
On Fri, Jan 13, 2012 at 12:39:42PM -0800, Stephen Warren wrote:
> I thought a bit more about pinmux DT bindings. I came up with something
> that I like well enough, and is pretty similar to the binding that Dong
> posted recently. I think it'll work for both Tegra's and IMX's needs.
> Please take a look!
>
> Note: I've used named constants below just to make this easier to read.
> We still don't have a solution to actually use named constants in dtc yet.
>
> tegra20.dtsi:
>
> / {
> tegra_pmx: pinmux at 70000000 {
> compatible = "nvidia,tegra20-pinmux";
> reg = <0x70000014 0x10 /* Tri-state registers */
> 0x70000080 0x20 /* Mux registers */
> 0x700000a0 0x14 /* Pull-up/down registers */
> 0x70000868 0xa8>; /* Pad control registers */
> };
>
> sdhci at c8000200 {
> compatible = "nvidia,tegra20-sdhci";
> reg = <0xc8000200 0x200>;
> interrupts = <0 15 0x04>;
> };
> };
>
> tegra-harmony.dts:
>
> /{
> sdhci at c8000200 {
> cd-gpios = <&gpio 69 0>; /* gpio PI5 */
> wp-gpios = <&gpio 57 0>; /* gpio PH1 */
> power-gpios = <&gpio 155 0>; /* gpio PT3 */
>
> /*
> * A list of named configurations that this device needs.
> * Format is a list of <"name" &phandle_of_pmx_configuration>
> *
> * Multiple "name"s are needed e.g. to support active/suspend,
> * or whatever device-defined states are appropriate. The
> * device defines which names are needed, just like a device
> * defines which regulators, clocks, GPIOs, interrupts, ...
> * it needs.
> *
> * This example shows a 1:1 relation between name and phandle.
> * We might want a 1:n relation, so that we can blend multiple
> * pre-defined sets of data together, e.g. one pre-defined set
> * for the pin mux configuration, another for the pin config
> * settings, both being put into the single "default" setting
> * for this one device.
> *
> * A pinmux controller can contain this property too, to
> * define "hogged" or "system" pin mux configuration.
> *
> * Note: Mixing strings and integers in a property seems
> * unusual. However, I have seen other bindings floating
> * around that are starting to do this...
> */
> pinmux =
> <"default" &pmx_sdhci_active>
> <"suspend" &pmx_sdhci_suspend>;
>
> /* 1:n example: */
> pinmux =
> <"default" &pmx_sdhci_mux_a>
> <"default" &pmx_sdhci_pincfg_a>
> <"suspend" &pmx_sdhci_mux_a>
> <"suspend" &pmx_sdhci_pincfg_a_suspend>;
Yeah, don't do this. Mixing phandle, string and cell values in a
property gets messy and could become troublesome to parse. I've
backed away from it in the clk binding.
pinumx-* is better, but I'm not thrilled with it and I avoided that
pattern too for the latest iteration of the clk binding. I prefer
using a "pinmux" + "pinmux-names" pair of properties when dealing with
an array of like objects (ie. reg, interrupts, clks, etc), but that
might not fit well since each setting has multiple state nodes.
>
> /*
> * Alternative: One property for each required state. But,
> * how does pinctrl core know which properties to parse?
> * Every property named "pinctrl*" seems a little too far-
> * reaching. Perhaps if we used vendor-name "pinmux", that'd
> * be OK, i.e. pinmux,default and pinmux,suspend?
It isn't actually a vendor name, so don't use a ','. "pinmux-" prefix
is fine.
g.
next prev parent reply other threads:[~2012-01-16 18:28 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-13 20:39 Pinmux bindings proposal Stephen Warren
2012-01-14 7:09 ` Shawn Guo
2012-01-17 18:47 ` Stephen Warren
2012-01-18 3:32 ` Shawn Guo
2012-01-18 19:00 ` Stephen Warren
2012-01-16 12:50 ` Dong Aisheng-B29396
2012-01-17 8:23 ` Shawn Guo
2012-01-17 9:46 ` Dong Aisheng-B29396
2012-01-17 14:13 ` Shawn Guo
2012-01-17 19:32 ` Stephen Warren
2012-01-18 3:44 ` Dong Aisheng-B29396
2012-01-18 4:47 ` Shawn Guo
2012-01-18 19:24 ` Stephen Warren
2012-01-17 19:28 ` Stephen Warren
2012-01-18 11:06 ` Dong Aisheng-B29396
2012-01-20 20:28 ` Stephen Warren
2012-01-27 12:00 ` Linus Walleij
2012-01-27 16:58 ` Stephen Warren
2012-01-17 19:21 ` Stephen Warren
2012-01-18 4:01 ` Shawn Guo
2012-01-18 9:32 ` Dong Aisheng-B29396
2012-01-17 19:09 ` Stephen Warren
2012-01-18 7:24 ` Dong Aisheng-B29396
2012-01-18 19:42 ` Stephen Warren
2012-01-16 18:28 ` Grant Likely [this message]
2012-01-18 14:13 ` Tony Lindgren
2012-01-18 14:30 ` Shawn Guo
2012-01-18 15:32 ` Tony Lindgren
2012-01-18 16:29 ` Tony Lindgren
2012-01-18 20:22 ` Grant Likely
2012-01-18 20:20 ` Grant Likely
2012-01-19 10:31 ` Tony Lindgren
2012-01-18 20:02 ` Stephen Warren
2012-01-19 10:57 ` Tony Lindgren
2012-01-20 20:50 ` Stephen Warren
2012-01-23 20:13 ` Tony Lindgren
2012-01-23 22:54 ` Stephen Warren
2012-01-27 13:11 ` Linus Walleij
2012-01-18 12:16 ` Thomas Abraham
2012-01-18 19:52 ` Stephen Warren
2012-01-19 17:01 ` Tony Lindgren
2012-01-19 13:10 ` Thomas Abraham
2012-01-19 16:56 ` Tony Lindgren
2012-01-19 17:38 ` Thomas Abraham
2012-01-19 18:20 ` Tony Lindgren
2012-01-19 18:38 ` Thomas Abraham
2012-01-20 10:05 ` Tony Lindgren
2012-01-20 16:17 ` Thomas Abraham
2012-01-20 17:53 ` Tony Lindgren
2012-01-21 1:38 ` Thomas Abraham
2012-01-20 21:15 ` Stephen Warren
2012-01-20 21:11 ` Stephen Warren
2012-01-21 1:27 ` Thomas Abraham
2012-01-23 22:43 ` Stephen Warren
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=20120116182808.GG4223@ponder.secretlab.ca \
--to=grant.likely@secretlab.ca \
--cc=linux-arm-kernel@lists.infradead.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).