public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Grant Likely <grant.likely@secretlab.ca>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	Alexandre Courbot <acourbot@nvidia.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Arnd Bergmann <arnd@arndb.de>
Cc: Darren Hart <dvhart@linux.intel.com>,
	linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] ACPI / GPIO: Pass index to acpi_get_gpiod_by_index() when using properties
Date: Sat, 01 Nov 2014 11:11:43 +0000	[thread overview]
Message-ID: <20141101111143.86AC1C409FE@trevor.secretlab.ca> (raw)
In-Reply-To: <2740724.5yjNTKs1RY@vostro.rjw.lan>

On Tue, 28 Oct 2014 22:59:57 +0100
, "Rafael J. Wysocki" <rjw@rjwysocki.net>
 wrote:
> On Tuesday, October 28, 2014 01:15:27 PM Mika Westerberg wrote:
> > acpi_dev_add_driver_gpios() makes it possible to set up mapping between
> > properties and ACPI GpioIo resources in a driver, so we can take index
> > parameter in acpi_find_gpio() into use with _DSD device properties now.
> > 
> > This index can be used to select a GPIO from a property with multiple
> > GPIOs:
> > 
> >   Package () {
> >   	"data-gpios",
> >   	Package () {
> >   		\_SB.GPIO, 0, 0, 0,
> >   		\_SB.GPIO, 1, 0, 0,
> >   		\_SB.GPIO, 2, 0, 1,
> >   	}
> >   }
> > 
> > In order to retrieve the last GPIO from a driver we can simply do:
> > 
> >   desc = devm_gpiod_get_index(dev, "data", 2);
> > 
> > and so on.
> > 
> > Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
> 
> Cool. :-)
> 
> Any objections anyone?

Actually, I do. Not in the idea, but in the implementation. The way this gets encoded:

	Package () {
		\_SB.GPIO, 0, 0, 0,
		\_SB.GPIO, 1, 0, 0,
		\_SB.GPIO, 2, 0, 1,
	}

Means that decoding each GPIO tuple requires the length of a tuple to be
fixed, or to implement a DT-like #gpio-cells. If it is fixed, then there
is no way to expand the binding later. Can this be done in the following
way instead?

	Package () {
		Package () { \_SB.GPIO, 0, 0, 0 },
		Package () { \_SB.GPIO, 1, 0, 0 },
		Package () { \_SB.GPIO, 2, 0, 1 },
	}

This is one of the biggest pains in device tree. We don't have any way
to group tuples so it requires looking up stuff across the tree to
figure out how to parse each multi-item property.

I know that last year we talked about how bios vendors would get
complicated properties wrong, but I think there is little risk in this
case. If the property is encoded wrong, the driver simply won't work and
it is unlikely to get shipped before being fixed.

g.


  parent reply	other threads:[~2014-11-01 11:11 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-28 11:15 [PATCH] ACPI / GPIO: Pass index to acpi_get_gpiod_by_index() when using properties Mika Westerberg
2014-10-28 15:57 ` Darren Hart
2014-10-28 21:59 ` Rafael J. Wysocki
2014-10-29  7:41   ` Alexandre Courbot
2014-10-29  8:54     ` Mika Westerberg
2014-10-29 14:42       ` Rafael J. Wysocki
2014-10-29 14:51         ` Rafael J. Wysocki
2014-10-29 14:44           ` Mika Westerberg
2014-11-01 11:11   ` Grant Likely [this message]
2014-11-03  4:49     ` Darren Hart
2014-11-03 15:25       ` Rafael J. Wysocki
2014-11-03 21:52         ` Rafael J. Wysocki
2014-11-04 14:48           ` Grant Likely
2014-11-04 16:06             ` Rafael J. Wysocki
2014-11-04 22:54               ` Rafael J. Wysocki
2014-11-04 22:58                 ` Grant Likely
2014-11-04 23:42                 ` Darren Hart
2014-11-05 20:59                   ` Rafael J. Wysocki
2014-11-05 20:53                     ` Darren Hart
2014-11-05  9:16                 ` Mika Westerberg
2014-11-05 21:00                   ` Rafael J. Wysocki

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=20141101111143.86AC1C409FE@trevor.secretlab.ca \
    --to=grant.likely@secretlab.ca \
    --cc=acourbot@nvidia.com \
    --cc=arnd@arndb.de \
    --cc=dvhart@linux.intel.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=rjw@rjwysocki.net \
    /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