aslresources.y revision 1.1.1.12 1 NoEcho('
2 /******************************************************************************
3 *
4 * Module Name: aslresources.y - Bison/Yacc production rules for resources
5 * - Keep this file synched with the
6 * CvParseOpBlockType function in cvcompiler.c
7 *
8 *****************************************************************************/
9
10 /*
11 * Copyright (C) 2000 - 2023, Intel Corp.
12 * All rights reserved.
13 *
14 * Redistribution and use in source and binary forms, with or without
15 * modification, are permitted provided that the following conditions
16 * are met:
17 * 1. Redistributions of source code must retain the above copyright
18 * notice, this list of conditions, and the following disclaimer,
19 * without modification.
20 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
21 * substantially similar to the "NO WARRANTY" disclaimer below
22 * ("Disclaimer") and any redistribution must be conditioned upon
23 * including a substantially similar Disclaimer requirement for further
24 * binary redistribution.
25 * 3. Neither the names of the above-listed copyright holders nor the names
26 * of any contributors may be used to endorse or promote products derived
27 * from this software without specific prior written permission.
28 *
29 * Alternatively, this software may be distributed under the terms of the
30 * GNU General Public License ("GPL") version 2 as published by the Free
31 * Software Foundation.
32 *
33 * NO WARRANTY
34 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
35 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
36 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
37 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
38 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
39 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
40 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
41 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
42 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
43 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
44 * POSSIBILITY OF SUCH DAMAGES.
45 */
46
47 ')
48
49
50 /*******************************************************************************
51 *
52 * ASL Resource Template Terms
53 *
54 ******************************************************************************/
55
56 /*
57 * Note: Create two default nodes to allow conversion to a Buffer AML opcode
58 * Also, insert the EndTag at the end of the template.
59 */
60 ResourceTemplateTerm
61 : PARSEOP_RESOURCETEMPLATE {COMMENT_CAPTURE_OFF;}
62 OptionalParentheses
63 '{'
64 ResourceMacroList '}' {$$ = TrCreateOp (PARSEOP_RESOURCETEMPLATE,4,
65 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),
66 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),
67 $5,
68 TrCreateLeafOp (PARSEOP_ENDTAG));
69 COMMENT_CAPTURE_ON;}
70 ;
71
72 OptionalParentheses
73 : {$$ = NULL;}
74 | PARSEOP_OPEN_PAREN
75 PARSEOP_CLOSE_PAREN {$$ = NULL;}
76 ;
77
78 ResourceMacroList
79 : {$$ = NULL;}
80 | ResourceMacroList
81 ResourceMacroTerm {$$ = TrLinkPeerOp ($1,$2);}
82 ;
83
84 ResourceMacroTerm
85 : Csi2SerialBusTerm {}
86 | DMATerm {}
87 | DWordIOTerm {}
88 | DWordMemoryTerm {}
89 | DWordSpaceTerm {}
90 | EndDependentFnTerm {}
91 | ExtendedIOTerm {}
92 | ExtendedMemoryTerm {}
93 | ExtendedSpaceTerm {}
94 | FixedDmaTerm {}
95 | FixedIOTerm {}
96 | GpioIntTerm {}
97 | GpioIoTerm {}
98 | I2cSerialBusTerm {}
99 | I2cSerialBusTermV2 {}
100 | InterruptTerm {}
101 | IOTerm {}
102 | IRQNoFlagsTerm {}
103 | IRQTerm {}
104 | Memory24Term {}
105 | Memory32FixedTerm {}
106 | Memory32Term {}
107 | PinConfigTerm {}
108 | PinFunctionTerm {}
109 | ClockInputTerm {}
110 | PinGroupTerm {}
111 | PinGroupConfigTerm {}
112 | PinGroupFunctionTerm {}
113 | QWordIOTerm {}
114 | QWordMemoryTerm {}
115 | QWordSpaceTerm {}
116 | RegisterTerm {}
117 | SpiSerialBusTerm {}
118 | SpiSerialBusTermV2 {}
119 | StartDependentFnNoPriTerm {}
120 | StartDependentFnTerm {}
121 | UartSerialBusTerm {}
122 | UartSerialBusTermV2 {}
123 | VendorLongTerm {}
124 | VendorShortTerm {}
125 | WordBusNumberTerm {}
126 | WordIOTerm {}
127 | WordSpaceTerm {}
128 ;
129
130 Csi2SerialBusTerm
131 : PARSEOP_CSI2_SERIALBUS
132 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CSI2_SERIALBUS);}
133 OptionalSlaveMode_First {UtCheckIntegerRange ($4, 0x00, 0x01);} /* 04: SlaveMode */
134 ',' ByteConstExpr {UtCheckIntegerRange ($7, 0x00, 0x03);} /* 07: PhyType */
135 OptionalByteConstExpr {UtCheckIntegerRange ($9, 0x00, 0xFC);} /* 09: LocalPortInstance */
136 ',' StringData /* 12: ResourceSource */
137 ',' ByteConstExpr /* 14: ResourceSourceIndex */
138 OptionalResourceType /* 15; ResourceType (ResourceUsage) */
139 OptionalNameString /* 16: DescriptorName */
140 OptionalBuffer_Last /* 17: VendorData */
141 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,8,
142 $4,$7,$9,$12,$14,$15,$16,$17);}
143 | PARSEOP_CSI2_SERIALBUS
144 PARSEOP_OPEN_PAREN
145 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
146
147 DMATerm
148 : PARSEOP_DMA
149 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DMA);}
150 DMATypeKeyword
151 OptionalBusMasterKeyword
152 ',' XferTypeKeyword
153 OptionalNameString_Last
154 PARSEOP_CLOSE_PAREN '{'
155 ByteList '}' {$$ = TrLinkOpChildren ($<n>3,5,$4,$5,$7,$8,$11);}
156 | PARSEOP_DMA
157 PARSEOP_OPEN_PAREN
158 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
159 ;
160
161 DWordIOTerm
162 : PARSEOP_DWORDIO
163 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDIO);}
164 OptionalResourceType_First
165 OptionalMinType
166 OptionalMaxType
167 OptionalDecodeType
168 OptionalRangeType
169 ',' DWordConstExpr
170 ',' DWordConstExpr
171 ',' DWordConstExpr
172 ',' DWordConstExpr
173 ',' DWordConstExpr
174 OptionalByteConstExpr
175 OptionalStringData
176 OptionalNameString
177 OptionalType
178 OptionalTranslationType_Last
179 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
180 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
181 | PARSEOP_DWORDIO
182 PARSEOP_OPEN_PAREN
183 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
184 ;
185
186 DWordMemoryTerm
187 : PARSEOP_DWORDMEMORY
188 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDMEMORY);}
189 OptionalResourceType_First
190 OptionalDecodeType
191 OptionalMinType
192 OptionalMaxType
193 OptionalMemType
194 ',' OptionalReadWriteKeyword
195 ',' DWordConstExpr
196 ',' DWordConstExpr
197 ',' DWordConstExpr
198 ',' DWordConstExpr
199 ',' DWordConstExpr
200 OptionalByteConstExpr
201 OptionalStringData
202 OptionalNameString
203 OptionalAddressRange
204 OptionalType_Last
205 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,16,
206 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
207 | PARSEOP_DWORDMEMORY
208 PARSEOP_OPEN_PAREN
209 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
210 ;
211
212 DWordSpaceTerm
213 : PARSEOP_DWORDSPACE
214 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDSPACE);}
215 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
216 OptionalResourceType
217 OptionalDecodeType
218 OptionalMinType
219 OptionalMaxType
220 ',' ByteConstExpr
221 ',' DWordConstExpr
222 ',' DWordConstExpr
223 ',' DWordConstExpr
224 ',' DWordConstExpr
225 ',' DWordConstExpr
226 OptionalByteConstExpr
227 OptionalStringData
228 OptionalNameString_Last
229 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
230 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
231 | PARSEOP_DWORDSPACE
232 PARSEOP_OPEN_PAREN
233 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
234 ;
235
236 EndDependentFnTerm
237 : PARSEOP_ENDDEPENDENTFN
238 PARSEOP_OPEN_PAREN
239 PARSEOP_CLOSE_PAREN {$$ = TrCreateLeafOp (PARSEOP_ENDDEPENDENTFN);}
240 | PARSEOP_ENDDEPENDENTFN
241 PARSEOP_OPEN_PAREN
242 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
243 ;
244
245 ExtendedIOTerm
246 : PARSEOP_EXTENDEDIO
247 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_EXTENDEDIO);}
248 OptionalResourceType_First
249 OptionalMinType
250 OptionalMaxType
251 OptionalDecodeType
252 OptionalRangeType
253 ',' QWordConstExpr
254 ',' QWordConstExpr
255 ',' QWordConstExpr
256 ',' QWordConstExpr
257 ',' QWordConstExpr
258 OptionalQWordConstExpr
259 OptionalNameString
260 OptionalType
261 OptionalTranslationType_Last
262 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
263 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
264 | PARSEOP_EXTENDEDIO
265 PARSEOP_OPEN_PAREN
266 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
267 ;
268
269 ExtendedMemoryTerm
270 : PARSEOP_EXTENDEDMEMORY
271 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_EXTENDEDMEMORY);}
272 OptionalResourceType_First
273 OptionalDecodeType
274 OptionalMinType
275 OptionalMaxType
276 OptionalMemType
277 ',' OptionalReadWriteKeyword
278 ',' QWordConstExpr
279 ',' QWordConstExpr
280 ',' QWordConstExpr
281 ',' QWordConstExpr
282 ',' QWordConstExpr
283 OptionalQWordConstExpr
284 OptionalNameString
285 OptionalAddressRange
286 OptionalType_Last
287 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
288 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
289 | PARSEOP_EXTENDEDMEMORY
290 PARSEOP_OPEN_PAREN
291 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
292 ;
293
294 ExtendedSpaceTerm
295 : PARSEOP_EXTENDEDSPACE PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_EXTENDEDSPACE);}
296 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
297 OptionalResourceType
298 OptionalDecodeType
299 OptionalMinType
300 OptionalMaxType
301 ',' ByteConstExpr
302 ',' QWordConstExpr
303 ',' QWordConstExpr
304 ',' QWordConstExpr
305 ',' QWordConstExpr
306 ',' QWordConstExpr
307 OptionalQWordConstExpr
308 OptionalNameString_Last
309 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,13,
310 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
311 | PARSEOP_EXTENDEDSPACE
312 PARSEOP_OPEN_PAREN
313 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
314 ;
315
316 FixedDmaTerm
317 : PARSEOP_FIXEDDMA
318 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FIXEDDMA);}
319 WordConstExpr /* 04: DMA RequestLines */
320 ',' WordConstExpr /* 06: DMA Channels */
321 OptionalXferSize /* 07: DMA TransferSize */
322 OptionalNameString /* 08: DescriptorName */
323 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,$4,$6,$7,$8);}
324 | PARSEOP_FIXEDDMA
325 PARSEOP_OPEN_PAREN
326 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
327 ;
328
329 FixedIOTerm
330 : PARSEOP_FIXEDIO
331 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FIXEDIO);}
332 WordConstExpr
333 ',' ByteConstExpr
334 OptionalNameString_Last
335 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$7);}
336 | PARSEOP_FIXEDIO
337 PARSEOP_OPEN_PAREN
338 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
339 ;
340
341 GpioIntTerm
342 : PARSEOP_GPIO_INT
343 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_GPIO_INT);}
344 InterruptTypeKeyword /* 04: InterruptType */
345 ',' InterruptLevel /* 06: InterruptLevel */
346 OptionalShareType /* 07: SharedType */
347 ',' PinConfigByte /* 09: PinConfig */
348 OptionalWordConstExpr /* 10: DebounceTimeout */
349 ',' StringData /* 12: ResourceSource */
350 OptionalByteConstExpr /* 13: ResourceSourceIndex */
351 OptionalResourceType /* 14: ResourceType */
352 OptionalNameString /* 15: DescriptorName */
353 OptionalBuffer_Last /* 16: VendorData */
354 PARSEOP_CLOSE_PAREN '{'
355 DWordConstExpr '}' {$$ = TrLinkOpChildren ($<n>3,11,
356 $4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);}
357 | PARSEOP_GPIO_INT
358 PARSEOP_OPEN_PAREN
359 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
360 ;
361
362 GpioIoTerm
363 : PARSEOP_GPIO_IO
364 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_GPIO_IO);}
365 OptionalShareType_First /* 04: SharedType */
366 ',' PinConfigByte /* 06: PinConfig */
367 OptionalWordConstExpr /* 07: DebounceTimeout */
368 OptionalWordConstExpr /* 08: DriveStrength */
369 OptionalIoRestriction /* 09: IoRestriction */
370 ',' StringData /* 11: ResourceSource */
371 OptionalByteConstExpr /* 12: ResourceSourceIndex */
372 OptionalResourceType /* 13: ResourceType */
373 OptionalNameString /* 14: DescriptorName */
374 OptionalBuffer_Last /* 15: VendorData */
375 PARSEOP_CLOSE_PAREN '{'
376 DWordList '}' {$$ = TrLinkOpChildren ($<n>3,11,
377 $4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);}
378 | PARSEOP_GPIO_IO
379 PARSEOP_OPEN_PAREN
380 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
381 ;
382
383 I2cSerialBusTerm
384 : PARSEOP_I2C_SERIALBUS
385 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_I2C_SERIALBUS);}
386 WordConstExpr /* 04: SlaveAddress */
387 OptionalSlaveMode /* 05: SlaveMode */
388 ',' DWordConstExpr /* 07: ConnectionSpeed */
389 OptionalAddressingMode /* 08: AddressingMode */
390 ',' StringData /* 10: ResourceSource */
391 OptionalByteConstExpr /* 11: ResourceSourceIndex */
392 OptionalResourceType /* 12: ResourceType */
393 OptionalNameString /* 13: DescriptorName */
394 OptionalBuffer_Last /* 14: VendorData */
395 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,10,
396 $4,$5,$7,$8,$10,$11,$12,$13,
397 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),$14);}
398 | PARSEOP_I2C_SERIALBUS
399 PARSEOP_OPEN_PAREN
400 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
401 ;
402
403 I2cSerialBusTermV2
404 : PARSEOP_I2C_SERIALBUS_V2
405 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_I2C_SERIALBUS_V2);}
406 WordConstExpr /* 04: SlaveAddress */
407 OptionalSlaveMode /* 05: SlaveMode */
408 ',' DWordConstExpr /* 07: ConnectionSpeed */
409 OptionalAddressingMode /* 08: AddressingMode */
410 ',' StringData /* 10: ResourceSource */
411 OptionalByteConstExpr /* 11: ResourceSourceIndex */
412 OptionalResourceType /* 12: ResourceType */
413 OptionalNameString /* 13: DescriptorName */
414 OptionalShareType /* 14: Share */
415 OptionalBuffer_Last /* 15: VendorData */
416 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,10,
417 $4,$5,$7,$8,$10,$11,$12,$13,$14,$15);}
418 | PARSEOP_I2C_SERIALBUS_V2
419 PARSEOP_OPEN_PAREN
420 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
421 ;
422
423 InterruptTerm
424 : PARSEOP_INTERRUPT
425 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_INTERRUPT);}
426 OptionalResourceType_First
427 ',' InterruptTypeKeyword
428 ',' InterruptLevel
429 OptionalShareType
430 OptionalByteConstExpr
431 OptionalStringData
432 OptionalNameString_Last
433 PARSEOP_CLOSE_PAREN '{'
434 DWordList '}' {$$ = TrLinkOpChildren ($<n>3,8,
435 $4,$6,$8,$9,$10,$11,$12,$15);}
436 | PARSEOP_INTERRUPT
437 PARSEOP_OPEN_PAREN
438 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
439 ;
440
441 IOTerm
442 : PARSEOP_IO
443 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_IO);}
444 IODecodeKeyword
445 ',' WordConstExpr
446 ',' WordConstExpr
447 ',' ByteConstExpr
448 ',' ByteConstExpr
449 OptionalNameString_Last
450 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
451 | PARSEOP_IO
452 PARSEOP_OPEN_PAREN
453 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
454 ;
455
456 IRQNoFlagsTerm
457 : PARSEOP_IRQNOFLAGS
458 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_IRQNOFLAGS);}
459 OptionalNameString_First
460 PARSEOP_CLOSE_PAREN '{'
461 ByteList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
462 | PARSEOP_IRQNOFLAGS
463 PARSEOP_OPEN_PAREN
464 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
465 ;
466
467 IRQTerm
468 : PARSEOP_IRQ
469 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_IRQ);}
470 InterruptTypeKeyword
471 ',' InterruptLevel
472 OptionalShareType
473 OptionalNameString_Last
474 PARSEOP_CLOSE_PAREN '{'
475 ByteList '}' {$$ = TrLinkOpChildren ($<n>3,5,$4,$6,$7,$8,$11);}
476 | PARSEOP_IRQ
477 PARSEOP_OPEN_PAREN
478 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
479 ;
480
481 Memory24Term
482 : PARSEOP_MEMORY24
483 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MEMORY24);}
484 OptionalReadWriteKeyword
485 ',' WordConstExpr
486 ',' WordConstExpr
487 ',' WordConstExpr
488 ',' WordConstExpr
489 OptionalNameString_Last
490 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
491 | PARSEOP_MEMORY24
492 PARSEOP_OPEN_PAREN
493 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
494 ;
495
496 Memory32FixedTerm
497 : PARSEOP_MEMORY32FIXED
498 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MEMORY32FIXED);}
499 OptionalReadWriteKeyword
500 ',' DWordConstExpr
501 ',' DWordConstExpr
502 OptionalNameString_Last
503 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,$4,$6,$8,$9);}
504 | PARSEOP_MEMORY32FIXED
505 PARSEOP_OPEN_PAREN
506 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
507 ;
508
509 Memory32Term
510 : PARSEOP_MEMORY32
511 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MEMORY32);}
512 OptionalReadWriteKeyword
513 ',' DWordConstExpr
514 ',' DWordConstExpr
515 ',' DWordConstExpr
516 ',' DWordConstExpr
517 OptionalNameString_Last
518 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
519 | PARSEOP_MEMORY32
520 PARSEOP_OPEN_PAREN
521 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
522 ;
523
524 PinConfigTerm
525 : PARSEOP_PINCONFIG
526 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINCONFIG);}
527 OptionalShareType_First /* 04: SharedType */
528 ',' ByteConstExpr /* 06: PinConfigType */
529 ',' DWordConstExpr /* 08: PinConfigValue */
530 ',' StringData /* 10: ResourceSource */
531 OptionalByteConstExpr /* 11: ResourceSourceIndex */
532 OptionalResourceType /* 12: ResourceType */
533 OptionalNameString /* 13: DescriptorName */
534 OptionalBuffer_Last /* 14: VendorData */
535 PARSEOP_CLOSE_PAREN '{'
536 DWordList '}' {$$ = TrLinkOpChildren ($<n>3,9,
537 $4,$6,$8,$10,$11,$12,$13,$14,$17);}
538 | PARSEOP_PINCONFIG
539 PARSEOP_OPEN_PAREN
540 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
541 ;
542
543 PinFunctionTerm
544 : PARSEOP_PINFUNCTION
545 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINFUNCTION);}
546 OptionalShareType_First /* 04: SharedType */
547 ',' PinConfigByte /* 06: PinConfig */
548 ',' WordConstExpr /* 08: FunctionNumber */
549 ',' StringData /* 10: ResourceSource */
550 OptionalByteConstExpr /* 11: ResourceSourceIndex */
551 OptionalResourceType /* 12: ResourceType */
552 OptionalNameString /* 13: DescriptorName */
553 OptionalBuffer_Last /* 14: VendorData */
554 PARSEOP_CLOSE_PAREN '{'
555 DWordList '}' {$$ = TrLinkOpChildren ($<n>3,9,
556 $4,$6,$8,$10,$11,$12,$13,$14,$17);}
557 | PARSEOP_PINFUNCTION
558 PARSEOP_OPEN_PAREN
559 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
560 ;
561
562 ClockInputTerm
563 : PARSEOP_CLOCKINPUT
564 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CLOCKINPUT);}
565 DWordConstExpr /* 04: FrequencyNumerator */
566 ',' WordConstExpr /* 06: FrequencyDivisor */
567 ',' ClockScaleKeyword /* 08: Scale */
568 ',' ClockModeKeyword /* 10: Mode*/
569 OptionalStringData /* 11: ResourceSource */
570 OptionalByteConstExpr /* 12: ResourceSourceIndex */
571 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
572 | PARSEOP_CLOCKINPUT
573 PARSEOP_OPEN_PAREN
574 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
575 ;
576
577 PinGroupTerm
578 : PARSEOP_PINGROUP
579 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUP);}
580 StringData /* 04: ResourceLabel */
581 OptionalProducerResourceType /* 05: ResourceType */
582 OptionalNameString /* 06: DescriptorName */
583 OptionalBuffer_Last /* 07: VendorData */
584 PARSEOP_CLOSE_PAREN '{'
585 DWordList '}' {$$ = TrLinkOpChildren ($<n>3,5,$4,$5,$6,$7,$10);}
586 | PARSEOP_PINGROUP
587 PARSEOP_OPEN_PAREN
588 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
589 ;
590
591 PinGroupConfigTerm
592 : PARSEOP_PINGROUPCONFIG
593 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUPCONFIG);}
594 OptionalShareType_First /* 04: SharedType */
595 ',' ByteConstExpr /* 06: PinConfigType */
596 ',' DWordConstExpr /* 08: PinConfigValue */
597 ',' StringData /* 10: ResourceSource */
598 OptionalByteConstExpr /* 11: ResourceSourceIndex */
599 ',' StringData /* 13: ResourceSourceLabel */
600 OptionalResourceType /* 14: ResourceType */
601 OptionalNameString /* 15: DescriptorName */
602 OptionalBuffer_Last /* 16: VendorData */
603 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,9,
604 $4,$6,$8,$10,$11,$13,$14,$15,$16);}
605 | PARSEOP_PINGROUPCONFIG
606 PARSEOP_OPEN_PAREN
607 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
608 ;
609
610 PinGroupFunctionTerm
611 : PARSEOP_PINGROUPFUNCTION
612 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUPFUNCTION);}
613 OptionalShareType_First /* 04: SharedType */
614 ',' WordConstExpr /* 06: FunctionNumber */
615 ',' StringData /* 08: ResourceSource */
616 OptionalByteConstExpr /* 09: ResourceSourceIndex */
617 ',' StringData /* 11: ResourceSourceLabel */
618 OptionalResourceType /* 12: ResourceType */
619 OptionalNameString /* 13: DescriptorName */
620 OptionalBuffer_Last /* 14: VendorData */
621 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,8,
622 $4,$6,$8,$9,$11,$12,$13,$14);}
623 | PARSEOP_PINGROUPFUNCTION
624 PARSEOP_OPEN_PAREN
625 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
626 ;
627
628 QWordIOTerm
629 : PARSEOP_QWORDIO
630 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDIO);}
631 OptionalResourceType_First
632 OptionalMinType
633 OptionalMaxType
634 OptionalDecodeType
635 OptionalRangeType
636 ',' QWordConstExpr
637 ',' QWordConstExpr
638 ',' QWordConstExpr
639 ',' QWordConstExpr
640 ',' QWordConstExpr
641 OptionalByteConstExpr
642 OptionalStringData
643 OptionalNameString
644 OptionalType
645 OptionalTranslationType_Last
646 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
647 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
648 | PARSEOP_QWORDIO
649 PARSEOP_OPEN_PAREN
650 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
651 ;
652
653 QWordMemoryTerm
654 : PARSEOP_QWORDMEMORY
655 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDMEMORY);}
656 OptionalResourceType_First
657 OptionalDecodeType
658 OptionalMinType
659 OptionalMaxType
660 OptionalMemType
661 ',' OptionalReadWriteKeyword
662 ',' QWordConstExpr
663 ',' QWordConstExpr
664 ',' QWordConstExpr
665 ',' QWordConstExpr
666 ',' QWordConstExpr
667 OptionalByteConstExpr
668 OptionalStringData
669 OptionalNameString
670 OptionalAddressRange
671 OptionalType_Last
672 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,16,
673 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
674 | PARSEOP_QWORDMEMORY
675 PARSEOP_OPEN_PAREN
676 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
677 ;
678
679 QWordSpaceTerm
680 : PARSEOP_QWORDSPACE
681 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDSPACE);}
682 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
683 OptionalResourceType
684 OptionalDecodeType
685 OptionalMinType
686 OptionalMaxType
687 ',' ByteConstExpr
688 ',' QWordConstExpr
689 ',' QWordConstExpr
690 ',' QWordConstExpr
691 ',' QWordConstExpr
692 ',' QWordConstExpr
693 OptionalByteConstExpr
694 OptionalStringData
695 OptionalNameString_Last
696 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
697 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
698 | PARSEOP_QWORDSPACE
699 PARSEOP_OPEN_PAREN
700 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
701 ;
702
703 RegisterTerm
704 : PARSEOP_REGISTER
705 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_REGISTER);}
706 AddressSpaceKeyword
707 ',' ByteConstExpr
708 ',' ByteConstExpr
709 ',' QWordConstExpr
710 OptionalAccessSize
711 OptionalNameString_Last
712 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
713 | PARSEOP_REGISTER
714 PARSEOP_OPEN_PAREN
715 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
716 ;
717
718 SpiSerialBusTerm
719 : PARSEOP_SPI_SERIALBUS
720 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SPI_SERIALBUS);}
721 WordConstExpr /* 04: DeviceSelection */
722 OptionalDevicePolarity /* 05: DevicePolarity */
723 OptionalWireMode /* 06: WireMode */
724 ',' ByteConstExpr /* 08: DataBitLength */
725 OptionalSlaveMode /* 09: SlaveMode */
726 ',' DWordConstExpr /* 11: ConnectionSpeed */
727 ',' ClockPolarityKeyword /* 13: ClockPolarity */
728 ',' ClockPhaseKeyword /* 15: ClockPhase */
729 ',' StringData /* 17: ResourceSource */
730 OptionalByteConstExpr /* 18: ResourceSourceIndex */
731 OptionalResourceType /* 19: ResourceType */
732 OptionalNameString /* 20: DescriptorName */
733 OptionalBuffer_Last /* 21: VendorData */
734 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
735 $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
736 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),$21);}
737 | PARSEOP_SPI_SERIALBUS
738 PARSEOP_OPEN_PAREN
739 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
740 ;
741
742 SpiSerialBusTermV2
743 : PARSEOP_SPI_SERIALBUS_V2
744 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SPI_SERIALBUS_V2);}
745 WordConstExpr /* 04: DeviceSelection */
746 OptionalDevicePolarity /* 05: DevicePolarity */
747 OptionalWireMode /* 06: WireMode */
748 ',' ByteConstExpr /* 08: DataBitLength */
749 OptionalSlaveMode /* 09: SlaveMode */
750 ',' DWordConstExpr /* 11: ConnectionSpeed */
751 ',' ClockPolarityKeyword /* 13: ClockPolarity */
752 ',' ClockPhaseKeyword /* 15: ClockPhase */
753 ',' StringData /* 17: ResourceSource */
754 OptionalByteConstExpr /* 18: ResourceSourceIndex */
755 OptionalResourceType /* 19: ResourceType */
756 OptionalNameString /* 20: DescriptorName */
757 OptionalShareType /* 21: Share */
758 OptionalBuffer_Last /* 22: VendorData */
759 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
760 $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
761 | PARSEOP_SPI_SERIALBUS_V2
762 PARSEOP_OPEN_PAREN
763 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
764 ;
765
766 StartDependentFnNoPriTerm
767 : PARSEOP_STARTDEPENDENTFN_NOPRI
768 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_STARTDEPENDENTFN_NOPRI);}
769 PARSEOP_CLOSE_PAREN '{'
770 ResourceMacroList '}' {$$ = TrLinkOpChildren ($<n>3,1,$6);}
771 | PARSEOP_STARTDEPENDENTFN_NOPRI
772 PARSEOP_OPEN_PAREN
773 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
774 ;
775
776 StartDependentFnTerm
777 : PARSEOP_STARTDEPENDENTFN
778 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_STARTDEPENDENTFN);}
779 ByteConstExpr
780 ',' ByteConstExpr
781 PARSEOP_CLOSE_PAREN '{'
782 ResourceMacroList '}' {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$9);}
783 | PARSEOP_STARTDEPENDENTFN
784 PARSEOP_OPEN_PAREN
785 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
786 ;
787
788 UartSerialBusTerm
789 : PARSEOP_UART_SERIALBUS
790 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_UART_SERIALBUS);}
791 DWordConstExpr /* 04: ConnectionSpeed */
792 OptionalBitsPerByte /* 05: BitsPerByte */
793 OptionalStopBits /* 06: StopBits */
794 ',' ByteConstExpr /* 08: LinesInUse */
795 OptionalEndian /* 09: Endianness */
796 OptionalParityType /* 10: Parity */
797 OptionalFlowControl /* 11: FlowControl */
798 ',' WordConstExpr /* 13: Rx BufferSize */
799 ',' WordConstExpr /* 15: Tx BufferSize */
800 ',' StringData /* 17: ResourceSource */
801 OptionalByteConstExpr /* 18: ResourceSourceIndex */
802 OptionalResourceType /* 19: ResourceType */
803 OptionalNameString /* 20: DescriptorName */
804 OptionalBuffer_Last /* 21: VendorData */
805 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
806 $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
807 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),$21);}
808 | PARSEOP_UART_SERIALBUS
809 PARSEOP_OPEN_PAREN
810 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
811 ;
812
813 UartSerialBusTermV2
814 : PARSEOP_UART_SERIALBUS_V2
815 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_UART_SERIALBUS_V2);}
816 DWordConstExpr /* 04: ConnectionSpeed */
817 OptionalBitsPerByte /* 05: BitsPerByte */
818 OptionalStopBits /* 06: StopBits */
819 ',' ByteConstExpr /* 08: LinesInUse */
820 OptionalEndian /* 09: Endianness */
821 OptionalParityType /* 10: Parity */
822 OptionalFlowControl /* 11: FlowControl */
823 ',' WordConstExpr /* 13: Rx BufferSize */
824 ',' WordConstExpr /* 15: Tx BufferSize */
825 ',' StringData /* 17: ResourceSource */
826 OptionalByteConstExpr /* 18: ResourceSourceIndex */
827 OptionalResourceType /* 19: ResourceType */
828 OptionalNameString /* 20: DescriptorName */
829 OptionalShareType /* 21: Share */
830 OptionalBuffer_Last /* 22: VendorData */
831 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
832 $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
833 | PARSEOP_UART_SERIALBUS_V2
834 PARSEOP_OPEN_PAREN
835 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
836 ;
837
838 VendorLongTerm
839 : PARSEOP_VENDORLONG
840 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_VENDORLONG);}
841 OptionalNameString_First
842 PARSEOP_CLOSE_PAREN '{'
843 ByteList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
844 | PARSEOP_VENDORLONG
845 PARSEOP_OPEN_PAREN
846 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
847 ;
848
849 VendorShortTerm
850 : PARSEOP_VENDORSHORT
851 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_VENDORSHORT);}
852 OptionalNameString_First
853 PARSEOP_CLOSE_PAREN '{'
854 ByteList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
855 | PARSEOP_VENDORSHORT
856 PARSEOP_OPEN_PAREN
857 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
858 ;
859
860 WordBusNumberTerm
861 : PARSEOP_WORDBUSNUMBER
862 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDBUSNUMBER);}
863 OptionalResourceType_First
864 OptionalMinType
865 OptionalMaxType
866 OptionalDecodeType
867 ',' WordConstExpr
868 ',' WordConstExpr
869 ',' WordConstExpr
870 ',' WordConstExpr
871 ',' WordConstExpr
872 OptionalByteConstExpr
873 OptionalStringData
874 OptionalNameString_Last
875 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,12,
876 $4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
877 | PARSEOP_WORDBUSNUMBER
878 PARSEOP_OPEN_PAREN
879 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
880 ;
881
882 WordIOTerm
883 : PARSEOP_WORDIO
884 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDIO);}
885 OptionalResourceType_First
886 OptionalMinType
887 OptionalMaxType
888 OptionalDecodeType
889 OptionalRangeType
890 ',' WordConstExpr
891 ',' WordConstExpr
892 ',' WordConstExpr
893 ',' WordConstExpr
894 ',' WordConstExpr
895 OptionalByteConstExpr
896 OptionalStringData
897 OptionalNameString
898 OptionalType
899 OptionalTranslationType_Last
900 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
901 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
902 | PARSEOP_WORDIO
903 PARSEOP_OPEN_PAREN
904 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
905 ;
906
907 WordSpaceTerm
908 : PARSEOP_WORDSPACE
909 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDSPACE);}
910 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
911 OptionalResourceType
912 OptionalDecodeType
913 OptionalMinType
914 OptionalMaxType
915 ',' ByteConstExpr
916 ',' WordConstExpr
917 ',' WordConstExpr
918 ',' WordConstExpr
919 ',' WordConstExpr
920 ',' WordConstExpr
921 OptionalByteConstExpr
922 OptionalStringData
923 OptionalNameString_Last
924 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
925 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
926 | PARSEOP_WORDSPACE
927 PARSEOP_OPEN_PAREN
928 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
929 ;
930