From: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
To: "Chen-Yu Tsai" <wens-jdAy2FN1RRM@public.gmane.org>,
Linus Walleij
<linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Cc: "linux-arm-kernel"
<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
Johannes Berg <johannes-cdvu00un1VgdHxzADdlk8Q@public.gmane.org>,
"David S. Miller" <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>,
devicetree <devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
netdev <netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"linux-wireless"
<linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"linux-sunxi"
<linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>,
"linux-kernel"
<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Maxime Ripard
<maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
Alexandre Courbot
<gnurou-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
linux-gpio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH RFC 4/6] net: rfkill: gpio: add device tree support
Date: Fri, 17 Jan 2014 21:13:13 +0100 [thread overview]
Message-ID: <201401172113.14322.arnd@arndb.de> (raw)
In-Reply-To: <CAGb2v67UKiyfJbKZ_Frk3OwZupMPoA2Ck3Hj2zsRFXBQPztavg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
On Friday 17 January 2014, Chen-Yu Tsai wrote:
> On Sat, Jan 18, 2014 at 12:47 AM, Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org> wrote:
> > On Friday 17 January 2014, Chen-Yu Tsai wrote:
> >> diff --git a/Documentation/devicetree/bindings/rfkill/rfkill-gpio.txt b/Documentation/devicetree/bindings/rfkill/rfkill-gpio.txt
> >> new file mode 100644
> >> index 0000000..8a07ea4
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/rfkill/rfkill-gpio.txt
> >> @@ -0,0 +1,26 @@
> >> +GPIO controlled RFKILL devices
> >> +
> >> +Required properties:
> >> +- compatible : Must be "rfkill-gpio".
> >> +- rfkill-name : Name of RFKILL device
> >> +- rfkill-type : Type of RFKILL device: 1 for WiFi, 2 for BlueTooth
> >> +- NAME_shutdown-gpios : GPIO phandle to shutdown control
> >> + (phandle must be the second)
> >> +- NAME_reset-gpios : GPIO phandle to reset control
> >> +
> >> +NAME must match the rfkill-name property. NAME_shutdown-gpios or
> >> +NAME_reset-gpios, or both, must be defined.
> >> +
> >
> > I don't understand this part. Why do you include the name in the
> > gpios property, rather than just hardcoding the property strings
> > to "shutdown-gpios" and "reset-gpios"?
>
> This quirk is a result of how gpiod_get_index implements device tree
> lookup. You'll also notice that the shutdown GPIO must be the second
> phandle, as the driver uses indexed lookup to support ACPI cases.
> If con_id is given, it is prepended to "gpios" as the property string.
> con_id is also used as the label passed to gpiod_request, which is
> then shown in /sys/kernel/debug/gpio.
The Linux implementation should not enforce an inferior DT binding.
I think it would be better to change the code instead and make this
work with a more sensible representation.
> I can do a seperate lookup for the device tree case, with or without
> fallback to platform lookup tables. Then the names can be "reset-gpio"
> and "shutdown-gpio". Need to promote gpiod_request to non-static so
> we can register usage of the gpio, to match non-dt code path.
>
> Personally I prefer adding a "label" parameter to gpiod_get_index, so
> we can use a different name than con_id. con_id isn't used in the ACPI
> case, and is optional in platform lookup case. However device tree
> lookup is dependent on this. What I see is non-uniform behavior
> between the three. In my opinion this is undesirable, but I haven't
> come up with a good solution yet.
(adding the gpio people here). I don't understand enough of the
current API to make a good call here, but I agree that we should try
to make it more uniform and do it in a way that allows simpler DT
bindings for devices using it.
> About the property string, is the plural form required, even though we
> only want one?
I would keep the plural form for consistency.
Arnd
next prev parent reply other threads:[~2014-01-17 20:13 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-17 6:47 [PATCH RFC 0/6] net: rfkill: gpio: Add device tree support Chen-Yu Tsai
[not found] ` <1389941251-32692-1-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-01-17 6:47 ` [PATCH RFC 1/6] net: rfkill: gpio: fix gpio name buffer size off by 1 Chen-Yu Tsai
2014-01-17 9:46 ` David Laight
[not found] ` <063D6719AE5E284EB5DD2968C1650D6D45EA9D-VkEWCZq2GCInGFn1LkZF6NBPR1lH4CV8@public.gmane.org>
2014-01-17 9:59 ` Chen-Yu Tsai
2014-01-17 6:47 ` [PATCH RFC 2/6] net: rfkill: gpio: use clk_prepare_enable/clk_disable_unprepare Chen-Yu Tsai
2014-01-17 6:47 ` [PATCH RFC 3/6] net: rfkill: gpio: fix reversed clock enable state Chen-Yu Tsai
2014-01-17 6:47 ` [PATCH RFC 4/6] net: rfkill: gpio: add device tree support Chen-Yu Tsai
[not found] ` <1389941251-32692-5-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-01-17 16:47 ` Arnd Bergmann
[not found] ` <201401171747.46332.arnd-r2nGTMty4D4@public.gmane.org>
2014-01-17 17:43 ` Chen-Yu Tsai
[not found] ` <CAGb2v67UKiyfJbKZ_Frk3OwZupMPoA2Ck3Hj2zsRFXBQPztavg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-01-17 20:13 ` Arnd Bergmann [this message]
2014-01-17 23:11 ` Linus Walleij
[not found] ` <CACRpkdZOD4zeA8T5kbJ4c5NsnuzHCg1mw8rRMYNT9c4R-Qnc6A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-01-18 4:41 ` Chen-Yu Tsai
2014-01-20 8:10 ` Heikki Krogerus
2014-01-21 3:11 ` Alexandre Courbot
[not found] ` <CAAVeFuLP4MkfXGG1FMauvUw_J63zRXdhGwxqYy5W98L1wCQNbw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-01-21 9:35 ` Linus Walleij
[not found] ` <CACRpkdYiy+sya6NqRfAmsrFOXvaa3qX=qjRuTDW1vZVSaG1+Gg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-01-21 12:35 ` Arnd Bergmann
[not found] ` <201401211335.16885.arnd-r2nGTMty4D4@public.gmane.org>
2014-01-21 14:53 ` Alexandre Courbot
2014-01-21 15:25 ` Mika Westerberg
[not found] ` <CAAVeFuKFfAvSPYLmvWV5jjT-peZFJ8sJ2bbh4F=JAYoWLhjZpA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-01-21 18:50 ` Arnd Bergmann
2014-01-22 12:38 ` Mark Brown
2014-01-22 9:54 ` Linus Walleij
2014-01-22 9:58 ` Linus Walleij
[not found] ` <CACRpkdZbb=eO8YRtMn6hW0vn97PkHUo88e_o61DEC8=wPY3_PQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-01-22 11:00 ` Mika Westerberg
2014-01-27 14:24 ` Maxime Ripard
2014-01-29 4:01 ` Chen-Yu Tsai
2014-01-17 6:47 ` [PATCH RFC 5/6] net: rfkill: gpio: add clock-frequency device tree property Chen-Yu Tsai
2014-01-17 6:47 ` [PATCH RFC 6/6] ARM: sun7i: cubietruck: enable bluetooth module Chen-Yu Tsai
2014-01-17 20:26 ` [PATCH RFC 0/6] net: rfkill: gpio: Add device tree support Johannes Berg
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=201401172113.14322.arnd@arndb.de \
--to=arnd-r2ngtmty4d4@public.gmane.org \
--cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=gnurou-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=johannes-cdvu00un1VgdHxzADdlk8Q@public.gmane.org \
--cc=linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-gpio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
--cc=linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
--cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=wens-jdAy2FN1RRM@public.gmane.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).