Re: [PATCH v3 04/15] ACPI: Document ACPI device specific properties

Arnd Bergmann
2014-10-02T11:51:41Z

On Thursday 02 October 2014 13:41:23 Mika Westerberg wrote:
> On Wed, Oct 01, 2014 at 09:59:14AM +0200, Arnd Bergmann wrote:
> > On Wednesday 01 October 2014 04:11:20 Rafael J. Wysocki wrote:
> > > From: Mika Westerberg <mika.westerberg@linux.intel.com>
>
> > > +The referenced ACPI device is returned in args->adev if found.
> > > +
> > > +In addition to simple object references it is also possible to have object
> > > +references with arguments. These are represented in ASL as follows:
> > > +
> > > + Device (\_SB.PCI0.PWM)
> > > + {
> > > + Name (_DSD, Package () {
> > > + ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
> > > + Package () {
> > > + Package () {"#pwm-cells", 2}
> > > + }
> > > + })
> > > + }
> > > +
> >
> > Similarly, the "#foo-cells" syntax is an artifact of the limitations of the
> > DT syntax, and I'd assume there would be a better way to encode this
> > in ACPI. Also, a "cell" in Open Firmware is defined as a big-endian
> > 32-bit value, which doesn't directly correspond to something in ACPI,
> > and the '#' character is an artifact of the use of the Forth language
> > in Open Firmware, which you also don't have here.
>
> Same here, we tried to make it follow closely the DT description. It is
> probably not the best/optimal encoding for ACPI but it is documented
> well in Documentation/devicetree/bindings so why not use it.
>
> The summary email from Darren at KS also mentions that for the existing
> drivers, the existing schemas should be common for both implementations [1].
>
> For new bindings we probably should look out if they can be better
> represented using ACPI types.
>
> [1] http://lwn.net/Articles/609373/

I thought when we had discussed the subsystem specific bindings, the
consensus there was to have subsystem specific accessors and
properties/tables.

I would argue that for everything that ACPI already has (interrupts,
registers, gpio, dmaengine, ...) the native method should be used,
possibly using _DSD to provide naming for otherwise anonymous references.

Arnd