[v2] Documentation: gpio: Update ACPI part of the document to mention _DSD
diff mbox

Message ID 1427875996-216926-1-git-send-email-mika.westerberg@linux.intel.com
State New
Headers show

Commit Message

Mika Westerberg April 1, 2015, 8:13 a.m. UTC
With ACPI 5.1 _DSD (Device Specific Data) it is now possible to name
functions just like Device Tree is doing. Make sure that the documentation
mentions _DSD as the recommended way to describe GPIOs in ACPI systems.

Reported-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
---
v2: Corrected text according what Darren suggested

 Documentation/gpio/board.txt | 41 +++++++++++++++++++++++++++++++++++++----
 1 file changed, 37 insertions(+), 4 deletions(-)

Comments

Rafael J. Wysocki April 1, 2015, 1:37 p.m. UTC | #1
On Wednesday, April 01, 2015 11:13:16 AM Mika Westerberg wrote:
> With ACPI 5.1 _DSD (Device Specific Data) it is now possible to name
> functions just like Device Tree is doing. Make sure that the documentation
> mentions _DSD as the recommended way to describe GPIOs in ACPI systems.
> 
> Reported-by: Darren Hart <dvhart@linux.intel.com>
> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>

Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

> ---
> v2: Corrected text according what Darren suggested
> 
>  Documentation/gpio/board.txt | 41 +++++++++++++++++++++++++++++++++++++----
>  1 file changed, 37 insertions(+), 4 deletions(-)
> 
> diff --git a/Documentation/gpio/board.txt b/Documentation/gpio/board.txt
> index 8b35f51fe7b6..b80606de545a 100644
> --- a/Documentation/gpio/board.txt
> +++ b/Documentation/gpio/board.txt
> @@ -50,10 +50,43 @@ gpiod_is_active_low(power) will be true).
>  
>  ACPI
>  ----
> -ACPI does not support function names for GPIOs. Therefore, only the "idx"
> -argument of gpiod_get_index() is useful to discriminate between GPIOs assigned
> -to a device. The "con_id" argument can still be set for debugging purposes (it
> -will appear under error messages as well as debug and sysfs nodes).
> +ACPI also supports function names for GPIOs in a similar fashion to DT.
> +The above DT example can be converted to an equivalent ACPI description
> +with the help of _DSD (Device Specific Data), introduced in ACPI 5.1:
> +
> +	Device (FOO) {
> +		Name (_CRS, ResourceTemplate () {
> +			GpioIo (Exclusive, ..., IoRestrictionOutputOnly,
> +				"\\_SB.GPI0") {15} // red
> +			GpioIo (Exclusive, ..., IoRestrictionOutputOnly,
> +				"\\_SB.GPI0") {16} // green
> +			GpioIo (Exclusive, ..., IoRestrictionOutputOnly,
> +				"\\_SB.GPI0") {17} // blue
> +			GpioIo (Exclusive, ..., IoRestrictionOutputOnly,
> +				"\\_SB.GPI0") {1} // power
> +		})
> +
> +		Name (_DSD, Package () {
> +			ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
> +			Package () {
> +				Package () {
> +					"led-gpios",
> +					Package () {
> +						^FOO, 0, 0, 1,
> +						^FOO, 1, 0, 1,
> +						^FOO, 2, 0, 1,
> +					}
> +				},
> +				Package () {
> +					"power-gpios",
> +					Package () {^FOO, 3, 0, 0},
> +				},
> +			}
> +		})
> +	}
> +
> +For more information about the ACPI GPIO bindings see
> +Documentation/acpi/gpio-properties.txt.
>  
>  Platform Data
>  -------------
>
Darren Hart April 1, 2015, 4:16 p.m. UTC | #2
On 4/1/15, 1:13 AM, "Mika Westerberg" <mika.westerberg@linux.intel.com>
wrote:

>With ACPI 5.1 _DSD (Device Specific Data) it is now possible to name
>functions just like Device Tree is doing. Make sure that the documentation
>mentions _DSD as the recommended way to describe GPIOs in ACPI systems.
>
>Reported-by: Darren Hart <dvhart@linux.intel.com>
>Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
>---
>v2: Corrected text according what Darren suggested

Thanks Mika,

Reviewed-by: Darren Hart <dvhart@linux.intel.com>
Jonathan Corbet April 4, 2015, 9:27 a.m. UTC | #3
On Wed,  1 Apr 2015 11:13:16 +0300
Mika Westerberg <mika.westerberg@linux.intel.com> wrote:

> With ACPI 5.1 _DSD (Device Specific Data) it is now possible to name
> functions just like Device Tree is doing. Make sure that the documentation
> mentions _DSD as the recommended way to describe GPIOs in ACPI systems.

OK, I've applied this to the docs tree, thanks.

jon
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Linus Walleij April 8, 2015, 2:47 p.m. UTC | #4
On Sat, Apr 4, 2015 at 11:27 AM, Jonathan Corbet <corbet@lwn.net> wrote:
> On Wed,  1 Apr 2015 11:13:16 +0300
> Mika Westerberg <mika.westerberg@linux.intel.com> wrote:
>
>> With ACPI 5.1 _DSD (Device Specific Data) it is now possible to name
>> functions just like Device Tree is doing. Make sure that the documentation
>> mentions _DSD as the recommended way to describe GPIOs in ACPI systems.
>
> OK, I've applied this to the docs tree, thanks.

Aha Jon takes it, thx, Acked-by.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch
diff mbox

diff --git a/Documentation/gpio/board.txt b/Documentation/gpio/board.txt
index 8b35f51fe7b6..b80606de545a 100644
--- a/Documentation/gpio/board.txt
+++ b/Documentation/gpio/board.txt
@@ -50,10 +50,43 @@  gpiod_is_active_low(power) will be true).
 
 ACPI
 ----
-ACPI does not support function names for GPIOs. Therefore, only the "idx"
-argument of gpiod_get_index() is useful to discriminate between GPIOs assigned
-to a device. The "con_id" argument can still be set for debugging purposes (it
-will appear under error messages as well as debug and sysfs nodes).
+ACPI also supports function names for GPIOs in a similar fashion to DT.
+The above DT example can be converted to an equivalent ACPI description
+with the help of _DSD (Device Specific Data), introduced in ACPI 5.1:
+
+	Device (FOO) {
+		Name (_CRS, ResourceTemplate () {
+			GpioIo (Exclusive, ..., IoRestrictionOutputOnly,
+				"\\_SB.GPI0") {15} // red
+			GpioIo (Exclusive, ..., IoRestrictionOutputOnly,
+				"\\_SB.GPI0") {16} // green
+			GpioIo (Exclusive, ..., IoRestrictionOutputOnly,
+				"\\_SB.GPI0") {17} // blue
+			GpioIo (Exclusive, ..., IoRestrictionOutputOnly,
+				"\\_SB.GPI0") {1} // power
+		})
+
+		Name (_DSD, Package () {
+			ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+			Package () {
+				Package () {
+					"led-gpios",
+					Package () {
+						^FOO, 0, 0, 1,
+						^FOO, 1, 0, 1,
+						^FOO, 2, 0, 1,
+					}
+				},
+				Package () {
+					"power-gpios",
+					Package () {^FOO, 3, 0, 0},
+				},
+			}
+		})
+	}
+
+For more information about the ACPI GPIO bindings see
+Documentation/acpi/gpio-properties.txt.
 
 Platform Data
 -------------