2 /******************************************************************************
4 * Module Name: aslresources.y - Bison/Yacc production rules for resources
6 *****************************************************************************/
9 * Copyright (C) 2000 - 2016, Intel Corp.
10 * All rights reserved.
12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions
15 * 1. Redistributions of source code must retain the above copyright
16 * notice, this list of conditions, and the following disclaimer,
17 * without modification.
18 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
19 * substantially similar to the "NO WARRANTY" disclaimer below
20 * ("Disclaimer") and any redistribution must be conditioned upon
21 * including a substantially similar Disclaimer requirement for further
22 * binary redistribution.
23 * 3. Neither the names of the above-listed copyright holders nor the names
24 * of any contributors may be used to endorse or promote products derived
25 * from this software without specific prior written permission.
27 * Alternatively, this software may be distributed under the terms of the
28 * GNU General Public License ("GPL") version 2 as published by the Free
29 * Software Foundation.
32 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
33 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
34 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
35 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
36 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
38 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
39 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
40 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
41 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
42 * POSSIBILITY OF SUCH DAMAGES.
48 /*******************************************************************************
50 * ASL Resource Template Terms
52 ******************************************************************************/
55 * Note: Create two default nodes to allow conversion to a Buffer AML opcode
56 * Also, insert the EndTag at the end of the template.
59 : PARSEOP_RESOURCETEMPLATE
62 ResourceMacroList '}' {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,4,
63 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
64 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
66 TrCreateLeafNode (PARSEOP_ENDTAG));}
72 PARSEOP_CLOSE_PAREN {$$ = NULL;}
78 ResourceMacroTerm {$$ = TrLinkPeerNode ($1,$2);}
86 | EndDependentFnTerm {}
88 | ExtendedMemoryTerm {}
89 | ExtendedSpaceTerm {}
95 | I2cSerialBusTermV2 {}
101 | Memory32FixedTerm {}
107 | SpiSerialBusTerm {}
108 | SpiSerialBusTermV2 {}
109 | StartDependentFnNoPriTerm {}
110 | StartDependentFnTerm {}
111 | UartSerialBusTerm {}
112 | UartSerialBusTermV2 {}
115 | WordBusNumberTerm {}
122 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_DMA);}
124 OptionalBusMasterKeyword
126 OptionalNameString_Last
127 PARSEOP_CLOSE_PAREN '{'
128 ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$5,$7,$8,$11);}
131 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
136 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDIO);}
137 OptionalResourceType_First
147 OptionalByteConstExpr
151 OptionalTranslationType_Last
152 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,15,
153 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
156 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
160 : PARSEOP_DWORDMEMORY
161 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);}
162 OptionalResourceType_First
167 ',' OptionalReadWriteKeyword
173 OptionalByteConstExpr
178 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,16,
179 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
180 | PARSEOP_DWORDMEMORY
182 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
187 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);}
188 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
199 OptionalByteConstExpr
201 OptionalNameString_Last
202 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,14,
203 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
206 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
210 : PARSEOP_ENDDEPENDENTFN
212 PARSEOP_CLOSE_PAREN {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);}
213 | PARSEOP_ENDDEPENDENTFN
215 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
220 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);}
221 OptionalResourceType_First
231 OptionalQWordConstExpr
234 OptionalTranslationType_Last
235 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,14,
236 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
239 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
243 : PARSEOP_EXTENDEDMEMORY
244 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);}
245 OptionalResourceType_First
250 ',' OptionalReadWriteKeyword
256 OptionalQWordConstExpr
260 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,15,
261 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
262 | PARSEOP_EXTENDEDMEMORY
264 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
268 : PARSEOP_EXTENDEDSPACE PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);}
269 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
280 OptionalQWordConstExpr
281 OptionalNameString_Last
282 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,13,
283 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
284 | PARSEOP_EXTENDEDSPACE
286 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
291 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDDMA);}
292 WordConstExpr /* 04: DMA RequestLines */
293 ',' WordConstExpr /* 06: DMA Channels */
294 OptionalXferSize /* 07: DMA TransferSize */
295 OptionalNameString /* 08: DescriptorName */
296 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,4,$4,$6,$7,$8);}
299 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
304 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDIO);}
307 OptionalNameString_Last
308 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
311 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
316 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_INT);}
317 InterruptTypeKeyword /* 04: InterruptType */
318 ',' InterruptLevel /* 06: InterruptLevel */
319 OptionalShareType /* 07: SharedType */
320 ',' PinConfigByte /* 09: PinConfig */
321 OptionalWordConstExpr /* 10: DebounceTimeout */
322 ',' StringData /* 12: ResourceSource */
323 OptionalByteConstExpr /* 13: ResourceSourceIndex */
324 OptionalResourceType /* 14: ResourceType */
325 OptionalNameString /* 15: DescriptorName */
326 OptionalBuffer_Last /* 16: VendorData */
327 PARSEOP_CLOSE_PAREN '{'
328 DWordConstExpr '}' {$$ = TrLinkChildren ($<n>3,11,
329 $4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);}
332 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
337 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_IO);}
338 OptionalShareType_First /* 04: SharedType */
339 ',' PinConfigByte /* 06: PinConfig */
340 OptionalWordConstExpr /* 07: DebounceTimeout */
341 OptionalWordConstExpr /* 08: DriveStrength */
342 OptionalIoRestriction /* 09: IoRestriction */
343 ',' StringData /* 11: ResourceSource */
344 OptionalByteConstExpr /* 12: ResourceSourceIndex */
345 OptionalResourceType /* 13: ResourceType */
346 OptionalNameString /* 14: DescriptorName */
347 OptionalBuffer_Last /* 15: VendorData */
348 PARSEOP_CLOSE_PAREN '{'
349 DWordList '}' {$$ = TrLinkChildren ($<n>3,11,
350 $4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);}
353 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
357 : PARSEOP_I2C_SERIALBUS
358 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS);}
359 WordConstExpr /* 04: SlaveAddress */
360 OptionalSlaveMode /* 05: SlaveMode */
361 ',' DWordConstExpr /* 07: ConnectionSpeed */
362 OptionalAddressingMode /* 08: AddressingMode */
363 ',' StringData /* 10: ResourceSource */
364 OptionalByteConstExpr /* 11: ResourceSourceIndex */
365 OptionalResourceType /* 12: ResourceType */
366 OptionalNameString /* 13: DescriptorName */
367 OptionalBuffer_Last /* 14: VendorData */
368 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,10,
369 $4,$5,$7,$8,$10,$11,$12,$13,
370 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$14);}
371 | PARSEOP_I2C_SERIALBUS
373 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
377 : PARSEOP_I2C_SERIALBUS_V2
378 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS_V2);}
379 WordConstExpr /* 04: SlaveAddress */
380 OptionalSlaveMode /* 05: SlaveMode */
381 ',' DWordConstExpr /* 07: ConnectionSpeed */
382 OptionalAddressingMode /* 08: AddressingMode */
383 ',' StringData /* 10: ResourceSource */
384 OptionalByteConstExpr /* 11: ResourceSourceIndex */
385 OptionalResourceType /* 12: ResourceType */
386 OptionalNameString /* 13: DescriptorName */
387 OptionalShareType /* 14: Share */
388 OptionalBuffer_Last /* 15: VendorData */
389 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,10,
390 $4,$5,$7,$8,$10,$11,$12,$13,$14,$15);}
391 | PARSEOP_I2C_SERIALBUS_V2
393 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
398 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_INTERRUPT);}
399 OptionalResourceType_First
400 ',' InterruptTypeKeyword
403 OptionalByteConstExpr
405 OptionalNameString_Last
406 PARSEOP_CLOSE_PAREN '{'
407 DWordList '}' {$$ = TrLinkChildren ($<n>3,8,
408 $4,$6,$8,$9,$10,$11,$12,$15);}
411 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
416 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_IO);}
422 OptionalNameString_Last
423 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
426 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
431 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);}
432 OptionalNameString_First
433 PARSEOP_CLOSE_PAREN '{'
434 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
437 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
442 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_IRQ);}
446 OptionalNameString_Last
447 PARSEOP_CLOSE_PAREN '{'
448 ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);}
451 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
456 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY24);}
457 OptionalReadWriteKeyword
462 OptionalNameString_Last
463 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
466 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
470 : PARSEOP_MEMORY32FIXED
471 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);}
472 OptionalReadWriteKeyword
475 OptionalNameString_Last
476 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);}
477 | PARSEOP_MEMORY32FIXED
479 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
484 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32);}
485 OptionalReadWriteKeyword
490 OptionalNameString_Last
491 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
494 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
499 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDIO);}
500 OptionalResourceType_First
510 OptionalByteConstExpr
514 OptionalTranslationType_Last
515 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,15,
516 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
519 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
523 : PARSEOP_QWORDMEMORY
524 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);}
525 OptionalResourceType_First
530 ',' OptionalReadWriteKeyword
536 OptionalByteConstExpr
541 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,16,
542 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
543 | PARSEOP_QWORDMEMORY
545 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
550 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);}
551 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
562 OptionalByteConstExpr
564 OptionalNameString_Last
565 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,14,
566 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
569 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
574 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_REGISTER);}
580 OptionalNameString_Last
581 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
584 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
588 : PARSEOP_SPI_SERIALBUS
589 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS);}
590 WordConstExpr /* 04: DeviceSelection */
591 OptionalDevicePolarity /* 05: DevicePolarity */
592 OptionalWireMode /* 06: WireMode */
593 ',' ByteConstExpr /* 08: DataBitLength */
594 OptionalSlaveMode /* 09: SlaveMode */
595 ',' DWordConstExpr /* 11: ConnectionSpeed */
596 ',' ClockPolarityKeyword /* 13: ClockPolarity */
597 ',' ClockPhaseKeyword /* 15: ClockPhase */
598 ',' StringData /* 17: ResourceSource */
599 OptionalByteConstExpr /* 18: ResourceSourceIndex */
600 OptionalResourceType /* 19: ResourceType */
601 OptionalNameString /* 20: DescriptorName */
602 OptionalBuffer_Last /* 21: VendorData */
603 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,14,
604 $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
605 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
606 | PARSEOP_SPI_SERIALBUS
608 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
612 : PARSEOP_SPI_SERIALBUS_V2
613 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS_V2);}
614 WordConstExpr /* 04: DeviceSelection */
615 OptionalDevicePolarity /* 05: DevicePolarity */
616 OptionalWireMode /* 06: WireMode */
617 ',' ByteConstExpr /* 08: DataBitLength */
618 OptionalSlaveMode /* 09: SlaveMode */
619 ',' DWordConstExpr /* 11: ConnectionSpeed */
620 ',' ClockPolarityKeyword /* 13: ClockPolarity */
621 ',' ClockPhaseKeyword /* 15: ClockPhase */
622 ',' StringData /* 17: ResourceSource */
623 OptionalByteConstExpr /* 18: ResourceSourceIndex */
624 OptionalResourceType /* 19: ResourceType */
625 OptionalNameString /* 20: DescriptorName */
626 OptionalShareType /* 21: Share */
627 OptionalBuffer_Last /* 22: VendorData */
628 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,14,
629 $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
630 | PARSEOP_SPI_SERIALBUS_V2
632 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
635 StartDependentFnNoPriTerm
636 : PARSEOP_STARTDEPENDENTFN_NOPRI
637 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);}
638 PARSEOP_CLOSE_PAREN '{'
639 ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,1,$6);}
640 | PARSEOP_STARTDEPENDENTFN_NOPRI
642 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
646 : PARSEOP_STARTDEPENDENTFN
647 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);}
650 PARSEOP_CLOSE_PAREN '{'
651 ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$9);}
652 | PARSEOP_STARTDEPENDENTFN
654 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
658 : PARSEOP_UART_SERIALBUS
659 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS);}
660 DWordConstExpr /* 04: ConnectionSpeed */
661 OptionalBitsPerByte /* 05: BitsPerByte */
662 OptionalStopBits /* 06: StopBits */
663 ',' ByteConstExpr /* 08: LinesInUse */
664 OptionalEndian /* 09: Endianess */
665 OptionalParityType /* 10: Parity */
666 OptionalFlowControl /* 11: FlowControl */
667 ',' WordConstExpr /* 13: Rx BufferSize */
668 ',' WordConstExpr /* 15: Tx BufferSize */
669 ',' StringData /* 17: ResourceSource */
670 OptionalByteConstExpr /* 18: ResourceSourceIndex */
671 OptionalResourceType /* 19: ResourceType */
672 OptionalNameString /* 20: DescriptorName */
673 OptionalBuffer_Last /* 21: VendorData */
674 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,15,
675 $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
676 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
677 | PARSEOP_UART_SERIALBUS
679 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
683 : PARSEOP_UART_SERIALBUS_V2
684 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS_V2);}
685 DWordConstExpr /* 04: ConnectionSpeed */
686 OptionalBitsPerByte /* 05: BitsPerByte */
687 OptionalStopBits /* 06: StopBits */
688 ',' ByteConstExpr /* 08: LinesInUse */
689 OptionalEndian /* 09: Endianess */
690 OptionalParityType /* 10: Parity */
691 OptionalFlowControl /* 11: FlowControl */
692 ',' WordConstExpr /* 13: Rx BufferSize */
693 ',' WordConstExpr /* 15: Tx BufferSize */
694 ',' StringData /* 17: ResourceSource */
695 OptionalByteConstExpr /* 18: ResourceSourceIndex */
696 OptionalResourceType /* 19: ResourceType */
697 OptionalNameString /* 20: DescriptorName */
698 OptionalShareType /* 21: Share */
699 OptionalBuffer_Last /* 22: VendorData */
700 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,15,
701 $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
702 | PARSEOP_UART_SERIALBUS_V2
704 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
709 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORLONG);}
710 OptionalNameString_First
711 PARSEOP_CLOSE_PAREN '{'
712 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
715 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
719 : PARSEOP_VENDORSHORT
720 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);}
721 OptionalNameString_First
722 PARSEOP_CLOSE_PAREN '{'
723 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
724 | PARSEOP_VENDORSHORT
726 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
730 : PARSEOP_WORDBUSNUMBER
731 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);}
732 OptionalResourceType_First
741 OptionalByteConstExpr
743 OptionalNameString_Last
744 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,12,
745 $4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
746 | PARSEOP_WORDBUSNUMBER
748 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
753 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_WORDIO);}
754 OptionalResourceType_First
764 OptionalByteConstExpr
768 OptionalTranslationType_Last
769 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,15,
770 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
773 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
778 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_WORDSPACE);}
779 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
790 OptionalByteConstExpr
792 OptionalNameString_Last
793 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,14,
794 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
797 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}