Re: [PATCH v3 04/15] ACPI: Document ACPI device specific properties
From: Arnd Bergmann
Date: Thu Oct 02 2014 - 10:29:21 EST
On Thursday 02 October 2014 16:36:54 Mika Westerberg wrote:
>
> > Even if you want to do automatic translation between DT and ACPI,
> > I think it would be possible to treat these two the same:
> >
> > (forgive any syntax errors)
> >
> > Name (_DSD, Package () {
> > ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
> > Package () {
> > Package () { "pwms" { "led-red", ^PWM0, 0, 10 },
> > { "led-green", ^PWM0, 1, 20 }},
>
> Even though the above would fit better in ACPI, it is not allowed to
> have multiple values for a single property. One reason for that is that
> we validate each property and check that they match what is expected and
> having strict set of possible values makes it easier.
Ok, so you basically have the same limitation that we have in DT.
We have syntactical sugar in dtc that allows us to write
pwms = <&pwm0 0 10>, <&pwm1 1 20>;
or
pwms = <&pwm0 0 10 &pwm1 1 20>;
but the binary representation of the two is the same. This is the
only reason why we need the #size-cells property and I guess you
do too.
> Putting everything to a single package results this:
>
> Package () { "pwms", Package () {"led-red", ^PWM0, 0, 10, "led-green", ^PWM0, 1, 10 }}
>
> But I think the below looks better:
>
> Package () { "pwms", Package () {^PWM0, 0, 10, ^PWM0, 1, 10 }}
> Package () { "pwm-names", Package () {"led-red", "led-green"}}
Ok, if you have no way to separate the individual entries in a list of
references, I don't care much, and I can see the "pwm-names" as being more
consistent with the DT syntax.
Is this a limitation in the way that the AML syntax and compiler works,
or is this a decision you made specifically for the _DSD syntax and that
could still be changed if there is an overwhelming interest?
Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/