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: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-26 10:05 [PATCH v3 0/6] gpio / ACPI: convert users to gpiod_* and drop acpi_gpio.h Mika Westerberg
2013-11-26 10:05 ` [PATCH v3 1/6] ARM: tegra: add gpiod_lookup table for paz00 Mika Westerberg
2013-11-26 20:33 ` Stephen Warren
2013-11-27 2:28 ` Alex Courbot
2013-11-27 16:47 ` Rhyland Klein
2013-11-28 2:47 ` Alexandre Courbot
2013-11-28 9:09 ` Marc Dietrich
2013-11-28 9:32 ` Thierry Reding
2013-11-28 10:20 ` 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
2013-12-03 12:49 ` [PATCHv4] " Heikki Krogerus
2013-12-03 13:10 ` Mika Westerberg
2013-12-03 20:21 ` Stephen Warren
2013-12-04 5:18 ` Alex Courbot
2013-12-11 11:51 ` Linus Walleij
2013-11-26 10:05 ` [PATCH v3 2/6] net: rfkill: gpio: convert to descriptor-based GPIO interface Mika Westerberg
2013-11-27 2:30 ` Alex Courbot
2013-12-11 12:00 ` Linus Walleij
2013-12-11 12:00 ` Linus Walleij
2013-12-23 10:54 ` Mika Westerberg
2013-12-23 10:54 ` Mika Westerberg
2013-12-23 21:14 ` Johannes Berg
2013-12-23 21:14 ` Johannes Berg
2014-01-07 17:43 ` Linus Walleij
2014-01-07 17:43 ` Linus Walleij
2013-11-26 10:05 ` [PATCH v3 3/6] mmc: sdhci-acpi: convert to use GPIO descriptor API Mika Westerberg
2014-01-07 17:47 ` Linus Walleij
2013-11-26 10:05 ` [PATCH v3 4/6] gpio / ACPI: register to ACPI events automatically Mika Westerberg
2014-01-07 17:50 ` Linus Walleij
2014-01-08 10:22 ` Mika Westerberg
2013-11-26 10:05 ` [PATCH v3 5/6] gpio / ACPI: get rid of acpi_gpio.h Mika Westerberg
2013-11-28 14:41 ` Linus Walleij
2013-11-26 10:05 ` [PATCH v3 6/6] Documentation / ACPI: update to GPIO descriptor API Mika Westerberg
2013-11-28 14:36 ` [PATCH v3 0/6] gpio / ACPI: convert users to gpiod_* and drop acpi_gpio.h Linus Walleij
2013-11-28 17:04 ` Mika Westerberg
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 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.