171e38f1dSchristos NoEcho(' 271e38f1dSchristos /****************************************************************************** 371e38f1dSchristos * 471e38f1dSchristos * Module Name: aslresources.y - Bison/Yacc production rules for resources 5835858a6Schristos * - Keep this file synched with the 6835858a6Schristos * CvParseOpBlockType function in cvcompiler.c 771e38f1dSchristos * 871e38f1dSchristos *****************************************************************************/ 971e38f1dSchristos 1071e38f1dSchristos /* 11046a2985Schristos * Copyright (C) 2000 - 2023, Intel Corp. 1271e38f1dSchristos * All rights reserved. 1371e38f1dSchristos * 1471e38f1dSchristos * Redistribution and use in source and binary forms, with or without 1571e38f1dSchristos * modification, are permitted provided that the following conditions 1671e38f1dSchristos * are met: 1771e38f1dSchristos * 1. Redistributions of source code must retain the above copyright 1871e38f1dSchristos * notice, this list of conditions, and the following disclaimer, 1971e38f1dSchristos * without modification. 2071e38f1dSchristos * 2. Redistributions in binary form must reproduce at minimum a disclaimer 2171e38f1dSchristos * substantially similar to the "NO WARRANTY" disclaimer below 2271e38f1dSchristos * ("Disclaimer") and any redistribution must be conditioned upon 2371e38f1dSchristos * including a substantially similar Disclaimer requirement for further 2471e38f1dSchristos * binary redistribution. 2571e38f1dSchristos * 3. Neither the names of the above-listed copyright holders nor the names 2671e38f1dSchristos * of any contributors may be used to endorse or promote products derived 2771e38f1dSchristos * from this software without specific prior written permission. 2871e38f1dSchristos * 2971e38f1dSchristos * Alternatively, this software may be distributed under the terms of the 3071e38f1dSchristos * GNU General Public License ("GPL") version 2 as published by the Free 3171e38f1dSchristos * Software Foundation. 3271e38f1dSchristos * 3371e38f1dSchristos * NO WARRANTY 3471e38f1dSchristos * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 3571e38f1dSchristos * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 3646a330b4Schristos * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 3771e38f1dSchristos * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 3871e38f1dSchristos * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 3971e38f1dSchristos * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 4071e38f1dSchristos * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 4171e38f1dSchristos * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 4271e38f1dSchristos * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 4371e38f1dSchristos * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 4471e38f1dSchristos * POSSIBILITY OF SUCH DAMAGES. 4571e38f1dSchristos */ 4671e38f1dSchristos 4771e38f1dSchristos ') 4871e38f1dSchristos 4971e38f1dSchristos 5071e38f1dSchristos /******************************************************************************* 5171e38f1dSchristos * 5271e38f1dSchristos * ASL Resource Template Terms 5371e38f1dSchristos * 5471e38f1dSchristos ******************************************************************************/ 5571e38f1dSchristos 5671e38f1dSchristos /* 5771e38f1dSchristos * Note: Create two default nodes to allow conversion to a Buffer AML opcode 5871e38f1dSchristos * Also, insert the EndTag at the end of the template. 5971e38f1dSchristos */ 6071e38f1dSchristos ResourceTemplateTerm 61835858a6Schristos : PARSEOP_RESOURCETEMPLATE {COMMENT_CAPTURE_OFF;} 620b89cdedSchristos OptionalParentheses 6371e38f1dSchristos '{' 6489b8eb6cSchristos ResourceMacroList '}' {$$ = TrCreateOp (PARSEOP_RESOURCETEMPLATE,4, 6589b8eb6cSchristos TrCreateLeafOp (PARSEOP_DEFAULT_ARG), 6689b8eb6cSchristos TrCreateLeafOp (PARSEOP_DEFAULT_ARG), 67835858a6Schristos $5, 6889b8eb6cSchristos TrCreateLeafOp (PARSEOP_ENDTAG)); 69835858a6Schristos COMMENT_CAPTURE_ON;} 7071e38f1dSchristos ; 7171e38f1dSchristos 72d0e1da26Schristos OptionalParentheses 73d0e1da26Schristos : {$$ = NULL;} 740b89cdedSchristos | PARSEOP_OPEN_PAREN 750b89cdedSchristos PARSEOP_CLOSE_PAREN {$$ = NULL;} 76d0e1da26Schristos ; 77d0e1da26Schristos 7871e38f1dSchristos ResourceMacroList 7971e38f1dSchristos : {$$ = NULL;} 8071e38f1dSchristos | ResourceMacroList 8189b8eb6cSchristos ResourceMacroTerm {$$ = TrLinkPeerOp ($1,$2);} 8271e38f1dSchristos ; 8371e38f1dSchristos 8471e38f1dSchristos ResourceMacroTerm 8546a330b4Schristos : Csi2SerialBusTerm {} 8646a330b4Schristos | DMATerm {} 8771e38f1dSchristos | DWordIOTerm {} 8871e38f1dSchristos | DWordMemoryTerm {} 89*c7960b37Schristos | DWordPccTerm {} 9071e38f1dSchristos | DWordSpaceTerm {} 9171e38f1dSchristos | EndDependentFnTerm {} 9271e38f1dSchristos | ExtendedIOTerm {} 9371e38f1dSchristos | ExtendedMemoryTerm {} 9471e38f1dSchristos | ExtendedSpaceTerm {} 9571e38f1dSchristos | FixedDmaTerm {} 9671e38f1dSchristos | FixedIOTerm {} 9771e38f1dSchristos | GpioIntTerm {} 9871e38f1dSchristos | GpioIoTerm {} 9971e38f1dSchristos | I2cSerialBusTerm {} 100cfbb7280Schristos | I2cSerialBusTermV2 {} 10171e38f1dSchristos | InterruptTerm {} 10271e38f1dSchristos | IOTerm {} 10371e38f1dSchristos | IRQNoFlagsTerm {} 10471e38f1dSchristos | IRQTerm {} 10571e38f1dSchristos | Memory24Term {} 10671e38f1dSchristos | Memory32FixedTerm {} 10771e38f1dSchristos | Memory32Term {} 10889b8eb6cSchristos | PinConfigTerm {} 10989b8eb6cSchristos | PinFunctionTerm {} 110046a2985Schristos | ClockInputTerm {} 11189b8eb6cSchristos | PinGroupTerm {} 11289b8eb6cSchristos | PinGroupConfigTerm {} 11389b8eb6cSchristos | PinGroupFunctionTerm {} 11471e38f1dSchristos | QWordIOTerm {} 11571e38f1dSchristos | QWordMemoryTerm {} 116*c7960b37Schristos | QWordPccTerm {} 11771e38f1dSchristos | QWordSpaceTerm {} 11871e38f1dSchristos | RegisterTerm {} 11971e38f1dSchristos | SpiSerialBusTerm {} 120cfbb7280Schristos | SpiSerialBusTermV2 {} 12171e38f1dSchristos | StartDependentFnNoPriTerm {} 12271e38f1dSchristos | StartDependentFnTerm {} 12371e38f1dSchristos | UartSerialBusTerm {} 124cfbb7280Schristos | UartSerialBusTermV2 {} 12571e38f1dSchristos | VendorLongTerm {} 12671e38f1dSchristos | VendorShortTerm {} 12771e38f1dSchristos | WordBusNumberTerm {} 12871e38f1dSchristos | WordIOTerm {} 129*c7960b37Schristos | WordPccTerm {} 13071e38f1dSchristos | WordSpaceTerm {} 13171e38f1dSchristos ; 13271e38f1dSchristos 13346a330b4Schristos Csi2SerialBusTerm 13446a330b4Schristos : PARSEOP_CSI2_SERIALBUS 13546a330b4Schristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CSI2_SERIALBUS);} 13646a330b4Schristos OptionalSlaveMode_First {UtCheckIntegerRange ($4, 0x00, 0x01);} /* 04: SlaveMode */ 13746a330b4Schristos ',' ByteConstExpr {UtCheckIntegerRange ($7, 0x00, 0x03);} /* 07: PhyType */ 13846a330b4Schristos OptionalByteConstExpr {UtCheckIntegerRange ($9, 0x00, 0xFC);} /* 09: LocalPortInstance */ 13946a330b4Schristos ',' StringData /* 12: ResourceSource */ 14046a330b4Schristos ',' ByteConstExpr /* 14: ResourceSourceIndex */ 14146a330b4Schristos OptionalResourceType /* 15; ResourceType (ResourceUsage) */ 14246a330b4Schristos OptionalNameString /* 16: DescriptorName */ 14346a330b4Schristos OptionalBuffer_Last /* 17: VendorData */ 14446a330b4Schristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,8, 14546a330b4Schristos $4,$7,$9,$12,$14,$15,$16,$17);} 14646a330b4Schristos | PARSEOP_CSI2_SERIALBUS 14746a330b4Schristos PARSEOP_OPEN_PAREN 14846a330b4Schristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 14946a330b4Schristos 15071e38f1dSchristos DMATerm 1510b89cdedSchristos : PARSEOP_DMA 15289b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DMA);} 15371e38f1dSchristos DMATypeKeyword 15471e38f1dSchristos OptionalBusMasterKeyword 15571e38f1dSchristos ',' XferTypeKeyword 15671e38f1dSchristos OptionalNameString_Last 1570b89cdedSchristos PARSEOP_CLOSE_PAREN '{' 15889b8eb6cSchristos ByteList '}' {$$ = TrLinkOpChildren ($<n>3,5,$4,$5,$7,$8,$11);} 1590b89cdedSchristos | PARSEOP_DMA 1600b89cdedSchristos PARSEOP_OPEN_PAREN 1610b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 16271e38f1dSchristos ; 16371e38f1dSchristos 16471e38f1dSchristos DWordIOTerm 1650b89cdedSchristos : PARSEOP_DWORDIO 16689b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDIO);} 16771e38f1dSchristos OptionalResourceType_First 16871e38f1dSchristos OptionalMinType 16971e38f1dSchristos OptionalMaxType 17071e38f1dSchristos OptionalDecodeType 17171e38f1dSchristos OptionalRangeType 17271e38f1dSchristos ',' DWordConstExpr 17371e38f1dSchristos ',' DWordConstExpr 17471e38f1dSchristos ',' DWordConstExpr 17571e38f1dSchristos ',' DWordConstExpr 17671e38f1dSchristos ',' DWordConstExpr 17771e38f1dSchristos OptionalByteConstExpr 17871e38f1dSchristos OptionalStringData 17971e38f1dSchristos OptionalNameString 18071e38f1dSchristos OptionalType 18171e38f1dSchristos OptionalTranslationType_Last 18289b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15, 183d0e1da26Schristos $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);} 1840b89cdedSchristos | PARSEOP_DWORDIO 1850b89cdedSchristos PARSEOP_OPEN_PAREN 1860b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 18771e38f1dSchristos ; 18871e38f1dSchristos 18971e38f1dSchristos DWordMemoryTerm 1900b89cdedSchristos : PARSEOP_DWORDMEMORY 19189b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDMEMORY);} 19271e38f1dSchristos OptionalResourceType_First 19371e38f1dSchristos OptionalDecodeType 19471e38f1dSchristos OptionalMinType 19571e38f1dSchristos OptionalMaxType 19671e38f1dSchristos OptionalMemType 19771e38f1dSchristos ',' OptionalReadWriteKeyword 19871e38f1dSchristos ',' DWordConstExpr 19971e38f1dSchristos ',' DWordConstExpr 20071e38f1dSchristos ',' DWordConstExpr 20171e38f1dSchristos ',' DWordConstExpr 20271e38f1dSchristos ',' DWordConstExpr 20371e38f1dSchristos OptionalByteConstExpr 20471e38f1dSchristos OptionalStringData 20571e38f1dSchristos OptionalNameString 20671e38f1dSchristos OptionalAddressRange 20771e38f1dSchristos OptionalType_Last 20889b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,16, 209d0e1da26Schristos $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);} 2100b89cdedSchristos | PARSEOP_DWORDMEMORY 2110b89cdedSchristos PARSEOP_OPEN_PAREN 2120b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 21371e38f1dSchristos ; 21471e38f1dSchristos 215*c7960b37Schristos DWordPccTerm 216*c7960b37Schristos : PARSEOP_DWORDPCC 217*c7960b37Schristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDPCC);} 218*c7960b37Schristos ByteConstExpr 219*c7960b37Schristos OptionalByteConstExpr 220*c7960b37Schristos OptionalStringData 221*c7960b37Schristos OptionalNameString_Last 222*c7960b37Schristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4, 223*c7960b37Schristos $4,$5,$6,$7);} 224*c7960b37Schristos | PARSEOP_DWORDPCC 225*c7960b37Schristos PARSEOP_OPEN_PAREN 226*c7960b37Schristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 227*c7960b37Schristos ; 228*c7960b37Schristos 22971e38f1dSchristos DWordSpaceTerm 2300b89cdedSchristos : PARSEOP_DWORDSPACE 23189b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDSPACE);} 23271e38f1dSchristos ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);} 23371e38f1dSchristos OptionalResourceType 23471e38f1dSchristos OptionalDecodeType 23571e38f1dSchristos OptionalMinType 23671e38f1dSchristos OptionalMaxType 23771e38f1dSchristos ',' ByteConstExpr 23871e38f1dSchristos ',' DWordConstExpr 23971e38f1dSchristos ',' DWordConstExpr 24071e38f1dSchristos ',' DWordConstExpr 24171e38f1dSchristos ',' DWordConstExpr 24271e38f1dSchristos ',' DWordConstExpr 24371e38f1dSchristos OptionalByteConstExpr 24471e38f1dSchristos OptionalStringData 24571e38f1dSchristos OptionalNameString_Last 24689b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14, 247d0e1da26Schristos $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);} 2480b89cdedSchristos | PARSEOP_DWORDSPACE 2490b89cdedSchristos PARSEOP_OPEN_PAREN 2500b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 25171e38f1dSchristos ; 25271e38f1dSchristos 25371e38f1dSchristos EndDependentFnTerm 2540b89cdedSchristos : PARSEOP_ENDDEPENDENTFN 2550b89cdedSchristos PARSEOP_OPEN_PAREN 25689b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrCreateLeafOp (PARSEOP_ENDDEPENDENTFN);} 2570b89cdedSchristos | PARSEOP_ENDDEPENDENTFN 2580b89cdedSchristos PARSEOP_OPEN_PAREN 2590b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 26071e38f1dSchristos ; 26171e38f1dSchristos 26271e38f1dSchristos ExtendedIOTerm 2630b89cdedSchristos : PARSEOP_EXTENDEDIO 26489b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_EXTENDEDIO);} 26571e38f1dSchristos OptionalResourceType_First 26671e38f1dSchristos OptionalMinType 26771e38f1dSchristos OptionalMaxType 26871e38f1dSchristos OptionalDecodeType 26971e38f1dSchristos OptionalRangeType 27071e38f1dSchristos ',' QWordConstExpr 27171e38f1dSchristos ',' QWordConstExpr 27271e38f1dSchristos ',' QWordConstExpr 27371e38f1dSchristos ',' QWordConstExpr 27471e38f1dSchristos ',' QWordConstExpr 27571e38f1dSchristos OptionalQWordConstExpr 27671e38f1dSchristos OptionalNameString 27771e38f1dSchristos OptionalType 27871e38f1dSchristos OptionalTranslationType_Last 27989b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14, 280d0e1da26Schristos $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);} 2810b89cdedSchristos | PARSEOP_EXTENDEDIO 2820b89cdedSchristos PARSEOP_OPEN_PAREN 2830b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 28471e38f1dSchristos ; 28571e38f1dSchristos 28671e38f1dSchristos ExtendedMemoryTerm 2870b89cdedSchristos : PARSEOP_EXTENDEDMEMORY 28889b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_EXTENDEDMEMORY);} 28971e38f1dSchristos OptionalResourceType_First 29071e38f1dSchristos OptionalDecodeType 29171e38f1dSchristos OptionalMinType 29271e38f1dSchristos OptionalMaxType 29371e38f1dSchristos OptionalMemType 29471e38f1dSchristos ',' OptionalReadWriteKeyword 29571e38f1dSchristos ',' QWordConstExpr 29671e38f1dSchristos ',' QWordConstExpr 29771e38f1dSchristos ',' QWordConstExpr 29871e38f1dSchristos ',' QWordConstExpr 29971e38f1dSchristos ',' QWordConstExpr 30071e38f1dSchristos OptionalQWordConstExpr 30171e38f1dSchristos OptionalNameString 30271e38f1dSchristos OptionalAddressRange 30371e38f1dSchristos OptionalType_Last 30489b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15, 305d0e1da26Schristos $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);} 3060b89cdedSchristos | PARSEOP_EXTENDEDMEMORY 3070b89cdedSchristos PARSEOP_OPEN_PAREN 3080b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 30971e38f1dSchristos ; 31071e38f1dSchristos 31171e38f1dSchristos ExtendedSpaceTerm 31289b8eb6cSchristos : PARSEOP_EXTENDEDSPACE PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_EXTENDEDSPACE);} 31371e38f1dSchristos ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);} 31471e38f1dSchristos OptionalResourceType 31571e38f1dSchristos OptionalDecodeType 31671e38f1dSchristos OptionalMinType 31771e38f1dSchristos OptionalMaxType 31871e38f1dSchristos ',' ByteConstExpr 31971e38f1dSchristos ',' QWordConstExpr 32071e38f1dSchristos ',' QWordConstExpr 32171e38f1dSchristos ',' QWordConstExpr 32271e38f1dSchristos ',' QWordConstExpr 32371e38f1dSchristos ',' QWordConstExpr 32471e38f1dSchristos OptionalQWordConstExpr 32571e38f1dSchristos OptionalNameString_Last 32689b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,13, 327d0e1da26Schristos $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);} 3280b89cdedSchristos | PARSEOP_EXTENDEDSPACE 3290b89cdedSchristos PARSEOP_OPEN_PAREN 3300b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 33171e38f1dSchristos ; 33271e38f1dSchristos 33371e38f1dSchristos FixedDmaTerm 3340b89cdedSchristos : PARSEOP_FIXEDDMA 33589b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FIXEDDMA);} 33671e38f1dSchristos WordConstExpr /* 04: DMA RequestLines */ 33771e38f1dSchristos ',' WordConstExpr /* 06: DMA Channels */ 33871e38f1dSchristos OptionalXferSize /* 07: DMA TransferSize */ 33971e38f1dSchristos OptionalNameString /* 08: DescriptorName */ 34089b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,$4,$6,$7,$8);} 3410b89cdedSchristos | PARSEOP_FIXEDDMA 3420b89cdedSchristos PARSEOP_OPEN_PAREN 3430b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 34471e38f1dSchristos ; 34571e38f1dSchristos 34671e38f1dSchristos FixedIOTerm 3470b89cdedSchristos : PARSEOP_FIXEDIO 34889b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FIXEDIO);} 34971e38f1dSchristos WordConstExpr 35071e38f1dSchristos ',' ByteConstExpr 35171e38f1dSchristos OptionalNameString_Last 35289b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$7);} 3530b89cdedSchristos | PARSEOP_FIXEDIO 3540b89cdedSchristos PARSEOP_OPEN_PAREN 3550b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 35671e38f1dSchristos ; 35771e38f1dSchristos 35871e38f1dSchristos GpioIntTerm 3590b89cdedSchristos : PARSEOP_GPIO_INT 36089b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_GPIO_INT);} 36171e38f1dSchristos InterruptTypeKeyword /* 04: InterruptType */ 36271e38f1dSchristos ',' InterruptLevel /* 06: InterruptLevel */ 36371e38f1dSchristos OptionalShareType /* 07: SharedType */ 36471e38f1dSchristos ',' PinConfigByte /* 09: PinConfig */ 36571e38f1dSchristos OptionalWordConstExpr /* 10: DebounceTimeout */ 36671e38f1dSchristos ',' StringData /* 12: ResourceSource */ 36771e38f1dSchristos OptionalByteConstExpr /* 13: ResourceSourceIndex */ 36871e38f1dSchristos OptionalResourceType /* 14: ResourceType */ 36971e38f1dSchristos OptionalNameString /* 15: DescriptorName */ 37071e38f1dSchristos OptionalBuffer_Last /* 16: VendorData */ 3710b89cdedSchristos PARSEOP_CLOSE_PAREN '{' 37289b8eb6cSchristos DWordConstExpr '}' {$$ = TrLinkOpChildren ($<n>3,11, 373d0e1da26Schristos $4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);} 3740b89cdedSchristos | PARSEOP_GPIO_INT 3750b89cdedSchristos PARSEOP_OPEN_PAREN 3760b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 37771e38f1dSchristos ; 37871e38f1dSchristos 37971e38f1dSchristos GpioIoTerm 3800b89cdedSchristos : PARSEOP_GPIO_IO 38189b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_GPIO_IO);} 38271e38f1dSchristos OptionalShareType_First /* 04: SharedType */ 38371e38f1dSchristos ',' PinConfigByte /* 06: PinConfig */ 38471e38f1dSchristos OptionalWordConstExpr /* 07: DebounceTimeout */ 38571e38f1dSchristos OptionalWordConstExpr /* 08: DriveStrength */ 38671e38f1dSchristos OptionalIoRestriction /* 09: IoRestriction */ 38771e38f1dSchristos ',' StringData /* 11: ResourceSource */ 38871e38f1dSchristos OptionalByteConstExpr /* 12: ResourceSourceIndex */ 38971e38f1dSchristos OptionalResourceType /* 13: ResourceType */ 39071e38f1dSchristos OptionalNameString /* 14: DescriptorName */ 39171e38f1dSchristos OptionalBuffer_Last /* 15: VendorData */ 3920b89cdedSchristos PARSEOP_CLOSE_PAREN '{' 39389b8eb6cSchristos DWordList '}' {$$ = TrLinkOpChildren ($<n>3,11, 394d0e1da26Schristos $4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);} 3950b89cdedSchristos | PARSEOP_GPIO_IO 3960b89cdedSchristos PARSEOP_OPEN_PAREN 3970b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 39871e38f1dSchristos ; 39971e38f1dSchristos 40071e38f1dSchristos I2cSerialBusTerm 4010b89cdedSchristos : PARSEOP_I2C_SERIALBUS 40289b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_I2C_SERIALBUS);} 40371e38f1dSchristos WordConstExpr /* 04: SlaveAddress */ 40471e38f1dSchristos OptionalSlaveMode /* 05: SlaveMode */ 40571e38f1dSchristos ',' DWordConstExpr /* 07: ConnectionSpeed */ 40671e38f1dSchristos OptionalAddressingMode /* 08: AddressingMode */ 40771e38f1dSchristos ',' StringData /* 10: ResourceSource */ 40871e38f1dSchristos OptionalByteConstExpr /* 11: ResourceSourceIndex */ 40971e38f1dSchristos OptionalResourceType /* 12: ResourceType */ 41071e38f1dSchristos OptionalNameString /* 13: DescriptorName */ 41171e38f1dSchristos OptionalBuffer_Last /* 14: VendorData */ 41289b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,10, 413d0e1da26Schristos $4,$5,$7,$8,$10,$11,$12,$13, 41489b8eb6cSchristos TrCreateLeafOp (PARSEOP_DEFAULT_ARG),$14);} 4150b89cdedSchristos | PARSEOP_I2C_SERIALBUS 4160b89cdedSchristos PARSEOP_OPEN_PAREN 4170b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 41871e38f1dSchristos ; 41971e38f1dSchristos 420cfbb7280Schristos I2cSerialBusTermV2 4210b89cdedSchristos : PARSEOP_I2C_SERIALBUS_V2 42289b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_I2C_SERIALBUS_V2);} 423cfbb7280Schristos WordConstExpr /* 04: SlaveAddress */ 424cfbb7280Schristos OptionalSlaveMode /* 05: SlaveMode */ 425cfbb7280Schristos ',' DWordConstExpr /* 07: ConnectionSpeed */ 426cfbb7280Schristos OptionalAddressingMode /* 08: AddressingMode */ 427cfbb7280Schristos ',' StringData /* 10: ResourceSource */ 428cfbb7280Schristos OptionalByteConstExpr /* 11: ResourceSourceIndex */ 429cfbb7280Schristos OptionalResourceType /* 12: ResourceType */ 430cfbb7280Schristos OptionalNameString /* 13: DescriptorName */ 431cfbb7280Schristos OptionalShareType /* 14: Share */ 432cfbb7280Schristos OptionalBuffer_Last /* 15: VendorData */ 43389b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,10, 434d0e1da26Schristos $4,$5,$7,$8,$10,$11,$12,$13,$14,$15);} 4350b89cdedSchristos | PARSEOP_I2C_SERIALBUS_V2 4360b89cdedSchristos PARSEOP_OPEN_PAREN 4370b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 438cfbb7280Schristos ; 439cfbb7280Schristos 44071e38f1dSchristos InterruptTerm 4410b89cdedSchristos : PARSEOP_INTERRUPT 44289b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_INTERRUPT);} 44371e38f1dSchristos OptionalResourceType_First 44471e38f1dSchristos ',' InterruptTypeKeyword 44571e38f1dSchristos ',' InterruptLevel 44671e38f1dSchristos OptionalShareType 44771e38f1dSchristos OptionalByteConstExpr 44871e38f1dSchristos OptionalStringData 44971e38f1dSchristos OptionalNameString_Last 4500b89cdedSchristos PARSEOP_CLOSE_PAREN '{' 45189b8eb6cSchristos DWordList '}' {$$ = TrLinkOpChildren ($<n>3,8, 452d0e1da26Schristos $4,$6,$8,$9,$10,$11,$12,$15);} 4530b89cdedSchristos | PARSEOP_INTERRUPT 4540b89cdedSchristos PARSEOP_OPEN_PAREN 4550b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 45671e38f1dSchristos ; 45771e38f1dSchristos 45871e38f1dSchristos IOTerm 4590b89cdedSchristos : PARSEOP_IO 46089b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_IO);} 46171e38f1dSchristos IODecodeKeyword 46271e38f1dSchristos ',' WordConstExpr 46371e38f1dSchristos ',' WordConstExpr 46471e38f1dSchristos ',' ByteConstExpr 46571e38f1dSchristos ',' ByteConstExpr 46671e38f1dSchristos OptionalNameString_Last 46789b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);} 4680b89cdedSchristos | PARSEOP_IO 4690b89cdedSchristos PARSEOP_OPEN_PAREN 4700b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 47171e38f1dSchristos ; 47271e38f1dSchristos 47371e38f1dSchristos IRQNoFlagsTerm 4740b89cdedSchristos : PARSEOP_IRQNOFLAGS 47589b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_IRQNOFLAGS);} 47671e38f1dSchristos OptionalNameString_First 4770b89cdedSchristos PARSEOP_CLOSE_PAREN '{' 47889b8eb6cSchristos ByteList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);} 4790b89cdedSchristos | PARSEOP_IRQNOFLAGS 4800b89cdedSchristos PARSEOP_OPEN_PAREN 4810b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 48271e38f1dSchristos ; 48371e38f1dSchristos 48471e38f1dSchristos IRQTerm 4850b89cdedSchristos : PARSEOP_IRQ 48689b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_IRQ);} 48771e38f1dSchristos InterruptTypeKeyword 48871e38f1dSchristos ',' InterruptLevel 48971e38f1dSchristos OptionalShareType 49071e38f1dSchristos OptionalNameString_Last 4910b89cdedSchristos PARSEOP_CLOSE_PAREN '{' 49289b8eb6cSchristos ByteList '}' {$$ = TrLinkOpChildren ($<n>3,5,$4,$6,$7,$8,$11);} 4930b89cdedSchristos | PARSEOP_IRQ 4940b89cdedSchristos PARSEOP_OPEN_PAREN 4950b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 49671e38f1dSchristos ; 49771e38f1dSchristos 49871e38f1dSchristos Memory24Term 4990b89cdedSchristos : PARSEOP_MEMORY24 50089b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MEMORY24);} 50171e38f1dSchristos OptionalReadWriteKeyword 50271e38f1dSchristos ',' WordConstExpr 50371e38f1dSchristos ',' WordConstExpr 50471e38f1dSchristos ',' WordConstExpr 50571e38f1dSchristos ',' WordConstExpr 50671e38f1dSchristos OptionalNameString_Last 50789b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);} 5080b89cdedSchristos | PARSEOP_MEMORY24 5090b89cdedSchristos PARSEOP_OPEN_PAREN 5100b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 51171e38f1dSchristos ; 51271e38f1dSchristos 51371e38f1dSchristos Memory32FixedTerm 5140b89cdedSchristos : PARSEOP_MEMORY32FIXED 51589b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MEMORY32FIXED);} 51671e38f1dSchristos OptionalReadWriteKeyword 51771e38f1dSchristos ',' DWordConstExpr 51871e38f1dSchristos ',' DWordConstExpr 51971e38f1dSchristos OptionalNameString_Last 52089b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,$4,$6,$8,$9);} 5210b89cdedSchristos | PARSEOP_MEMORY32FIXED 5220b89cdedSchristos PARSEOP_OPEN_PAREN 5230b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 52471e38f1dSchristos ; 52571e38f1dSchristos 52671e38f1dSchristos Memory32Term 5270b89cdedSchristos : PARSEOP_MEMORY32 52889b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MEMORY32);} 52971e38f1dSchristos OptionalReadWriteKeyword 53071e38f1dSchristos ',' DWordConstExpr 53171e38f1dSchristos ',' DWordConstExpr 53271e38f1dSchristos ',' DWordConstExpr 53371e38f1dSchristos ',' DWordConstExpr 53471e38f1dSchristos OptionalNameString_Last 53589b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);} 5360b89cdedSchristos | PARSEOP_MEMORY32 5370b89cdedSchristos PARSEOP_OPEN_PAREN 5380b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 53971e38f1dSchristos ; 54071e38f1dSchristos 54189b8eb6cSchristos PinConfigTerm 54289b8eb6cSchristos : PARSEOP_PINCONFIG 54389b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINCONFIG);} 54489b8eb6cSchristos OptionalShareType_First /* 04: SharedType */ 54589b8eb6cSchristos ',' ByteConstExpr /* 06: PinConfigType */ 54689b8eb6cSchristos ',' DWordConstExpr /* 08: PinConfigValue */ 54789b8eb6cSchristos ',' StringData /* 10: ResourceSource */ 54889b8eb6cSchristos OptionalByteConstExpr /* 11: ResourceSourceIndex */ 54989b8eb6cSchristos OptionalResourceType /* 12: ResourceType */ 55089b8eb6cSchristos OptionalNameString /* 13: DescriptorName */ 55189b8eb6cSchristos OptionalBuffer_Last /* 14: VendorData */ 55289b8eb6cSchristos PARSEOP_CLOSE_PAREN '{' 55389b8eb6cSchristos DWordList '}' {$$ = TrLinkOpChildren ($<n>3,9, 55489b8eb6cSchristos $4,$6,$8,$10,$11,$12,$13,$14,$17);} 55589b8eb6cSchristos | PARSEOP_PINCONFIG 55689b8eb6cSchristos PARSEOP_OPEN_PAREN 55789b8eb6cSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 55889b8eb6cSchristos ; 55989b8eb6cSchristos 56089b8eb6cSchristos PinFunctionTerm 56189b8eb6cSchristos : PARSEOP_PINFUNCTION 56289b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINFUNCTION);} 56389b8eb6cSchristos OptionalShareType_First /* 04: SharedType */ 56489b8eb6cSchristos ',' PinConfigByte /* 06: PinConfig */ 56589b8eb6cSchristos ',' WordConstExpr /* 08: FunctionNumber */ 56689b8eb6cSchristos ',' StringData /* 10: ResourceSource */ 56789b8eb6cSchristos OptionalByteConstExpr /* 11: ResourceSourceIndex */ 56889b8eb6cSchristos OptionalResourceType /* 12: ResourceType */ 56989b8eb6cSchristos OptionalNameString /* 13: DescriptorName */ 57089b8eb6cSchristos OptionalBuffer_Last /* 14: VendorData */ 57189b8eb6cSchristos PARSEOP_CLOSE_PAREN '{' 57289b8eb6cSchristos DWordList '}' {$$ = TrLinkOpChildren ($<n>3,9, 57389b8eb6cSchristos $4,$6,$8,$10,$11,$12,$13,$14,$17);} 57489b8eb6cSchristos | PARSEOP_PINFUNCTION 57589b8eb6cSchristos PARSEOP_OPEN_PAREN 57689b8eb6cSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 57789b8eb6cSchristos ; 57889b8eb6cSchristos 579046a2985Schristos ClockInputTerm 580046a2985Schristos : PARSEOP_CLOCKINPUT 581046a2985Schristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CLOCKINPUT);} 582046a2985Schristos DWordConstExpr /* 04: FrequencyNumerator */ 583046a2985Schristos ',' WordConstExpr /* 06: FrequencyDivisor */ 584046a2985Schristos ',' ClockScaleKeyword /* 08: Scale */ 585046a2985Schristos ',' ClockModeKeyword /* 10: Mode*/ 586046a2985Schristos OptionalStringData /* 11: ResourceSource */ 587046a2985Schristos OptionalByteConstExpr /* 12: ResourceSourceIndex */ 588046a2985Schristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);} 589046a2985Schristos | PARSEOP_CLOCKINPUT 590046a2985Schristos PARSEOP_OPEN_PAREN 591046a2985Schristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 592046a2985Schristos ; 593046a2985Schristos 59489b8eb6cSchristos PinGroupTerm 59589b8eb6cSchristos : PARSEOP_PINGROUP 59689b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUP);} 59789b8eb6cSchristos StringData /* 04: ResourceLabel */ 59889b8eb6cSchristos OptionalProducerResourceType /* 05: ResourceType */ 59989b8eb6cSchristos OptionalNameString /* 06: DescriptorName */ 60089b8eb6cSchristos OptionalBuffer_Last /* 07: VendorData */ 60189b8eb6cSchristos PARSEOP_CLOSE_PAREN '{' 60289b8eb6cSchristos DWordList '}' {$$ = TrLinkOpChildren ($<n>3,5,$4,$5,$6,$7,$10);} 60389b8eb6cSchristos | PARSEOP_PINGROUP 60489b8eb6cSchristos PARSEOP_OPEN_PAREN 60589b8eb6cSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 60689b8eb6cSchristos ; 60789b8eb6cSchristos 60889b8eb6cSchristos PinGroupConfigTerm 60989b8eb6cSchristos : PARSEOP_PINGROUPCONFIG 61089b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUPCONFIG);} 61189b8eb6cSchristos OptionalShareType_First /* 04: SharedType */ 61289b8eb6cSchristos ',' ByteConstExpr /* 06: PinConfigType */ 61389b8eb6cSchristos ',' DWordConstExpr /* 08: PinConfigValue */ 61489b8eb6cSchristos ',' StringData /* 10: ResourceSource */ 61589b8eb6cSchristos OptionalByteConstExpr /* 11: ResourceSourceIndex */ 61689b8eb6cSchristos ',' StringData /* 13: ResourceSourceLabel */ 61789b8eb6cSchristos OptionalResourceType /* 14: ResourceType */ 61889b8eb6cSchristos OptionalNameString /* 15: DescriptorName */ 61989b8eb6cSchristos OptionalBuffer_Last /* 16: VendorData */ 62089b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,9, 62189b8eb6cSchristos $4,$6,$8,$10,$11,$13,$14,$15,$16);} 62289b8eb6cSchristos | PARSEOP_PINGROUPCONFIG 62389b8eb6cSchristos PARSEOP_OPEN_PAREN 62489b8eb6cSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 62589b8eb6cSchristos ; 62689b8eb6cSchristos 62789b8eb6cSchristos PinGroupFunctionTerm 62889b8eb6cSchristos : PARSEOP_PINGROUPFUNCTION 62989b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUPFUNCTION);} 63089b8eb6cSchristos OptionalShareType_First /* 04: SharedType */ 63189b8eb6cSchristos ',' WordConstExpr /* 06: FunctionNumber */ 63289b8eb6cSchristos ',' StringData /* 08: ResourceSource */ 63389b8eb6cSchristos OptionalByteConstExpr /* 09: ResourceSourceIndex */ 63489b8eb6cSchristos ',' StringData /* 11: ResourceSourceLabel */ 63589b8eb6cSchristos OptionalResourceType /* 12: ResourceType */ 63689b8eb6cSchristos OptionalNameString /* 13: DescriptorName */ 63789b8eb6cSchristos OptionalBuffer_Last /* 14: VendorData */ 63889b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,8, 63989b8eb6cSchristos $4,$6,$8,$9,$11,$12,$13,$14);} 64089b8eb6cSchristos | PARSEOP_PINGROUPFUNCTION 64189b8eb6cSchristos PARSEOP_OPEN_PAREN 64289b8eb6cSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 64389b8eb6cSchristos ; 64489b8eb6cSchristos 64571e38f1dSchristos QWordIOTerm 6460b89cdedSchristos : PARSEOP_QWORDIO 64789b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDIO);} 64871e38f1dSchristos OptionalResourceType_First 64971e38f1dSchristos OptionalMinType 65071e38f1dSchristos OptionalMaxType 65171e38f1dSchristos OptionalDecodeType 65271e38f1dSchristos OptionalRangeType 65371e38f1dSchristos ',' QWordConstExpr 65471e38f1dSchristos ',' QWordConstExpr 65571e38f1dSchristos ',' QWordConstExpr 65671e38f1dSchristos ',' QWordConstExpr 65771e38f1dSchristos ',' QWordConstExpr 65871e38f1dSchristos OptionalByteConstExpr 65971e38f1dSchristos OptionalStringData 66071e38f1dSchristos OptionalNameString 66171e38f1dSchristos OptionalType 66271e38f1dSchristos OptionalTranslationType_Last 66389b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15, 664d0e1da26Schristos $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);} 6650b89cdedSchristos | PARSEOP_QWORDIO 6660b89cdedSchristos PARSEOP_OPEN_PAREN 6670b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 66871e38f1dSchristos ; 66971e38f1dSchristos 67071e38f1dSchristos QWordMemoryTerm 6710b89cdedSchristos : PARSEOP_QWORDMEMORY 67289b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDMEMORY);} 67371e38f1dSchristos OptionalResourceType_First 67471e38f1dSchristos OptionalDecodeType 67571e38f1dSchristos OptionalMinType 67671e38f1dSchristos OptionalMaxType 67771e38f1dSchristos OptionalMemType 67871e38f1dSchristos ',' OptionalReadWriteKeyword 67971e38f1dSchristos ',' QWordConstExpr 68071e38f1dSchristos ',' QWordConstExpr 68171e38f1dSchristos ',' QWordConstExpr 68271e38f1dSchristos ',' QWordConstExpr 68371e38f1dSchristos ',' QWordConstExpr 68471e38f1dSchristos OptionalByteConstExpr 68571e38f1dSchristos OptionalStringData 68671e38f1dSchristos OptionalNameString 68771e38f1dSchristos OptionalAddressRange 68871e38f1dSchristos OptionalType_Last 68989b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,16, 690d0e1da26Schristos $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);} 6910b89cdedSchristos | PARSEOP_QWORDMEMORY 6920b89cdedSchristos PARSEOP_OPEN_PAREN 6930b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 69471e38f1dSchristos ; 69571e38f1dSchristos 696*c7960b37Schristos QWordPccTerm 697*c7960b37Schristos : PARSEOP_QWORDPCC 698*c7960b37Schristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDPCC);} 699*c7960b37Schristos ByteConstExpr 700*c7960b37Schristos OptionalByteConstExpr 701*c7960b37Schristos OptionalStringData 702*c7960b37Schristos OptionalNameString_Last 703*c7960b37Schristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4, 704*c7960b37Schristos $4,$5,$6,$7);} 705*c7960b37Schristos | PARSEOP_QWORDPCC 706*c7960b37Schristos PARSEOP_OPEN_PAREN 707*c7960b37Schristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 708*c7960b37Schristos ; 709*c7960b37Schristos 71071e38f1dSchristos QWordSpaceTerm 7110b89cdedSchristos : PARSEOP_QWORDSPACE 71289b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDSPACE);} 71371e38f1dSchristos ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);} 71471e38f1dSchristos OptionalResourceType 71571e38f1dSchristos OptionalDecodeType 71671e38f1dSchristos OptionalMinType 71771e38f1dSchristos OptionalMaxType 71871e38f1dSchristos ',' ByteConstExpr 71971e38f1dSchristos ',' QWordConstExpr 72071e38f1dSchristos ',' QWordConstExpr 72171e38f1dSchristos ',' QWordConstExpr 72271e38f1dSchristos ',' QWordConstExpr 72371e38f1dSchristos ',' QWordConstExpr 72471e38f1dSchristos OptionalByteConstExpr 72571e38f1dSchristos OptionalStringData 72671e38f1dSchristos OptionalNameString_Last 72789b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14, 728d0e1da26Schristos $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);} 7290b89cdedSchristos | PARSEOP_QWORDSPACE 7300b89cdedSchristos PARSEOP_OPEN_PAREN 7310b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 73271e38f1dSchristos ; 73371e38f1dSchristos 73471e38f1dSchristos RegisterTerm 7350b89cdedSchristos : PARSEOP_REGISTER 73689b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_REGISTER);} 73771e38f1dSchristos AddressSpaceKeyword 73871e38f1dSchristos ',' ByteConstExpr 73971e38f1dSchristos ',' ByteConstExpr 74071e38f1dSchristos ',' QWordConstExpr 74171e38f1dSchristos OptionalAccessSize 74271e38f1dSchristos OptionalNameString_Last 74389b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);} 7440b89cdedSchristos | PARSEOP_REGISTER 7450b89cdedSchristos PARSEOP_OPEN_PAREN 7460b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 74771e38f1dSchristos ; 74871e38f1dSchristos 74971e38f1dSchristos SpiSerialBusTerm 7500b89cdedSchristos : PARSEOP_SPI_SERIALBUS 75189b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SPI_SERIALBUS);} 75271e38f1dSchristos WordConstExpr /* 04: DeviceSelection */ 75371e38f1dSchristos OptionalDevicePolarity /* 05: DevicePolarity */ 75471e38f1dSchristos OptionalWireMode /* 06: WireMode */ 75571e38f1dSchristos ',' ByteConstExpr /* 08: DataBitLength */ 75671e38f1dSchristos OptionalSlaveMode /* 09: SlaveMode */ 75771e38f1dSchristos ',' DWordConstExpr /* 11: ConnectionSpeed */ 75871e38f1dSchristos ',' ClockPolarityKeyword /* 13: ClockPolarity */ 75971e38f1dSchristos ',' ClockPhaseKeyword /* 15: ClockPhase */ 76071e38f1dSchristos ',' StringData /* 17: ResourceSource */ 76171e38f1dSchristos OptionalByteConstExpr /* 18: ResourceSourceIndex */ 76271e38f1dSchristos OptionalResourceType /* 19: ResourceType */ 76371e38f1dSchristos OptionalNameString /* 20: DescriptorName */ 76471e38f1dSchristos OptionalBuffer_Last /* 21: VendorData */ 76589b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14, 766d0e1da26Schristos $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20, 76789b8eb6cSchristos TrCreateLeafOp (PARSEOP_DEFAULT_ARG),$21);} 7680b89cdedSchristos | PARSEOP_SPI_SERIALBUS 7690b89cdedSchristos PARSEOP_OPEN_PAREN 7700b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 77171e38f1dSchristos ; 77271e38f1dSchristos 773cfbb7280Schristos SpiSerialBusTermV2 7740b89cdedSchristos : PARSEOP_SPI_SERIALBUS_V2 77589b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SPI_SERIALBUS_V2);} 776cfbb7280Schristos WordConstExpr /* 04: DeviceSelection */ 777cfbb7280Schristos OptionalDevicePolarity /* 05: DevicePolarity */ 778cfbb7280Schristos OptionalWireMode /* 06: WireMode */ 779cfbb7280Schristos ',' ByteConstExpr /* 08: DataBitLength */ 780cfbb7280Schristos OptionalSlaveMode /* 09: SlaveMode */ 781cfbb7280Schristos ',' DWordConstExpr /* 11: ConnectionSpeed */ 782cfbb7280Schristos ',' ClockPolarityKeyword /* 13: ClockPolarity */ 783cfbb7280Schristos ',' ClockPhaseKeyword /* 15: ClockPhase */ 784cfbb7280Schristos ',' StringData /* 17: ResourceSource */ 785cfbb7280Schristos OptionalByteConstExpr /* 18: ResourceSourceIndex */ 786cfbb7280Schristos OptionalResourceType /* 19: ResourceType */ 787cfbb7280Schristos OptionalNameString /* 20: DescriptorName */ 788cfbb7280Schristos OptionalShareType /* 21: Share */ 789cfbb7280Schristos OptionalBuffer_Last /* 22: VendorData */ 79089b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14, 791d0e1da26Schristos $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21,$22);} 7920b89cdedSchristos | PARSEOP_SPI_SERIALBUS_V2 7930b89cdedSchristos PARSEOP_OPEN_PAREN 7940b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 795cfbb7280Schristos ; 796cfbb7280Schristos 79771e38f1dSchristos StartDependentFnNoPriTerm 7980b89cdedSchristos : PARSEOP_STARTDEPENDENTFN_NOPRI 79989b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_STARTDEPENDENTFN_NOPRI);} 8000b89cdedSchristos PARSEOP_CLOSE_PAREN '{' 80189b8eb6cSchristos ResourceMacroList '}' {$$ = TrLinkOpChildren ($<n>3,1,$6);} 8020b89cdedSchristos | PARSEOP_STARTDEPENDENTFN_NOPRI 8030b89cdedSchristos PARSEOP_OPEN_PAREN 8040b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 80571e38f1dSchristos ; 80671e38f1dSchristos 80771e38f1dSchristos StartDependentFnTerm 8080b89cdedSchristos : PARSEOP_STARTDEPENDENTFN 80989b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_STARTDEPENDENTFN);} 81071e38f1dSchristos ByteConstExpr 81171e38f1dSchristos ',' ByteConstExpr 8120b89cdedSchristos PARSEOP_CLOSE_PAREN '{' 81389b8eb6cSchristos ResourceMacroList '}' {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$9);} 8140b89cdedSchristos | PARSEOP_STARTDEPENDENTFN 8150b89cdedSchristos PARSEOP_OPEN_PAREN 8160b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 81771e38f1dSchristos ; 81871e38f1dSchristos 81971e38f1dSchristos UartSerialBusTerm 8200b89cdedSchristos : PARSEOP_UART_SERIALBUS 82189b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_UART_SERIALBUS);} 82271e38f1dSchristos DWordConstExpr /* 04: ConnectionSpeed */ 82371e38f1dSchristos OptionalBitsPerByte /* 05: BitsPerByte */ 82471e38f1dSchristos OptionalStopBits /* 06: StopBits */ 82571e38f1dSchristos ',' ByteConstExpr /* 08: LinesInUse */ 82694783addSchristos OptionalEndian /* 09: Endianness */ 82771e38f1dSchristos OptionalParityType /* 10: Parity */ 82871e38f1dSchristos OptionalFlowControl /* 11: FlowControl */ 82971e38f1dSchristos ',' WordConstExpr /* 13: Rx BufferSize */ 83071e38f1dSchristos ',' WordConstExpr /* 15: Tx BufferSize */ 83171e38f1dSchristos ',' StringData /* 17: ResourceSource */ 83271e38f1dSchristos OptionalByteConstExpr /* 18: ResourceSourceIndex */ 83371e38f1dSchristos OptionalResourceType /* 19: ResourceType */ 83471e38f1dSchristos OptionalNameString /* 20: DescriptorName */ 83571e38f1dSchristos OptionalBuffer_Last /* 21: VendorData */ 83689b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15, 837d0e1da26Schristos $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20, 83889b8eb6cSchristos TrCreateLeafOp (PARSEOP_DEFAULT_ARG),$21);} 8390b89cdedSchristos | PARSEOP_UART_SERIALBUS 8400b89cdedSchristos PARSEOP_OPEN_PAREN 8410b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 84271e38f1dSchristos ; 84371e38f1dSchristos 844cfbb7280Schristos UartSerialBusTermV2 8450b89cdedSchristos : PARSEOP_UART_SERIALBUS_V2 84689b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_UART_SERIALBUS_V2);} 847cfbb7280Schristos DWordConstExpr /* 04: ConnectionSpeed */ 848cfbb7280Schristos OptionalBitsPerByte /* 05: BitsPerByte */ 849cfbb7280Schristos OptionalStopBits /* 06: StopBits */ 850cfbb7280Schristos ',' ByteConstExpr /* 08: LinesInUse */ 85194783addSchristos OptionalEndian /* 09: Endianness */ 852cfbb7280Schristos OptionalParityType /* 10: Parity */ 853cfbb7280Schristos OptionalFlowControl /* 11: FlowControl */ 854cfbb7280Schristos ',' WordConstExpr /* 13: Rx BufferSize */ 855cfbb7280Schristos ',' WordConstExpr /* 15: Tx BufferSize */ 856cfbb7280Schristos ',' StringData /* 17: ResourceSource */ 857cfbb7280Schristos OptionalByteConstExpr /* 18: ResourceSourceIndex */ 858cfbb7280Schristos OptionalResourceType /* 19: ResourceType */ 859cfbb7280Schristos OptionalNameString /* 20: DescriptorName */ 860cfbb7280Schristos OptionalShareType /* 21: Share */ 861cfbb7280Schristos OptionalBuffer_Last /* 22: VendorData */ 86289b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15, 863d0e1da26Schristos $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21,$22);} 8640b89cdedSchristos | PARSEOP_UART_SERIALBUS_V2 8650b89cdedSchristos PARSEOP_OPEN_PAREN 8660b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 867cfbb7280Schristos ; 868cfbb7280Schristos 86971e38f1dSchristos VendorLongTerm 8700b89cdedSchristos : PARSEOP_VENDORLONG 87189b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_VENDORLONG);} 87271e38f1dSchristos OptionalNameString_First 8730b89cdedSchristos PARSEOP_CLOSE_PAREN '{' 87489b8eb6cSchristos ByteList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);} 8750b89cdedSchristos | PARSEOP_VENDORLONG 8760b89cdedSchristos PARSEOP_OPEN_PAREN 8770b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 87871e38f1dSchristos ; 87971e38f1dSchristos 88071e38f1dSchristos VendorShortTerm 8810b89cdedSchristos : PARSEOP_VENDORSHORT 88289b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_VENDORSHORT);} 88371e38f1dSchristos OptionalNameString_First 8840b89cdedSchristos PARSEOP_CLOSE_PAREN '{' 88589b8eb6cSchristos ByteList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);} 8860b89cdedSchristos | PARSEOP_VENDORSHORT 8870b89cdedSchristos PARSEOP_OPEN_PAREN 8880b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 88971e38f1dSchristos ; 89071e38f1dSchristos 89171e38f1dSchristos WordBusNumberTerm 8920b89cdedSchristos : PARSEOP_WORDBUSNUMBER 89389b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDBUSNUMBER);} 89471e38f1dSchristos OptionalResourceType_First 89571e38f1dSchristos OptionalMinType 89671e38f1dSchristos OptionalMaxType 89771e38f1dSchristos OptionalDecodeType 89871e38f1dSchristos ',' WordConstExpr 89971e38f1dSchristos ',' WordConstExpr 90071e38f1dSchristos ',' WordConstExpr 90171e38f1dSchristos ',' WordConstExpr 90271e38f1dSchristos ',' WordConstExpr 90371e38f1dSchristos OptionalByteConstExpr 90471e38f1dSchristos OptionalStringData 90571e38f1dSchristos OptionalNameString_Last 90689b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,12, 907d0e1da26Schristos $4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);} 9080b89cdedSchristos | PARSEOP_WORDBUSNUMBER 9090b89cdedSchristos PARSEOP_OPEN_PAREN 9100b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 91171e38f1dSchristos ; 91271e38f1dSchristos 91371e38f1dSchristos WordIOTerm 9140b89cdedSchristos : PARSEOP_WORDIO 91589b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDIO);} 91671e38f1dSchristos OptionalResourceType_First 91771e38f1dSchristos OptionalMinType 91871e38f1dSchristos OptionalMaxType 91971e38f1dSchristos OptionalDecodeType 92071e38f1dSchristos OptionalRangeType 92171e38f1dSchristos ',' WordConstExpr 92271e38f1dSchristos ',' WordConstExpr 92371e38f1dSchristos ',' WordConstExpr 92471e38f1dSchristos ',' WordConstExpr 92571e38f1dSchristos ',' WordConstExpr 92671e38f1dSchristos OptionalByteConstExpr 92771e38f1dSchristos OptionalStringData 92871e38f1dSchristos OptionalNameString 92971e38f1dSchristos OptionalType 93071e38f1dSchristos OptionalTranslationType_Last 93189b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15, 932d0e1da26Schristos $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);} 9330b89cdedSchristos | PARSEOP_WORDIO 9340b89cdedSchristos PARSEOP_OPEN_PAREN 9350b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 93671e38f1dSchristos ; 93771e38f1dSchristos 938*c7960b37Schristos WordPccTerm 939*c7960b37Schristos : PARSEOP_WORDPCC 940*c7960b37Schristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDPCC);} 941*c7960b37Schristos ByteConstExpr 942*c7960b37Schristos OptionalByteConstExpr 943*c7960b37Schristos OptionalStringData 944*c7960b37Schristos OptionalNameString_Last 945*c7960b37Schristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4, 946*c7960b37Schristos $4,$5,$6,$7);} 947*c7960b37Schristos | PARSEOP_WORDPCC 948*c7960b37Schristos PARSEOP_OPEN_PAREN 949*c7960b37Schristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 950*c7960b37Schristos ; 951*c7960b37Schristos 95271e38f1dSchristos WordSpaceTerm 9530b89cdedSchristos : PARSEOP_WORDSPACE 95489b8eb6cSchristos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDSPACE);} 95571e38f1dSchristos ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);} 95671e38f1dSchristos OptionalResourceType 95771e38f1dSchristos OptionalDecodeType 95871e38f1dSchristos OptionalMinType 95971e38f1dSchristos OptionalMaxType 96071e38f1dSchristos ',' ByteConstExpr 96171e38f1dSchristos ',' WordConstExpr 96271e38f1dSchristos ',' WordConstExpr 96371e38f1dSchristos ',' WordConstExpr 96471e38f1dSchristos ',' WordConstExpr 96571e38f1dSchristos ',' WordConstExpr 96671e38f1dSchristos OptionalByteConstExpr 96771e38f1dSchristos OptionalStringData 96871e38f1dSchristos OptionalNameString_Last 96989b8eb6cSchristos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14, 970d0e1da26Schristos $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);} 9710b89cdedSchristos | PARSEOP_WORDSPACE 9720b89cdedSchristos PARSEOP_OPEN_PAREN 9730b89cdedSchristos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 97471e38f1dSchristos ; 975