ACPI 5.0/iASL: Add new I/O restriction keyword (GPIO descriptors)

Late addition of IoRestrictionNoneAndPreserve. Lin Ming.
This commit is contained in:
Robert Moore 2011-11-01 09:31:48 -07:00 committed by Lin Ming
parent a673cc5676
commit 642b20401e
6 changed files with 11 additions and 5 deletions

View File

@ -488,6 +488,7 @@ NamePathTail [.]{NameSeg}
"IoRestrictionNone" { count (0); return (PARSEOP_IORESTRICT_NONE); }
"IoRestrictionInputOnly" { count (0); return (PARSEOP_IORESTRICT_IN); }
"IoRestrictionOutputOnly" { count (0); return (PARSEOP_IORESTRICT_OUT); }
"IoRestrictionNoneAndPreserve" { count (0); return (PARSEOP_IORESTRICT_PRESERVE); }
/* LockRuleKeyword: Global Lock use for Field Operator */

View File

@ -321,6 +321,7 @@ void * AslLocalAllocate (unsigned int Size);
%token <i> PARSEOP_IORESTRICT_IN
%token <i> PARSEOP_IORESTRICT_NONE
%token <i> PARSEOP_IORESTRICT_OUT
%token <i> PARSEOP_IORESTRICT_PRESERVE
%token <i> PARSEOP_IRQ
%token <i> PARSEOP_IRQNOFLAGS
%token <i> PARSEOP_LAND
@ -2347,6 +2348,7 @@ IoRestrictionKeyword
: PARSEOP_IORESTRICT_IN {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_IN);}
| PARSEOP_IORESTRICT_OUT {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_OUT);}
| PARSEOP_IORESTRICT_NONE {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_NONE);}
| PARSEOP_IORESTRICT_PRESERVE {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_PRESERVE);}
;
LockRuleKeyword

View File

@ -330,6 +330,7 @@ const ASL_MAPPING_ENTRY AslKeywordMapping [] =
/* IORESTRICT_IN */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
/* IORESTRICT_NONE */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
/* IORESTRICT_OUT */ OP_TABLE_ENTRY (AML_BYTE_OP, 2, 0, 0),
/* IORESTRICT_PRESERVE */ OP_TABLE_ENTRY (AML_BYTE_OP, 3, 0, 0),
/* IRQ */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
/* IRQNOFLAGS */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
/* LAND */ OP_TABLE_ENTRY (AML_LAND_OP, 0, 0, ACPI_BTYPE_INTEGER),

View File

@ -264,7 +264,7 @@ const char *AcpiGbl_IorDecode[] =
"IoRestrictionNone",
"IoRestrictionInputOnly",
"IoRestrictionOutputOnly",
"/* UNKNOWN IoRestriction */"
"IoRestrictionNoneAndPreserve"
};
const char *AcpiGbl_DtsDecode[] =

View File

@ -524,9 +524,10 @@ typedef struct acpi_resource_gpio
/* Values for IoRestriction field above */
#define ACPI_IO_INPUT_OUTPUT 0
#define ACPI_IO_INPUT_ONLY 1
#define ACPI_IO_OUTPUT_ONLY 2
#define ACPI_IO_RESTRICT_NONE 0
#define ACPI_IO_RESTRICT_INPUT 1
#define ACPI_IO_RESTRICT_OUTPUT 2
#define ACPI_IO_RESTRICT_NONE_PRESERVE 3
/* Common structure for I2C, SPI, and UART serial descriptors */

View File

@ -160,7 +160,8 @@ const AH_ASL_KEYWORD AslKeywordInfo[] =
{"IoDecodeKeyword", "I/O Decoding - IO Resource Descriptor",
":= Decode16 | Decode10"},
{"IoRestrictionKeyword", "I/O Restriction - GPIO Resource Descriptors",
":= IoRestrictionNone | IoRestrictionInputOnly | IoRestrictionOutputOnly"},
":= IoRestrictionNone | IoRestrictionInputOnly | "
"IoRestrictionOutputOnly | IoRestrictionNoneAndPreserve"},
{"LockRuleKeyword", "Global Lock use for Field Operator",
":= Lock | NoLock"},
{"MatchOpKeyword", "Types for Match Operator",