From: heiko@sntech.de (Heiko Stübner)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/4] ARM: pinctrl: Add Broadcom Capri pinctrl driver
Date: Tue, 5 Nov 2013 00:26:55 +0100 [thread overview]
Message-ID: <201311050026.56321.heiko@sntech.de> (raw)
In-Reply-To: <CACRpkdYSLxp2M4HghcUdjEYGh-UQ+DaiCGp6yee+Qds6DR9poA@mail.gmail.com>
Am Montag, 4. November 2013, 13:24:10 schrieb Linus Walleij:
> > In my driver, I have the "one entry per pin" support for all my
> > properties instead of just the function property, like the "drive_str"
> > property below:
> >
> > + grp_1 {
> > + brcm,pins = "pin1", "pin2", "pin3";
> > + brcm,function = "alt1", "alt2", "alt1";
> > + brcm,drive_str = <2 4 6>;
> > + brcm,slew = <1>;
> > + };
>
> On Sat, Oct 26, 2013 at 12:48 AM, Sherman Yin <syin@broadcom.com> wrote:
> > I thought that would be convenient and allow users to group pins together
> > based on functionality and without the restriction that the pins must
> > have the same properties.
> > Do you think that's a good idea and are there
> > plans to support that in the generic pinconfig? If so, I can look into
> > porting my implementation to pinconf-generic.c - but first I have to
> > figure out how some of the properties would work if more than one value
> > could be specified (eg. "bias-disable" which takes no values)
>
> Hm I don't quite get it I think. It depends on the old bindings still
> working and full compatibility with old device trees. It might be a bit
> confusing.
>
> I need help from Heiko on this I think.
I remember we had a discussion about how things like bias-disable explicitly
shouldn't have a value, when they are represented in the list-format:
pcfg_pull_none: pcfg_pull_none {
bias-disable;
};
so a bias-disable = <1> was explicitly "forbidden" [for a lack of a better
word]. And it was similar for other options, the parameter not meant to be
indicating if they are active but really only setting the "strength" or so.
But how to represent this in the list variant above, I don't know.
Having a brcm,bias-disable = <0>, <1>, ... thus looks wrong and also does not
seem to scale well to all the possible options (bias-* and the others).
Having a brcm,bias = <x>, <y>, <z>, ... with constants denoting pull-up, -
down, disable, etc might be possible, but I'm missing the electrical
engineering knowledge on the possibility of those bias-things being combined.
For example on my rockchip-pinctrl driver, the pins also do not need to have
the same configuration to be grouped together - inspired at the time by the
format the at91 driver uses. Here each pin forms a tuple instead of being
identified by an index. In it the basic function is set directly and then
references a predefined list of pinctrl options.
pcfg_pull_none: pcfg_pull_none {
bias-disable;
};
uart0 {
uart0_xfer: uart0-xfer {
rockchip,pins = <RK_GPIO1 0 RK_FUNC_1 &pcfg_pull_none>,
<RK_GPIO1 1 RK_FUNC_1 &pcfg_pull_none>;
};
...
};
A switch to something like to following would also be a possibility:
pcfg1: pcfg1 {
bias-disable;
slew-rate = <1>;
};
pcfg2: pcfg2 {
drive-strength = <2>;
};
grp_1 {
brcm,pins = "pin1", "pin2", "pin3";
brcm,function = "alt1", "alt2", "alt1";
brcm,pinconf = <&pcfg1>, <&pcfg2>
};
So far my unsorted thoughts [and recoverable memory] on this :-)
Heiko
WARNING: multiple messages have this Message-ID (diff)
From: "Heiko Stübner" <heiko@sntech.de>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: Sherman Yin <syin@broadcom.com>,
Laxman Dewangan <ldewangan@nvidia.com>,
Mark Rutland <mark.rutland@arm.com>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
Christian Daudt <bcm@fixthebug.org>,
Russell King <linux@arm.linux.org.uk>,
Pawel Moll <pawel.moll@arm.com>,
Ian Campbell <ijc+devicetree@hellion.org.uk>,
Stephen Warren <swarren@wwwdotorg.org>,
"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Rob Herring <rob.herring@calxeda.com>,
bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>,
Rob Landley <rob@landley.net>,
Grant Likely <grant.likely@linaro.org>,
Matt Porter <matt.porter@linaro.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH 3/4] ARM: pinctrl: Add Broadcom Capri pinctrl driver
Date: Tue, 5 Nov 2013 00:26:55 +0100 [thread overview]
Message-ID: <201311050026.56321.heiko@sntech.de> (raw)
In-Reply-To: <CACRpkdYSLxp2M4HghcUdjEYGh-UQ+DaiCGp6yee+Qds6DR9poA@mail.gmail.com>
Am Montag, 4. November 2013, 13:24:10 schrieb Linus Walleij:
> > In my driver, I have the "one entry per pin" support for all my
> > properties instead of just the function property, like the "drive_str"
> > property below:
> >
> > + grp_1 {
> > + brcm,pins = "pin1", "pin2", "pin3";
> > + brcm,function = "alt1", "alt2", "alt1";
> > + brcm,drive_str = <2 4 6>;
> > + brcm,slew = <1>;
> > + };
>
> On Sat, Oct 26, 2013 at 12:48 AM, Sherman Yin <syin@broadcom.com> wrote:
> > I thought that would be convenient and allow users to group pins together
> > based on functionality and without the restriction that the pins must
> > have the same properties.
> > Do you think that's a good idea and are there
> > plans to support that in the generic pinconfig? If so, I can look into
> > porting my implementation to pinconf-generic.c - but first I have to
> > figure out how some of the properties would work if more than one value
> > could be specified (eg. "bias-disable" which takes no values)
>
> Hm I don't quite get it I think. It depends on the old bindings still
> working and full compatibility with old device trees. It might be a bit
> confusing.
>
> I need help from Heiko on this I think.
I remember we had a discussion about how things like bias-disable explicitly
shouldn't have a value, when they are represented in the list-format:
pcfg_pull_none: pcfg_pull_none {
bias-disable;
};
so a bias-disable = <1> was explicitly "forbidden" [for a lack of a better
word]. And it was similar for other options, the parameter not meant to be
indicating if they are active but really only setting the "strength" or so.
But how to represent this in the list variant above, I don't know.
Having a brcm,bias-disable = <0>, <1>, ... thus looks wrong and also does not
seem to scale well to all the possible options (bias-* and the others).
Having a brcm,bias = <x>, <y>, <z>, ... with constants denoting pull-up, -
down, disable, etc might be possible, but I'm missing the electrical
engineering knowledge on the possibility of those bias-things being combined.
For example on my rockchip-pinctrl driver, the pins also do not need to have
the same configuration to be grouped together - inspired at the time by the
format the at91 driver uses. Here each pin forms a tuple instead of being
identified by an index. In it the basic function is set directly and then
references a predefined list of pinctrl options.
pcfg_pull_none: pcfg_pull_none {
bias-disable;
};
uart0 {
uart0_xfer: uart0-xfer {
rockchip,pins = <RK_GPIO1 0 RK_FUNC_1 &pcfg_pull_none>,
<RK_GPIO1 1 RK_FUNC_1 &pcfg_pull_none>;
};
...
};
A switch to something like to following would also be a possibility:
pcfg1: pcfg1 {
bias-disable;
slew-rate = <1>;
};
pcfg2: pcfg2 {
drive-strength = <2>;
};
grp_1 {
brcm,pins = "pin1", "pin2", "pin3";
brcm,function = "alt1", "alt2", "alt1";
brcm,pinconf = <&pcfg1>, <&pcfg2>
};
So far my unsorted thoughts [and recoverable memory] on this :-)
Heiko
next prev parent reply other threads:[~2013-11-04 23:26 UTC|newest]
Thread overview: 196+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-04 0:23 [PATCH 0/4] Add Broadcom Capri pinctrl driver Sherman Yin
2013-10-04 0:23 ` Sherman Yin
2013-10-04 0:23 ` Sherman Yin
2013-10-04 0:23 ` [PATCH 1/4] pinctrl: Add void * to pinctrl_pin_desc Sherman Yin
2013-10-04 0:23 ` Sherman Yin
2013-10-09 8:55 ` Linus Walleij
2013-10-09 8:55 ` Linus Walleij
2013-10-09 8:55 ` Linus Walleij
2013-10-09 22:57 ` Sherman Yin
2013-10-09 22:57 ` Sherman Yin
2013-10-04 0:23 ` [PATCH 2/4] pinctrl: Add pinctrl binding for Broadcom Capri SoCs Sherman Yin
2013-10-04 0:23 ` Sherman Yin
2013-10-04 0:23 ` Sherman Yin
2013-10-04 12:51 ` Matt Porter
2013-10-04 12:51 ` Matt Porter
2013-10-09 8:53 ` Linus Walleij
2013-10-09 8:53 ` Linus Walleij
2013-10-09 8:53 ` Linus Walleij
2013-10-10 17:57 ` Sherman Yin
2013-10-10 17:57 ` Sherman Yin
2013-10-04 0:23 ` [PATCH 3/4] ARM: pinctrl: Add Broadcom Capri pinctrl driver Sherman Yin
2013-10-04 0:23 ` Sherman Yin
2013-10-04 0:23 ` Sherman Yin
2013-10-09 9:10 ` Linus Walleij
2013-10-09 9:10 ` Linus Walleij
2013-10-10 23:48 ` Sherman Yin
2013-10-10 23:48 ` Sherman Yin
2013-10-11 8:14 ` Linus Walleij
2013-10-11 8:14 ` Linus Walleij
2013-10-11 8:14 ` Linus Walleij
2013-10-11 18:25 ` Sherman Yin
2013-10-11 18:25 ` Sherman Yin
2013-10-22 23:29 ` Sherman Yin
2013-10-22 23:29 ` Sherman Yin
2013-10-25 22:48 ` Sherman Yin
2013-10-25 22:48 ` Sherman Yin
2013-11-04 12:24 ` Linus Walleij
2013-11-04 12:24 ` Linus Walleij
2013-11-04 23:26 ` Heiko Stübner [this message]
2013-11-04 23:26 ` Heiko Stübner
2013-11-05 0:04 ` Stephen Warren
2013-11-05 0:04 ` Stephen Warren
2013-11-06 2:02 ` Sherman Yin
2013-11-06 2:02 ` Sherman Yin
2013-11-06 9:40 ` Linus Walleij
2013-11-06 9:40 ` Linus Walleij
2013-11-08 0:29 ` Sherman Yin
2013-11-08 0:29 ` Sherman Yin
2013-11-11 10:01 ` Linus Walleij
2013-11-11 10:01 ` Linus Walleij
2013-11-13 23:43 ` Sherman Yin
2013-11-13 23:43 ` Sherman Yin
2013-11-13 23:43 ` Sherman Yin
2013-11-19 20:39 ` Linus Walleij
2013-11-19 20:39 ` Linus Walleij
2013-11-06 17:00 ` Stephen Warren
2013-11-06 17:00 ` Stephen Warren
2013-11-06 17:00 ` Stephen Warren
2013-11-07 22:01 ` Sherman Yin
2013-11-07 22:01 ` Sherman Yin
2013-11-06 9:29 ` Linus Walleij
2013-11-06 9:29 ` Linus Walleij
2013-10-17 6:03 ` Christian Daudt
2013-10-17 6:03 ` Christian Daudt
2013-10-17 14:54 ` Stephen Warren
2013-10-17 14:54 ` Stephen Warren
2013-10-17 15:31 ` Christian Daudt
2013-10-17 15:31 ` Christian Daudt
2013-12-11 0:05 ` Sherman Yin
2013-12-11 0:05 ` Sherman Yin
2013-12-12 20:43 ` Linus Walleij
2013-12-12 20:43 ` Linus Walleij
2013-10-04 0:23 ` [PATCH 4/4] pinctrl: Enable pinctrl for Broadcom Capri SoCs Sherman Yin
2013-10-04 0:23 ` Sherman Yin
2013-10-09 9:11 ` Linus Walleij
2013-10-09 9:11 ` Linus Walleij
2013-10-07 19:28 ` [PATCH v2 0/4] Add Broadcom Capri pinctrl driver Sherman Yin
2013-10-07 19:28 ` Sherman Yin
2013-10-07 19:28 ` [PATCH v2 1/4] pinctrl: Add void * to pinctrl_pin_desc Sherman Yin
2013-10-07 19:28 ` Sherman Yin
2013-10-07 19:28 ` [PATCH v2 2/4] pinctrl: Add pinctrl binding for Broadcom Capri SoCs Sherman Yin
2013-10-07 19:28 ` Sherman Yin
2013-10-07 19:28 ` [PATCH v2 3/4] ARM: pinctrl: Add Broadcom Capri pinctrl driver Sherman Yin
2013-10-07 19:28 ` Sherman Yin
2013-10-07 19:28 ` [PATCH v2 4/4] pinctrl: Enable pinctrl for Broadcom Capri SoCs Sherman Yin
2013-10-07 19:28 ` Sherman Yin
2013-12-11 18:37 ` [PATCH v3 0/6] Add Broadcom Capri pinctrl driver Sherman Yin
2013-12-11 18:37 ` Sherman Yin
2013-12-11 18:37 ` Sherman Yin
2013-12-11 18:37 ` [PATCH v3 1/6] pinctrl: Add void * to pinctrl_pin_desc Sherman Yin
2013-12-11 18:37 ` Sherman Yin
2013-12-11 18:37 ` Sherman Yin
2013-12-11 18:37 ` [PATCH v3 2/6] pinctrl: Adds slew-rate, input-enable/disable Sherman Yin
2013-12-11 18:37 ` Sherman Yin
2013-12-11 18:37 ` Sherman Yin
2013-12-12 20:41 ` Linus Walleij
2013-12-12 20:41 ` Linus Walleij
2013-12-16 9:55 ` Linus Walleij
2013-12-16 9:55 ` Linus Walleij
2013-12-11 18:37 ` [PATCH v3 3/6] pinctrl: Make PINCTRL selectable by defconfig/menuconfig Sherman Yin
2013-12-11 18:37 ` Sherman Yin
2013-12-11 18:37 ` Sherman Yin
2013-12-12 20:39 ` Linus Walleij
2013-12-12 20:39 ` Linus Walleij
2013-12-12 21:35 ` Christian Daudt
2013-12-12 21:35 ` Christian Daudt
2013-12-16 10:01 ` Linus Walleij
2013-12-16 10:01 ` Linus Walleij
2013-12-17 0:18 ` Bjorn Andersson
2013-12-17 0:18 ` Bjorn Andersson
2013-12-17 0:18 ` Bjorn Andersson
2013-12-20 9:37 ` Linus Walleij
2013-12-20 9:37 ` Linus Walleij
2013-12-20 20:58 ` Arnd Bergmann
2013-12-20 20:58 ` Arnd Bergmann
2013-12-20 20:58 ` Arnd Bergmann
2013-12-21 2:15 ` Sherman Yin
2013-12-21 2:15 ` Sherman Yin
2013-12-11 18:37 ` [PATCH v3 4/6] pinctrl: Add pinctrl binding for Broadcom Capri SoCs Sherman Yin
2013-12-11 18:37 ` Sherman Yin
2013-12-11 18:37 ` Sherman Yin
2013-12-12 20:37 ` Linus Walleij
2013-12-12 20:37 ` Linus Walleij
2013-12-14 1:16 ` Sherman Yin
2013-12-14 1:16 ` Sherman Yin
2013-12-14 1:16 ` Sherman Yin
2013-12-16 13:17 ` Linus Walleij
2013-12-16 13:17 ` Linus Walleij
2013-12-18 2:02 ` Sherman Yin
2013-12-18 2:02 ` Sherman Yin
2013-12-18 2:02 ` Sherman Yin
2013-12-11 18:37 ` [PATCH v3 5/6] ARM: pinctrl: Add Broadcom Capri pinctrl driver Sherman Yin
2013-12-11 18:37 ` Sherman Yin
2013-12-11 18:37 ` Sherman Yin
2013-12-12 20:54 ` Linus Walleij
2013-12-12 20:54 ` Linus Walleij
2013-12-13 10:22 ` Mark Brown
2013-12-13 10:22 ` Mark Brown
2013-12-19 0:12 ` Sherman Yin
2013-12-19 0:12 ` Sherman Yin
2013-12-18 23:56 ` Sherman Yin
2013-12-18 23:56 ` Sherman Yin
2013-12-21 2:31 ` Sherman Yin
2013-12-21 2:31 ` Sherman Yin
2013-12-11 18:37 ` [PATCH v3 6/6] pinctrl: Enable pinctrl for Broadcom Capri SoCs Sherman Yin
2013-12-11 18:37 ` Sherman Yin
2013-12-11 18:37 ` Sherman Yin
2013-12-21 2:13 ` [PATCH v4 0/6] Add Broadcom Capri pinctrl driver Sherman Yin
2013-12-21 2:13 ` Sherman Yin
2013-12-21 2:13 ` Sherman Yin
2013-12-21 2:13 ` [PATCH v4 1/4] pinctrl: Add void * to pinctrl_pin_desc Sherman Yin
2013-12-21 2:13 ` Sherman Yin
2013-12-21 2:13 ` Sherman Yin
2014-01-16 13:26 ` Linus Walleij
2014-01-16 13:26 ` Linus Walleij
2013-12-21 2:13 ` [PATCH v4 2/4] pinctrl: Add pinctrl binding for Broadcom Capri SoCs Sherman Yin
2013-12-21 2:13 ` Sherman Yin
2013-12-21 2:13 ` Sherman Yin
2014-01-07 17:15 ` Linus Walleij
2014-01-07 17:15 ` Linus Walleij
2014-01-07 20:45 ` Sherman Yin
2014-01-07 20:45 ` Sherman Yin
2014-01-14 10:16 ` Linus Walleij
2014-01-14 10:16 ` Linus Walleij
2014-01-14 19:00 ` Sherman Yin
2014-01-14 19:00 ` Sherman Yin
2014-01-15 9:40 ` Linus Walleij
2014-01-15 9:40 ` Linus Walleij
2014-01-15 16:39 ` Mark Rutland
2014-01-15 16:39 ` Mark Rutland
2014-01-16 13:24 ` Linus Walleij
2014-01-16 13:24 ` Linus Walleij
2014-01-16 13:24 ` Linus Walleij
2013-12-21 2:13 ` [PATCH v4 3/4] ARM: pinctrl: Add Broadcom Capri pinctrl driver Sherman Yin
2013-12-21 2:13 ` Sherman Yin
2013-12-21 2:13 ` Sherman Yin
2014-01-16 13:19 ` Linus Walleij
2014-01-16 13:19 ` Linus Walleij
2014-01-17 19:59 ` Sherman Yin
2014-01-17 19:59 ` Sherman Yin
2014-01-18 2:56 ` Matt Porter
2014-01-18 2:56 ` Matt Porter
2014-01-18 2:56 ` Matt Porter
2014-01-20 8:16 ` Linus Walleij
2014-01-20 8:16 ` Linus Walleij
2014-01-20 19:14 ` Sherman Yin
2014-01-20 19:14 ` Sherman Yin
2014-01-21 12:35 ` Linus Walleij
2014-01-21 12:35 ` Linus Walleij
2014-01-21 13:49 ` Matt Porter
2014-01-21 13:49 ` Matt Porter
2013-12-21 2:13 ` [PATCH v4 4/4] pinctrl: Enable pinctrl for Broadcom Capri SoCs Sherman Yin
2013-12-21 2:13 ` Sherman Yin
2013-12-21 2:13 ` Sherman Yin
2014-01-16 13:28 ` Linus Walleij
2014-01-16 13:28 ` Linus Walleij
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=201311050026.56321.heiko@sntech.de \
--to=heiko@sntech.de \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.