|
@@ -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
|
|
|
-------------
|