From: Marc Dietrich <marvin24@gmx.de>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: Alexandre Courbot <gnurou@gmail.com>,
Rhyland Klein <rklein@nvidia.com>,
Mika Westerberg <mika.westerberg@linux.intel.com>,
"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
Linus Walleij <linus.walleij@linaro.org>,
Chris Ball <cjb@laptop.org>,
Johannes Berg <johannes@sipsolutions.net>,
Adrian Hunter <adrian.hunter@intel.com>,
Alex Courbot <acourbot@nvidia.com>,
Mathias Nyman <mathias.nyman@linux.intel.com>,
Rob Landley <rob@landley.net>,
Heikki Krogerus <heikki.krogerus@linux.intel.com>,
Stephen Warren <swarren@wwwdotorg.org>,
"linux-gpio@vger.kernel.org" <linux-gpio@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Devicetree List <devicetree@vger.kernel.org>
Subject: Re: [PATCH v3 1/6] ARM: tegra: add gpiod_lookup table for paz00
Date: Thu, 28 Nov 2013 13:54:10 +0100 [thread overview]
Message-ID: <1441981.OvF23sGttd@fb07-iapwap2> (raw)
In-Reply-To: <20131128110636.GA22818@ulmo.nvidia.com>
Am Donnerstag, 28. November 2013, 12:06:37 schrieb Thierry Reding:
> On Thu, Nov 28, 2013 at 11:20:19AM +0100, Marc Dietrich wrote:
> > Am Donnerstag, 28. November 2013, 10:32:41 schrieb Thierry Reding:
> > > On Thu, Nov 28, 2013 at 10:09:14AM +0100, Marc Dietrich wrote:
> > > > The real problem with the rfkill driver is that it does not support
> > > > DT. A
> > > > naive attempt to convert it was made some year ago, but got rejected
> > > > because rfkill wasn't seen as isolated device which can be represented
> > > > in
> > > > the device- tree. Also it can not be added under some existing device
> > > > node (e.g. the wifi driver) because those devices sit normally on an
> > > > "enumeratable" bus (e.g. usb, pci), which is not listed in the device
> > > > tree at all. This is why it still requires a board file and
> > > > platform_data. I wish we could find a solution for this.
> > >
> > > There is a solution at least for PCI. You can list PCI devices within
> > > the device tree, which is really handy (required even) if for instance
> > > one of the PCI devices is an SPI or I2C controller, each providing a bus
> > > that cannot be probed. What you usually do is describe the PCI hierarchy
> > > at least up to the controller and then list slaves as child nodes.
> > >
> > > I'm not aware of anything similar for USB, but it should certainly be
> > > possible to come up with a standard binding for the USB bus. It has a
> > > topology that's similar enough to that of PCI so that the same general
> > > rules could be applied.
> > >
> > > If that's really the only thing that keeps rfkill from gaining DT
> > > support then it's something worth tackling in my opinion.
> >
> > it's not so simple I fear. The wifi driver needs to learn about the rfkill
> > "device".
>
> Why does the WiFi driver need to know about it? You say below that the
> WiFi driver polls a separate set of GPIO lines (internal to the WiFi
> module I assume?). In that case rfkill is merely a way to export control
> of that functionality so that it can be used from some other part of the
> kernel or from userspace.
You are right. We just need some device to bind this driver to. It doesn't
need to be the wifi driver.
> That's very similar to things such as backlight control or fan control.
> Still we manage to describe those in DT as well.
Yes, rfkill is just an interface for userspace to able to control the gpio.
E.g. backlight of medcom-wide seems to be related to the pwm controller, but
is not a subnode of it. Instead it is a device of its own without parent.
Hence, we may include rfkill in a similar, "free-standing" node. But this
approch was rejected in the past. Maybe this changed now.
> > As mentioned above, it's not really a device so the question is what
> > needs to be added and where? The wifi driver just polls his own gpio lines
> > to check the status of rfkill. Be we want to modify the "other side", so
> > maybe this isn't related to the wifi driver at all. It's more a "virtual
> > rfkill device". No idea if something like this exists already in device
> > tree.
> But it's a part of some other device. Or rather, it's always associated
> with another device, right? So I don't see anything particularily wrong
> with something like this:
>
> usb-controller {
> /* USB hub */
> usb@0,0 {
> ...
>
> /* USB device */
> usb@1,0 {
> ...
>
> rfkill {
> shutdown-gpio = <&gpio ...>;
> reset-gpio = <&gpio ...>;
> };
>
> ...
> };
>
> ...
> };
> };
>
> You said that the main objection was that it needed to be represented as
> a "subdevice" of whatever device it controls. If the only reason is that
> we have no means to represent those devices because they are on a bus
> that can be enumerated and therefore can't be listed in DT, then my
> suggestion is to fix things so that we can describe those devices in DT.
>
> The goal is to get rid of board files, right? board-paz00.c is the only
> one left for Tegra, and rfkill is an actual hardware component, so there
> is no reason why it can't be described in DT.
Thinking a bit more about it, rfkill is neither a hw block nor a function of
the wifi driver, so I guess it cannot be added to the usb controller (or a usb
device).
Anyway, I think this discussion deserves a new mail thread, but I don't have
enough background information to start one. We can bring this topic back when
all turkeys who deserve it, are dead.
Marc
next prev parent reply other threads:[~2013-11-28 12:54 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1385460350-17543-1-git-send-email-mika.westerberg@linux.intel.com>
[not found] ` <4501377.Eymj5teNBr@fb07-iapwap2>
[not found] ` <20131128093224.GA26634@ulmo.nvidia.com>
2013-11-28 10:20 ` [PATCH v3 1/6] ARM: tegra: add gpiod_lookup table for paz00 Marc Dietrich
2013-11-28 11:06 ` Thierry Reding
2013-11-28 12:54 ` Marc Dietrich [this message]
2013-11-29 11:03 ` Thierry Reding
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=1441981.OvF23sGttd@fb07-iapwap2 \
--to=marvin24@gmx.de \
--cc=acourbot@nvidia.com \
--cc=adrian.hunter@intel.com \
--cc=cjb@laptop.org \
--cc=devicetree@vger.kernel.org \
--cc=gnurou@gmail.com \
--cc=heikki.krogerus@linux.intel.com \
--cc=johannes@sipsolutions.net \
--cc=linus.walleij@linaro.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mathias.nyman@linux.intel.com \
--cc=mika.westerberg@linux.intel.com \
--cc=rjw@rjwysocki.net \
--cc=rklein@nvidia.com \
--cc=rob@landley.net \
--cc=swarren@wwwdotorg.org \
--cc=thierry.reding@gmail.com \
/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).