2 /******************************************************************************
4 * Module Name: aslresources.y - Bison/Yacc production rules for resources
5 * - Keep this file synched with the
6 * CvParseOpBlockType function in cvcompiler.c
8 *****************************************************************************/
10 /******************************************************************************
14 * Some or all of this work - Copyright (c) 1999 - 2017, Intel Corp.
15 * All rights reserved.
19 * 2.1. This is your license from Intel Corp. under its intellectual property
20 * rights. You may have additional license terms from the party that provided
21 * you this software, covering your right to use that party's intellectual
24 * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
25 * copy of the source code appearing in this file ("Covered Code") an
26 * irrevocable, perpetual, worldwide license under Intel's copyrights in the
27 * base code distributed originally by Intel ("Original Intel Code") to copy,
28 * make derivatives, distribute, use and display any portion of the Covered
29 * Code in any form, with the right to sublicense such rights; and
31 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
32 * license (with the right to sublicense), under only those claims of Intel
33 * patents that are infringed by the Original Intel Code, to make, use, sell,
34 * offer to sell, and import the Covered Code and derivative works thereof
35 * solely to the minimum extent necessary to exercise the above copyright
36 * license, and in no event shall the patent license extend to any additions
37 * to or modifications of the Original Intel Code. No other license or right
38 * is granted directly or by implication, estoppel or otherwise;
40 * The above copyright and patent license is granted only if the following
45 * 3.1. Redistribution of Source with Rights to Further Distribute Source.
46 * Redistribution of source code of any substantial portion of the Covered
47 * Code or modification with rights to further distribute source must include
48 * the above Copyright Notice, the above License, this list of Conditions,
49 * and the following Disclaimer and Export Compliance provision. In addition,
50 * Licensee must cause all Covered Code to which Licensee contributes to
51 * contain a file documenting the changes Licensee made to create that Covered
52 * Code and the date of any change. Licensee must include in that file the
53 * documentation of any changes made by any predecessor Licensee. Licensee
54 * must include a prominent statement that the modification is derived,
55 * directly or indirectly, from Original Intel Code.
57 * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
58 * Redistribution of source code of any substantial portion of the Covered
59 * Code or modification without rights to further distribute source must
60 * include the following Disclaimer and Export Compliance provision in the
61 * documentation and/or other materials provided with distribution. In
62 * addition, Licensee may not authorize further sublicense of source of any
63 * portion of the Covered Code, and must include terms to the effect that the
64 * license from Licensee to its licensee is limited to the intellectual
65 * property embodied in the software Licensee provides to its licensee, and
66 * not to intellectual property embodied in modifications its licensee may
69 * 3.3. Redistribution of Executable. Redistribution in executable form of any
70 * substantial portion of the Covered Code or modification must reproduce the
71 * above Copyright Notice, and the following Disclaimer and Export Compliance
72 * provision in the documentation and/or other materials provided with the
75 * 3.4. Intel retains all right, title, and interest in and to the Original
78 * 3.5. Neither the name Intel nor any other trademark owned or controlled by
79 * Intel shall be used in advertising or otherwise to promote the sale, use or
80 * other dealings in products derived from or relating to the Covered Code
81 * without prior written authorization from Intel.
83 * 4. Disclaimer and Export Compliance
85 * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
86 * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
87 * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
88 * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
89 * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
90 * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
93 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
94 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
95 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
96 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
97 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
98 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
99 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
102 * 4.3. Licensee shall not export, either directly or indirectly, any of this
103 * software or system incorporating such software without first obtaining any
104 * required license or other approval from the U. S. Department of Commerce or
105 * any other agency or department of the United States Government. In the
106 * event Licensee exports any such software from the United States or
107 * re-exports any such software from a foreign destination, Licensee shall
108 * ensure that the distribution and export/re-export of the software is in
109 * compliance with all laws, regulations, orders, or other restrictions of the
110 * U.S. Export Administration Regulations. Licensee agrees that neither it nor
111 * any of its subsidiaries will export/re-export any technical data, process,
112 * software, or service, directly or indirectly, to any country for which the
113 * United States government or any agency thereof requires an export license,
114 * other governmental approval, or letter of assurance, without first obtaining
115 * such license, approval or letter.
117 *****************************************************************************
119 * Alternatively, you may choose to be licensed under the terms of the
122 * Redistribution and use in source and binary forms, with or without
123 * modification, are permitted provided that the following conditions
125 * 1. Redistributions of source code must retain the above copyright
126 * notice, this list of conditions, and the following disclaimer,
127 * without modification.
128 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
129 * substantially similar to the "NO WARRANTY" disclaimer below
130 * ("Disclaimer") and any redistribution must be conditioned upon
131 * including a substantially similar Disclaimer requirement for further
132 * binary redistribution.
133 * 3. Neither the names of the above-listed copyright holders nor the names
134 * of any contributors may be used to endorse or promote products derived
135 * from this software without specific prior written permission.
137 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
138 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
139 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
140 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
141 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
142 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
143 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
144 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
145 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
146 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
147 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
149 * Alternatively, you may choose to be licensed under the terms of the
150 * GNU General Public License ("GPL") version 2 as published by the Free
151 * Software Foundation.
153 *****************************************************************************/
158 /*******************************************************************************
160 * ASL Resource Template Terms
162 ******************************************************************************/
165 * Note: Create two default nodes to allow conversion to a Buffer AML opcode
166 * Also, insert the EndTag at the end of the template.
169 : PARSEOP_RESOURCETEMPLATE {COMMENT_CAPTURE_OFF;}
172 ResourceMacroList '}' {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,4,
173 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
174 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
176 TrCreateLeafNode (PARSEOP_ENDTAG));
183 PARSEOP_CLOSE_PAREN {$$ = NULL;}
189 ResourceMacroTerm {$$ = TrLinkPeerNode ($1,$2);}
197 | EndDependentFnTerm {}
199 | ExtendedMemoryTerm {}
200 | ExtendedSpaceTerm {}
205 | I2cSerialBusTerm {}
206 | I2cSerialBusTermV2 {}
212 | Memory32FixedTerm {}
218 | SpiSerialBusTerm {}
219 | SpiSerialBusTermV2 {}
220 | StartDependentFnNoPriTerm {}
221 | StartDependentFnTerm {}
222 | UartSerialBusTerm {}
223 | UartSerialBusTermV2 {}
226 | WordBusNumberTerm {}
233 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_DMA);}
235 OptionalBusMasterKeyword
237 OptionalNameString_Last
238 PARSEOP_CLOSE_PAREN '{'
239 ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$5,$7,$8,$11);}
242 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
247 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDIO);}
248 OptionalResourceType_First
258 OptionalByteConstExpr
262 OptionalTranslationType_Last
263 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,15,
264 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
267 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
271 : PARSEOP_DWORDMEMORY
272 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);}
273 OptionalResourceType_First
278 ',' OptionalReadWriteKeyword
284 OptionalByteConstExpr
289 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,16,
290 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
291 | PARSEOP_DWORDMEMORY
293 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
298 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);}
299 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
310 OptionalByteConstExpr
312 OptionalNameString_Last
313 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,14,
314 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
317 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
321 : PARSEOP_ENDDEPENDENTFN
323 PARSEOP_CLOSE_PAREN {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);}
324 | PARSEOP_ENDDEPENDENTFN
326 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
331 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);}
332 OptionalResourceType_First
342 OptionalQWordConstExpr
345 OptionalTranslationType_Last
346 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,14,
347 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
350 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
354 : PARSEOP_EXTENDEDMEMORY
355 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);}
356 OptionalResourceType_First
361 ',' OptionalReadWriteKeyword
367 OptionalQWordConstExpr
371 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,15,
372 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
373 | PARSEOP_EXTENDEDMEMORY
375 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
379 : PARSEOP_EXTENDEDSPACE PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);}
380 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
391 OptionalQWordConstExpr
392 OptionalNameString_Last
393 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,13,
394 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
395 | PARSEOP_EXTENDEDSPACE
397 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
402 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDDMA);}
403 WordConstExpr /* 04: DMA RequestLines */
404 ',' WordConstExpr /* 06: DMA Channels */
405 OptionalXferSize /* 07: DMA TransferSize */
406 OptionalNameString /* 08: DescriptorName */
407 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,4,$4,$6,$7,$8);}
410 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
415 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDIO);}
418 OptionalNameString_Last
419 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
422 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
427 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_INT);}
428 InterruptTypeKeyword /* 04: InterruptType */
429 ',' InterruptLevel /* 06: InterruptLevel */
430 OptionalShareType /* 07: SharedType */
431 ',' PinConfigByte /* 09: PinConfig */
432 OptionalWordConstExpr /* 10: DebounceTimeout */
433 ',' StringData /* 12: ResourceSource */
434 OptionalByteConstExpr /* 13: ResourceSourceIndex */
435 OptionalResourceType /* 14: ResourceType */
436 OptionalNameString /* 15: DescriptorName */
437 OptionalBuffer_Last /* 16: VendorData */
438 PARSEOP_CLOSE_PAREN '{'
439 DWordConstExpr '}' {$$ = TrLinkChildren ($<n>3,11,
440 $4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);}
443 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
448 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_IO);}
449 OptionalShareType_First /* 04: SharedType */
450 ',' PinConfigByte /* 06: PinConfig */
451 OptionalWordConstExpr /* 07: DebounceTimeout */
452 OptionalWordConstExpr /* 08: DriveStrength */
453 OptionalIoRestriction /* 09: IoRestriction */
454 ',' StringData /* 11: ResourceSource */
455 OptionalByteConstExpr /* 12: ResourceSourceIndex */
456 OptionalResourceType /* 13: ResourceType */
457 OptionalNameString /* 14: DescriptorName */
458 OptionalBuffer_Last /* 15: VendorData */
459 PARSEOP_CLOSE_PAREN '{'
460 DWordList '}' {$$ = TrLinkChildren ($<n>3,11,
461 $4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);}
464 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
468 : PARSEOP_I2C_SERIALBUS
469 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS);}
470 WordConstExpr /* 04: SlaveAddress */
471 OptionalSlaveMode /* 05: SlaveMode */
472 ',' DWordConstExpr /* 07: ConnectionSpeed */
473 OptionalAddressingMode /* 08: AddressingMode */
474 ',' StringData /* 10: ResourceSource */
475 OptionalByteConstExpr /* 11: ResourceSourceIndex */
476 OptionalResourceType /* 12: ResourceType */
477 OptionalNameString /* 13: DescriptorName */
478 OptionalBuffer_Last /* 14: VendorData */
479 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,10,
480 $4,$5,$7,$8,$10,$11,$12,$13,
481 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$14);}
482 | PARSEOP_I2C_SERIALBUS
484 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
488 : PARSEOP_I2C_SERIALBUS_V2
489 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS_V2);}
490 WordConstExpr /* 04: SlaveAddress */
491 OptionalSlaveMode /* 05: SlaveMode */
492 ',' DWordConstExpr /* 07: ConnectionSpeed */
493 OptionalAddressingMode /* 08: AddressingMode */
494 ',' StringData /* 10: ResourceSource */
495 OptionalByteConstExpr /* 11: ResourceSourceIndex */
496 OptionalResourceType /* 12: ResourceType */
497 OptionalNameString /* 13: DescriptorName */
498 OptionalShareType /* 14: Share */
499 OptionalBuffer_Last /* 15: VendorData */
500 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,10,
501 $4,$5,$7,$8,$10,$11,$12,$13,$14,$15);}
502 | PARSEOP_I2C_SERIALBUS_V2
504 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
509 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_INTERRUPT);}
510 OptionalResourceType_First
511 ',' InterruptTypeKeyword
514 OptionalByteConstExpr
516 OptionalNameString_Last
517 PARSEOP_CLOSE_PAREN '{'
518 DWordList '}' {$$ = TrLinkChildren ($<n>3,8,
519 $4,$6,$8,$9,$10,$11,$12,$15);}
522 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
527 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_IO);}
533 OptionalNameString_Last
534 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
537 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
542 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);}
543 OptionalNameString_First
544 PARSEOP_CLOSE_PAREN '{'
545 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
548 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
553 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_IRQ);}
557 OptionalNameString_Last
558 PARSEOP_CLOSE_PAREN '{'
559 ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);}
562 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
567 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY24);}
568 OptionalReadWriteKeyword
573 OptionalNameString_Last
574 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
577 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
581 : PARSEOP_MEMORY32FIXED
582 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);}
583 OptionalReadWriteKeyword
586 OptionalNameString_Last
587 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);}
588 | PARSEOP_MEMORY32FIXED
590 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
595 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32);}
596 OptionalReadWriteKeyword
601 OptionalNameString_Last
602 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
605 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
610 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDIO);}
611 OptionalResourceType_First
621 OptionalByteConstExpr
625 OptionalTranslationType_Last
626 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,15,
627 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
630 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
634 : PARSEOP_QWORDMEMORY
635 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);}
636 OptionalResourceType_First
641 ',' OptionalReadWriteKeyword
647 OptionalByteConstExpr
652 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,16,
653 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
654 | PARSEOP_QWORDMEMORY
656 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
661 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);}
662 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
673 OptionalByteConstExpr
675 OptionalNameString_Last
676 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,14,
677 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
680 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
685 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_REGISTER);}
691 OptionalNameString_Last
692 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
695 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
699 : PARSEOP_SPI_SERIALBUS
700 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS);}
701 WordConstExpr /* 04: DeviceSelection */
702 OptionalDevicePolarity /* 05: DevicePolarity */
703 OptionalWireMode /* 06: WireMode */
704 ',' ByteConstExpr /* 08: DataBitLength */
705 OptionalSlaveMode /* 09: SlaveMode */
706 ',' DWordConstExpr /* 11: ConnectionSpeed */
707 ',' ClockPolarityKeyword /* 13: ClockPolarity */
708 ',' ClockPhaseKeyword /* 15: ClockPhase */
709 ',' StringData /* 17: ResourceSource */
710 OptionalByteConstExpr /* 18: ResourceSourceIndex */
711 OptionalResourceType /* 19: ResourceType */
712 OptionalNameString /* 20: DescriptorName */
713 OptionalBuffer_Last /* 21: VendorData */
714 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,14,
715 $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
716 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
717 | PARSEOP_SPI_SERIALBUS
719 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
723 : PARSEOP_SPI_SERIALBUS_V2
724 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS_V2);}
725 WordConstExpr /* 04: DeviceSelection */
726 OptionalDevicePolarity /* 05: DevicePolarity */
727 OptionalWireMode /* 06: WireMode */
728 ',' ByteConstExpr /* 08: DataBitLength */
729 OptionalSlaveMode /* 09: SlaveMode */
730 ',' DWordConstExpr /* 11: ConnectionSpeed */
731 ',' ClockPolarityKeyword /* 13: ClockPolarity */
732 ',' ClockPhaseKeyword /* 15: ClockPhase */
733 ',' StringData /* 17: ResourceSource */
734 OptionalByteConstExpr /* 18: ResourceSourceIndex */
735 OptionalResourceType /* 19: ResourceType */
736 OptionalNameString /* 20: DescriptorName */
737 OptionalShareType /* 21: Share */
738 OptionalBuffer_Last /* 22: VendorData */
739 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,14,
740 $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
741 | PARSEOP_SPI_SERIALBUS_V2
743 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
746 StartDependentFnNoPriTerm
747 : PARSEOP_STARTDEPENDENTFN_NOPRI
748 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);}
749 PARSEOP_CLOSE_PAREN '{'
750 ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,1,$6);}
751 | PARSEOP_STARTDEPENDENTFN_NOPRI
753 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
757 : PARSEOP_STARTDEPENDENTFN
758 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);}
761 PARSEOP_CLOSE_PAREN '{'
762 ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$9);}
763 | PARSEOP_STARTDEPENDENTFN
765 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
769 : PARSEOP_UART_SERIALBUS
770 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS);}
771 DWordConstExpr /* 04: ConnectionSpeed */
772 OptionalBitsPerByte /* 05: BitsPerByte */
773 OptionalStopBits /* 06: StopBits */
774 ',' ByteConstExpr /* 08: LinesInUse */
775 OptionalEndian /* 09: Endianess */
776 OptionalParityType /* 10: Parity */
777 OptionalFlowControl /* 11: FlowControl */
778 ',' WordConstExpr /* 13: Rx BufferSize */
779 ',' WordConstExpr /* 15: Tx BufferSize */
780 ',' StringData /* 17: ResourceSource */
781 OptionalByteConstExpr /* 18: ResourceSourceIndex */
782 OptionalResourceType /* 19: ResourceType */
783 OptionalNameString /* 20: DescriptorName */
784 OptionalBuffer_Last /* 21: VendorData */
785 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,15,
786 $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
787 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
788 | PARSEOP_UART_SERIALBUS
790 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
794 : PARSEOP_UART_SERIALBUS_V2
795 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS_V2);}
796 DWordConstExpr /* 04: ConnectionSpeed */
797 OptionalBitsPerByte /* 05: BitsPerByte */
798 OptionalStopBits /* 06: StopBits */
799 ',' ByteConstExpr /* 08: LinesInUse */
800 OptionalEndian /* 09: Endianess */
801 OptionalParityType /* 10: Parity */
802 OptionalFlowControl /* 11: FlowControl */
803 ',' WordConstExpr /* 13: Rx BufferSize */
804 ',' WordConstExpr /* 15: Tx BufferSize */
805 ',' StringData /* 17: ResourceSource */
806 OptionalByteConstExpr /* 18: ResourceSourceIndex */
807 OptionalResourceType /* 19: ResourceType */
808 OptionalNameString /* 20: DescriptorName */
809 OptionalShareType /* 21: Share */
810 OptionalBuffer_Last /* 22: VendorData */
811 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,15,
812 $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
813 | PARSEOP_UART_SERIALBUS_V2
815 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
820 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORLONG);}
821 OptionalNameString_First
822 PARSEOP_CLOSE_PAREN '{'
823 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
826 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
830 : PARSEOP_VENDORSHORT
831 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);}
832 OptionalNameString_First
833 PARSEOP_CLOSE_PAREN '{'
834 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
835 | PARSEOP_VENDORSHORT
837 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
841 : PARSEOP_WORDBUSNUMBER
842 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);}
843 OptionalResourceType_First
852 OptionalByteConstExpr
854 OptionalNameString_Last
855 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,12,
856 $4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
857 | PARSEOP_WORDBUSNUMBER
859 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
864 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_WORDIO);}
865 OptionalResourceType_First
875 OptionalByteConstExpr
879 OptionalTranslationType_Last
880 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,15,
881 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
884 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
889 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_WORDSPACE);}
890 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
901 OptionalByteConstExpr
903 OptionalNameString_Last
904 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,14,
905 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
908 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}