From: tony@atomide.com (Tony Lindgren)
To: linux-arm-kernel@lists.infradead.org
Subject: Pinmux bindings proposal
Date: Wed, 18 Jan 2012 06:13:29 -0800 [thread overview]
Message-ID: <20120118141329.GA22818@atomide.com> (raw)
In-Reply-To: <20120116182808.GG4223@ponder.secretlab.ca>
Hi,
* Grant Likely <grant.likely@secretlab.ca> [120116 09:55]:
> On Fri, Jan 13, 2012 at 12:39:42PM -0800, Stephen Warren wrote:
> > 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.
Yup, that's because the string is embedded directly into the mixed
mode array and will likely make the following data unaligned. That
means it's extremely flakey to parse, and will lead into horrible
errors if you have typos in the .dts file.. Tried that and gave up
on it.
I think I've found a way to avoid using names at all, assuming we set
each pin as a phandle for the drivers to use :)
If some drivers need to use pin names, they should be optional
optional for the cases where the phandle is not available.
Here's what I'm currently using:
pinnmux at 4a100000 {
compatible = "pinmux-simple";
reg = <0x4a100000 0x01d4>;
#address-cells = <1>;
#size-cells = <0>;
#pinmux-cells = <2>;
/* uart3_rx_irrx dmtimer8_pwm_evt na gpio_143 na na na safe_mode */
uart3_rx_irrx: mux-uart3_rx_irrx at 4a100144 {
reg = <0x4a100144>;
gpios = <&gpio1 1 0>;
#pin-args = <1>;
};
/* uart3_tx_irtx dmtimer9_pwm_evt na gpio_144 na na na safe_mode */
uart3_tx_irtx: mux-uart3_tx_irtx at 4a100146 {
reg = <0x4a100146>;
gpios = <&gpio1 2 0>;
#pin-args = <1>;
};
...
};
serial at 48020000 {
compatible = "ti,8250";
reg = <0x48020000 0x100>;
reg-shift = <2>;
interrupts = <106>;
pins = <&uart3_rx_irrx 0x10
&uart3_tx_irtx 0x0>;
};
Here I have just one value for each pin register but note that the
#pin-args allows specifying the number or configuration options
depending on the hardware like of_gpio.c does using
of_parse_phandle_with_args().
The various functions for each pin controller register are only
in the comments, so currently the function needs to be provided as
a value. A preprosessor should solve that issue at some point.
This should work for anything that has one register per pin.I'd
assume the pin groups can be described here too for the hardware
that one register per pin group only just by specifying group-pins
array there?
Cheers,
Tony
next prev parent reply other threads:[~2012-01-18 14:13 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
2012-01-18 14:13 ` Tony Lindgren [this message]
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=20120118141329.GA22818@atomide.com \
--to=tony@atomide.com \
--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).