1    /*
2     * Some or all of this work - Copyright (c) 2006 - 2021, Intel Corp.
3     * All rights reserved.
4     *
5     * Redistribution and use in source and binary forms, with or without modification,
6     * are permitted provided that the following conditions are met:
7     *
8     * Redistributions of source code must retain the above copyright notice,
9     * this list of conditions and the following disclaimer.
10     * Redistributions in binary form must reproduce the above copyright notice,
11     * this list of conditions and the following disclaimer in the documentation
12     * and/or other materials provided with the distribution.
13     * Neither the name of Intel Corporation nor the names of its contributors
14     * may be used to endorse or promote products derived from this software
15     * without specific prior written permission.
16     *
17     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19     * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20     * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21     * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22     * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23     * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24     * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25     * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27     */
28    /*
29     * Resource Descriptor macros
30     *
31     * PinConfig Resource Descriptor Macro
32     */
33    Name (P45E, Package (0x21)
34    {
35        ResourceTemplate ()
36        {
37            PinConfig (Exclusive, 0x00 /* Default */, 0x1000,
38                "\\SB.GP01", 0x00, ResourceConsumer, ,
39                RawDataBuffer (0x03)  // Vendor Data
40                {
41                    0x0A, 0x0B, 0x0C
42                })
43                {   // Pin list
44                    0x00AA,
45                    0x00BB,
46                    0x00CC,
47                    0x00DD
48                }
49        },
50
51        ResourceTemplate ()
52        {
53            PinConfig (Exclusive, 0x01 /* Bias Pull-up */, 0x2000,
54                "\\SB.GP01", 0x00, ResourceConsumer, ,
55                RawDataBuffer (0x03)  // Vendor Data
56                {
57                    0x0A, 0x0B, 0x0C
58                })
59                {   // Pin list
60                    0x00AA,
61                    0x00BB,
62                    0x00CC,
63                    0x000D
64                }
65        },
66
67        ResourceTemplate ()
68        {
69            PinConfig (Exclusive, 0x02 /* Bias Pull-down */, 0x3000,
70                "\\SB.GP01", 0x00, ResourceConsumer, ,
71                RawDataBuffer (0x03)  // Vendor Data
72                {
73                    0x0A, 0x0B, 0x0C
74                })
75                {   // Pin list
76                    0x00AA,
77                    0x00BB,
78                    0x00CC,
79                    0x00DD
80                }
81        },
82
83        ResourceTemplate ()
84        {
85            PinConfig (Exclusive, 0x03 /* Bias Default */, 0x4000,
86                "\\SB.GP01", 0x00, ResourceConsumer, ,
87                RawDataBuffer (0x03)  // Vendor Data
88                {
89                    0x0A, 0x0B, 0x0C
90                })
91                {   // Pin list
92                    0x00AA,
93                    0x00BB,
94                    0x00CC,
95                    0x00DD
96                }
97        },
98
99        ResourceTemplate ()
100        {
101            PinConfig (Exclusive, 0x04 /* Bias Disable */, 0x5000,
102                "\\SB.GP01", 0x00, ResourceConsumer, ,
103                RawDataBuffer (0x03)  // Vendor Data
104                {
105                    0x0A, 0x0B, 0x0C
106                })
107                {   // Pin list
108                    0x00AA,
109                    0x00BB,
110                    0x00CC,
111                    0x00DD
112                }
113        },
114
115        ResourceTemplate ()
116        {
117            PinConfig (Exclusive, 0x05 /* Bias High Impedance */, 0x6000,
118                "\\SB.GP01", 0x00, ResourceConsumer, ,
119                RawDataBuffer (0x03)  // Vendor Data
120                {
121                    0x0A, 0x0B, 0x0C
122                })
123                {   // Pin list
124                    0x00AA,
125                    0x00BB,
126                    0x00CC,
127                    0x00DD
128                }
129        },
130
131        ResourceTemplate ()
132        {
133            PinConfig (Exclusive, 0x06 /* Bias Bus Hold */, 0x7000,
134                "\\SB.GP01", 0x00, ResourceConsumer, ,
135                RawDataBuffer (0x03)  // Vendor Data
136                {
137                    0x0A, 0x0B, 0x0C
138                })
139                {   // Pin list
140                    0x00AA,
141                    0x00BB,
142                    0x00CC,
143                    0x00DD
144                }
145        },
146
147        ResourceTemplate ()
148        {
149            PinConfig (Exclusive, 0x07 /* Drive Open Drain */, 0x8000,
150                "\\SB.GP01", 0x00, ResourceConsumer, ,
151                RawDataBuffer (0x03)  // Vendor Data
152                {
153                    0x0A, 0x0B, 0x0C
154                })
155                {   // Pin list
156                    0x00AA,
157                    0x00BB,
158                    0x00CC,
159                    0x00DD
160                }
161        },
162
163        ResourceTemplate ()
164        {
165            PinConfig (Exclusive, 0x08 /* Drive Open Source */, 0x9000,
166                "\\SB.GP01", 0x00, ResourceConsumer, ,
167                RawDataBuffer (0x03)  // Vendor Data
168                {
169                    0x0A, 0x0B, 0x0C
170                })
171                {   // Pin list
172                    0x00AA,
173                    0x00BB,
174                    0x00CC,
175                    0x00DD
176                }
177        },
178
179        ResourceTemplate ()
180        {
181            PinConfig (Exclusive, 0x09 /* Drive Push Pull */, 0xA000,
182                "\\SB.GP01", 0x00, ResourceConsumer, ,
183                RawDataBuffer (0x03)  // Vendor Data
184                {
185                    0x0A, 0x0B, 0x0C
186                })
187                {   // Pin list
188                    0x00AA,
189                    0x00BB,
190                    0x00CC,
191                    0x00DD
192                }
193        },
194
195        ResourceTemplate ()
196        {
197            PinConfig (Exclusive, 0x0A /* Drive Strength */, 0xB000,
198                "\\SB.GP01", 0x00, ResourceConsumer, ,
199                RawDataBuffer (0x03)  // Vendor Data
200                {
201                    0x0A, 0x0B, 0x0C
202                })
203                {   // Pin list
204                    0x00AA,
205                    0x00BB,
206                    0x00CC,
207                    0x00DD
208                }
209        },
210
211        ResourceTemplate ()
212        {
213            PinConfig (Exclusive, 0x0B /* Slew Rate */, 0xC000,
214                "\\SB.GP01", 0x00, ResourceConsumer, ,
215                RawDataBuffer (0x03)  // Vendor Data
216                {
217                    0x0A, 0x0B, 0x0C
218                })
219                {   // Pin list
220                    0x00AA,
221                    0x00BB,
222                    0x00CC,
223                    0x00DD
224                }
225        },
226
227        ResourceTemplate ()
228        {
229            PinConfig (Exclusive, 0x0C /* Input Debounce */, 0xD000,
230                "\\SB.GP01", 0x00, ResourceConsumer, ,
231                RawDataBuffer (0x03)  // Vendor Data
232                {
233                    0x0A, 0x0B, 0x0C
234                })
235                {   // Pin list
236                    0x00AA,
237                    0x00BB,
238                    0x00CC,
239                    0x00DD
240                }
241        },
242
243        ResourceTemplate ()
244        {
245            PinConfig (Exclusive, 0x0D /* Input Schmitt Trigger */, 0xE000,
246                "\\SB.GP01", 0x00, ResourceConsumer, ,
247                RawDataBuffer (0x03)  // Vendor Data
248                {
249                    0x0A, 0x0B, 0x0C
250                })
251                {   // Pin list
252                    0x00AA,
253                    0x00BB,
254                    0x00CC,
255                    0x00DD
256                }
257        },
258
259        ResourceTemplate ()
260        {
261            PinConfig (Exclusive, 0x80, /* Vendor Defined */ 0xF000,
262                "\\SB.GP01", 0x00, ResourceConsumer, ,
263                RawDataBuffer (0x03)  // Vendor Data
264                {
265                    0x0A, 0x0B, 0x0C
266                })
267                {   // Pin list
268                    0x00AA,
269                    0x00BB,
270                    0x00CC,
271                    0x00DD
272                }
273        },
274
275        ResourceTemplate ()
276        {
277            PinConfig (Exclusive, 0xFE, /* Vendor Defined */ 0xF100,
278                "\\SB.GP01", 0x00, ResourceConsumer, ,
279                RawDataBuffer (0x03)  // Vendor Data
280                {
281                    0x0A, 0x0B, 0x0C
282                })
283                {   // Pin list
284                    0x00AA,
285                    0x00BB,
286                    0x00CC,
287                    0x00DD
288                }
289        },
290
291        ResourceTemplate ()
292        {
293            PinConfig (Shared, 0x00 /* Default */, 0x1000,
294                "\\SB.GP01", 0x00, ResourceConsumer, ,
295                RawDataBuffer (0x03)  // Vendor Data
296                {
297                    0x0A, 0x0B, 0x0C
298                })
299                {   // Pin list
300                    0x00AA,
301                    0x00BB,
302                    0x00CC,
303                    0x00DD
304                }
305        },
306
307        ResourceTemplate ()
308        {
309            PinConfig (Shared, 0x01 /* Bias Pull-up */, 0x2000,
310                "\\SB.GP01", 0x00, ResourceConsumer, ,
311                RawDataBuffer (0x03)  // Vendor Data
312                {
313                    0x0A, 0x0B, 0x0C
314                })
315                {   // Pin list
316                    0x00AA,
317                    0x00BB,
318                    0x00CC,
319                    0x000D
320                }
321        },
322
323        ResourceTemplate ()
324        {
325            PinConfig (Shared, 0x02 /* Bias Pull-down */, 0x3000,
326                "\\SB.GP01", 0x00, ResourceConsumer, ,
327                RawDataBuffer (0x03)  // Vendor Data
328                {
329                    0x0A, 0x0B, 0x0C
330                })
331                {   // Pin list
332                    0x00AA,
333                    0x00BB,
334                    0x00CC,
335                    0x00DD
336                }
337        },
338
339        ResourceTemplate ()
340        {
341            PinConfig (Shared, 0x03 /* Bias Default */, 0x4000,
342                "\\SB.GP01", 0x00, ResourceConsumer, ,
343                RawDataBuffer (0x03)  // Vendor Data
344                {
345                    0x0A, 0x0B, 0x0C
346                })
347                {   // Pin list
348                    0x00AA,
349                    0x00BB,
350                    0x00CC,
351                    0x00DD
352                }
353        },
354
355        ResourceTemplate ()
356        {
357            PinConfig (Shared, 0x04 /* Bias Disable */, 0x5000,
358                "\\SB.GP01", 0x00, ResourceConsumer, ,
359                RawDataBuffer (0x03)  // Vendor Data
360                {
361                    0x0A, 0x0B, 0x0C
362                })
363                {   // Pin list
364                    0x00AA,
365                    0x00BB,
366                    0x00CC,
367                    0x00DD
368                }
369        },
370
371        ResourceTemplate ()
372        {
373            PinConfig (Shared, 0x05 /* Bias High Impedance */, 0x6000,
374                "\\SB.GP01", 0x00, ResourceConsumer, ,
375                RawDataBuffer (0x03)  // Vendor Data
376                {
377                    0x0A, 0x0B, 0x0C
378                })
379                {   // Pin list
380                    0x00AA,
381                    0x00BB,
382                    0x00CC,
383                    0x00DD
384                }
385        },
386
387        ResourceTemplate ()
388        {
389            PinConfig (Shared, 0x06 /* Bias Bus Hold */, 0x7000,
390                "\\SB.GP01", 0x00, ResourceConsumer, ,
391                RawDataBuffer (0x03)  // Vendor Data
392                {
393                    0x0A, 0x0B, 0x0C
394                })
395                {   // Pin list
396                    0x00AA,
397                    0x00BB,
398                    0x00CC,
399                    0x00DD
400                }
401        },
402
403        ResourceTemplate ()
404        {
405            PinConfig (Shared, 0x07 /* Drive Open Drain */, 0x8000,
406                "\\SB.GP01", 0x00, ResourceConsumer, ,
407                RawDataBuffer (0x03)  // Vendor Data
408                {
409                    0x0A, 0x0B, 0x0C
410                })
411                {   // Pin list
412                    0x00AA,
413                    0x00BB,
414                    0x00CC,
415                    0x00DD
416                }
417        },
418
419        ResourceTemplate ()
420        {
421            PinConfig (Shared, 0x08 /* Drive Open Source */, 0x9000,
422                "\\SB.GP01", 0x00, ResourceConsumer, ,
423                RawDataBuffer (0x03)  // Vendor Data
424                {
425                    0x0A, 0x0B, 0x0C
426                })
427                {   // Pin list
428                    0x00AA,
429                    0x00BB,
430                    0x00CC,
431                    0x00DD
432                }
433        },
434
435        ResourceTemplate ()
436        {
437            PinConfig (Shared, 0x09 /* Drive Push Pull */, 0xA000,
438                "\\SB.GP01", 0x00, ResourceConsumer, ,
439                RawDataBuffer (0x03)  // Vendor Data
440                {
441                    0x0A, 0x0B, 0x0C
442                })
443                {   // Pin list
444                    0x00AA,
445                    0x00BB,
446                    0x00CC,
447                    0x00DD
448                }
449        },
450
451        ResourceTemplate ()
452        {
453            PinConfig (Shared, 0x0A /* Drive Strength */, 0xB000,
454                "\\SB.GP01", 0x00, ResourceConsumer, ,
455                RawDataBuffer (0x03)  // Vendor Data
456                {
457                    0x0A, 0x0B, 0x0C
458                })
459                {   // Pin list
460                    0x00AA,
461                    0x00BB,
462                    0x00CC,
463                    0x00DD
464                }
465        },
466
467        ResourceTemplate ()
468        {
469            PinConfig (Shared, 0x0B /* Slew Rate */, 0xC000,
470                "\\SB.GP01", 0x00, ResourceConsumer, ,
471                RawDataBuffer (0x03)  // Vendor Data
472                {
473                    0x0A, 0x0B, 0x0C
474                })
475                {   // Pin list
476                    0x00AA,
477                    0x00BB,
478                    0x00CC,
479                    0x00DD
480                }
481        },
482
483        ResourceTemplate ()
484        {
485            PinConfig (Shared, 0x0C /* Input Debounce */, 0xD000,
486                "\\SB.GP01", 0x00, ResourceConsumer, ,
487                RawDataBuffer (0x03)  // Vendor Data
488                {
489                    0x0A, 0x0B, 0x0C
490                })
491                {   // Pin list
492                    0x00AA,
493                    0x00BB,
494                    0x00CC,
495                    0x00DD
496                }
497        },
498
499        ResourceTemplate ()
500        {
501            PinConfig (Shared, 0x0D /* Input Schmitt Trigger */, 0xE000,
502                "\\SB.GP01", 0x00, ResourceConsumer, ,
503                RawDataBuffer (0x03)  // Vendor Data
504                {
505                    0x0A, 0x0B, 0x0C
506                })
507                {   // Pin list
508                    0x00AA,
509                    0x00BB,
510                    0x00CC,
511                    0x00DD
512                }
513        },
514
515        ResourceTemplate ()
516        {
517            PinConfig (Shared, 0x80, /* Vendor Defined */ 0xF000,
518                "\\SB.GP01", 0x00, ResourceConsumer, ,
519                RawDataBuffer (0x03)  // Vendor Data
520                {
521                    0x0A, 0x0B, 0x0C
522                })
523                {   // Pin list
524                    0x00AA,
525                    0x00BB,
526                    0x00CC,
527                    0x00DD
528                }
529        },
530
531        ResourceTemplate ()
532        {
533            PinConfig (Shared, 0xFE, /* Vendor Defined */ 0xF100,
534                "\\SB.GP01", 0x00, ResourceConsumer, ,
535                RawDataBuffer (0x03)  // Vendor Data
536                {
537                    0x0A, 0x0B, 0x0C
538                })
539                {   // Pin list
540                    0x00AA,
541                    0x00BB,
542                    0x00CC,
543                    0x00DD
544                }
545        },
546
547        ResourceTemplate ()
548        {
549            PinConfig (Exclusive, 0x00 /* Default */, 0x0000,
550                "\\SB.GP01", 0x00, ResourceConsumer, ,)
551                {   // Pin list
552                    0x0001,
553                    0x0002
554                }
555        }
556    })
557    Name (P45F, Package (0x21)
558    {
559        ResourceTemplate ()
560        {
561            PinConfig (Exclusive, 0x00 /* Default */, 0x1000,
562                "\\SB.GP01", 0x00, ResourceConsumer, ,
563                RawDataBuffer (0x03)  // Vendor Data
564                {
565                    0x0A, 0x0B, 0x0C
566                })
567                {   // Pin list
568                    0x00AA,
569                    0x00BB,
570                    0x00CC,
571                    0x00DD
572                }
573        },
574
575        ResourceTemplate ()
576        {
577            PinConfig (Exclusive, 0x01 /* Bias Pull-up */, 0x2000,
578                "\\SB.GP01", 0x00, ResourceConsumer, ,
579                RawDataBuffer (0x03)  // Vendor Data
580                {
581                    0x0A, 0x0B, 0x0C
582                })
583                {   // Pin list
584                    0x00AA,
585                    0x00BB,
586                    0x00CC,
587                    0x000D
588                }
589        },
590
591        ResourceTemplate ()
592        {
593            PinConfig (Exclusive, 0x02 /* Bias Pull-down */, 0x3000,
594                "\\SB.GP01", 0x00, ResourceConsumer, ,
595                RawDataBuffer (0x03)  // Vendor Data
596                {
597                    0x0A, 0x0B, 0x0C
598                })
599                {   // Pin list
600                    0x00AA,
601                    0x00BB,
602                    0x00CC,
603                    0x00DD
604                }
605        },
606
607        ResourceTemplate ()
608        {
609            PinConfig (Exclusive, 0x03 /* Bias Default */, 0x4000,
610                "\\SB.GP01", 0x00, ResourceConsumer, ,
611                RawDataBuffer (0x03)  // Vendor Data
612                {
613                    0x0A, 0x0B, 0x0C
614                })
615                {   // Pin list
616                    0x00AA,
617                    0x00BB,
618                    0x00CC,
619                    0x00DD
620                }
621        },
622
623        ResourceTemplate ()
624        {
625            PinConfig (Exclusive, 0x04 /* Bias Disable */, 0x5000,
626                "\\SB.GP01", 0x00, ResourceConsumer, ,
627                RawDataBuffer (0x03)  // Vendor Data
628                {
629                    0x0A, 0x0B, 0x0C
630                })
631                {   // Pin list
632                    0x00AA,
633                    0x00BB,
634                    0x00CC,
635                    0x00DD
636                }
637        },
638
639        ResourceTemplate ()
640        {
641            PinConfig (Exclusive, 0x05 /* Bias High Impedance */, 0x6000,
642                "\\SB.GP01", 0x00, ResourceConsumer, ,
643                RawDataBuffer (0x03)  // Vendor Data
644                {
645                    0x0A, 0x0B, 0x0C
646                })
647                {   // Pin list
648                    0x00AA,
649                    0x00BB,
650                    0x00CC,
651                    0x00DD
652                }
653        },
654
655        ResourceTemplate ()
656        {
657            PinConfig (Exclusive, 0x06 /* Bias Bus Hold */, 0x7000,
658                "\\SB.GP01", 0x00, ResourceConsumer, ,
659                RawDataBuffer (0x03)  // Vendor Data
660                {
661                    0x0A, 0x0B, 0x0C
662                })
663                {   // Pin list
664                    0x00AA,
665                    0x00BB,
666                    0x00CC,
667                    0x00DD
668                }
669        },
670
671        ResourceTemplate ()
672        {
673            PinConfig (Exclusive, 0x07 /* Drive Open Drain */, 0x8000,
674                "\\SB.GP01", 0x00, ResourceConsumer, ,
675                RawDataBuffer (0x03)  // Vendor Data
676                {
677                    0x0A, 0x0B, 0x0C
678                })
679                {   // Pin list
680                    0x00AA,
681                    0x00BB,
682                    0x00CC,
683                    0x00DD
684                }
685        },
686
687        ResourceTemplate ()
688        {
689            PinConfig (Exclusive, 0x08 /* Drive Open Source */, 0x9000,
690                "\\SB.GP01", 0x00, ResourceConsumer, ,
691                RawDataBuffer (0x03)  // Vendor Data
692                {
693                    0x0A, 0x0B, 0x0C
694                })
695                {   // Pin list
696                    0x00AA,
697                    0x00BB,
698                    0x00CC,
699                    0x00DD
700                }
701        },
702
703        ResourceTemplate ()
704        {
705            PinConfig (Exclusive, 0x09 /* Drive Push Pull */, 0xA000,
706                "\\SB.GP01", 0x00, ResourceConsumer, ,
707                RawDataBuffer (0x03)  // Vendor Data
708                {
709                    0x0A, 0x0B, 0x0C
710                })
711                {   // Pin list
712                    0x00AA,
713                    0x00BB,
714                    0x00CC,
715                    0x00DD
716                }
717        },
718
719        ResourceTemplate ()
720        {
721            PinConfig (Exclusive, 0x0A /* Drive Strength */, 0xB000,
722                "\\SB.GP01", 0x00, ResourceConsumer, ,
723                RawDataBuffer (0x03)  // Vendor Data
724                {
725                    0x0A, 0x0B, 0x0C
726                })
727                {   // Pin list
728                    0x00AA,
729                    0x00BB,
730                    0x00CC,
731                    0x00DD
732                }
733        },
734
735        ResourceTemplate ()
736        {
737            PinConfig (Exclusive, 0x0B /* Slew Rate */, 0xC000,
738                "\\SB.GP01", 0x00, ResourceConsumer, ,
739                RawDataBuffer (0x03)  // Vendor Data
740                {
741                    0x0A, 0x0B, 0x0C
742                })
743                {   // Pin list
744                    0x00AA,
745                    0x00BB,
746                    0x00CC,
747                    0x00DD
748                }
749        },
750
751        ResourceTemplate ()
752        {
753            PinConfig (Exclusive, 0x0C /* Input Debounce */, 0xD000,
754                "\\SB.GP01", 0x00, ResourceConsumer, ,
755                RawDataBuffer (0x03)  // Vendor Data
756                {
757                    0x0A, 0x0B, 0x0C
758                })
759                {   // Pin list
760                    0x00AA,
761                    0x00BB,
762                    0x00CC,
763                    0x00DD
764                }
765        },
766
767        ResourceTemplate ()
768        {
769            PinConfig (Exclusive, 0x0D /* Input Schmitt Trigger */, 0xE000,
770                "\\SB.GP01", 0x00, ResourceConsumer, ,
771                RawDataBuffer (0x03)  // Vendor Data
772                {
773                    0x0A, 0x0B, 0x0C
774                })
775                {   // Pin list
776                    0x00AA,
777                    0x00BB,
778                    0x00CC,
779                    0x00DD
780                }
781        },
782
783        ResourceTemplate ()
784        {
785            PinConfig (Exclusive, 0x80, /* Vendor Defined */ 0xF000,
786                "\\SB.GP01", 0x00, ResourceConsumer, ,
787                RawDataBuffer (0x03)  // Vendor Data
788                {
789                    0x0A, 0x0B, 0x0C
790                })
791                {   // Pin list
792                    0x00AA,
793                    0x00BB,
794                    0x00CC,
795                    0x00DD
796                }
797        },
798
799        ResourceTemplate ()
800        {
801            PinConfig (Exclusive, 0xFE, /* Vendor Defined */ 0xF100,
802                "\\SB.GP01", 0x00, ResourceConsumer, ,
803                RawDataBuffer (0x03)  // Vendor Data
804                {
805                    0x0A, 0x0B, 0x0C
806                })
807                {   // Pin list
808                    0x00AA,
809                    0x00BB,
810                    0x00CC,
811                    0x00DD
812                }
813        },
814
815        ResourceTemplate ()
816        {
817            PinConfig (Shared, 0x00 /* Default */, 0x1000,
818                "\\SB.GP01", 0x00, ResourceConsumer, ,
819                RawDataBuffer (0x03)  // Vendor Data
820                {
821                    0x0A, 0x0B, 0x0C
822                })
823                {   // Pin list
824                    0x00AA,
825                    0x00BB,
826                    0x00CC,
827                    0x00DD
828                }
829        },
830
831        ResourceTemplate ()
832        {
833            PinConfig (Shared, 0x01 /* Bias Pull-up */, 0x2000,
834                "\\SB.GP01", 0x00, ResourceConsumer, ,
835                RawDataBuffer (0x03)  // Vendor Data
836                {
837                    0x0A, 0x0B, 0x0C
838                })
839                {   // Pin list
840                    0x00AA,
841                    0x00BB,
842                    0x00CC,
843                    0x000D
844                }
845        },
846
847        ResourceTemplate ()
848        {
849            PinConfig (Shared, 0x02 /* Bias Pull-down */, 0x3000,
850                "\\SB.GP01", 0x00, ResourceConsumer, ,
851                RawDataBuffer (0x03)  // Vendor Data
852                {
853                    0x0A, 0x0B, 0x0C
854                })
855                {   // Pin list
856                    0x00AA,
857                    0x00BB,
858                    0x00CC,
859                    0x00DD
860                }
861        },
862
863        ResourceTemplate ()
864        {
865            PinConfig (Shared, 0x03 /* Bias Default */, 0x4000,
866                "\\SB.GP01", 0x00, ResourceConsumer, ,
867                RawDataBuffer (0x03)  // Vendor Data
868                {
869                    0x0A, 0x0B, 0x0C
870                })
871                {   // Pin list
872                    0x00AA,
873                    0x00BB,
874                    0x00CC,
875                    0x00DD
876                }
877        },
878
879        ResourceTemplate ()
880        {
881            PinConfig (Shared, 0x04 /* Bias Disable */, 0x5000,
882                "\\SB.GP01", 0x00, ResourceConsumer, ,
883                RawDataBuffer (0x03)  // Vendor Data
884                {
885                    0x0A, 0x0B, 0x0C
886                })
887                {   // Pin list
888                    0x00AA,
889                    0x00BB,
890                    0x00CC,
891                    0x00DD
892                }
893        },
894
895        ResourceTemplate ()
896        {
897            PinConfig (Shared, 0x05 /* Bias High Impedance */, 0x6000,
898                "\\SB.GP01", 0x00, ResourceConsumer, ,
899                RawDataBuffer (0x03)  // Vendor Data
900                {
901                    0x0A, 0x0B, 0x0C
902                })
903                {   // Pin list
904                    0x00AA,
905                    0x00BB,
906                    0x00CC,
907                    0x00DD
908                }
909        },
910
911        ResourceTemplate ()
912        {
913            PinConfig (Shared, 0x06 /* Bias Bus Hold */, 0x7000,
914                "\\SB.GP01", 0x00, ResourceConsumer, ,
915                RawDataBuffer (0x03)  // Vendor Data
916                {
917                    0x0A, 0x0B, 0x0C
918                })
919                {   // Pin list
920                    0x00AA,
921                    0x00BB,
922                    0x00CC,
923                    0x00DD
924                }
925        },
926
927        ResourceTemplate ()
928        {
929            PinConfig (Shared, 0x07 /* Drive Open Drain */, 0x8000,
930                "\\SB.GP01", 0x00, ResourceConsumer, ,
931                RawDataBuffer (0x03)  // Vendor Data
932                {
933                    0x0A, 0x0B, 0x0C
934                })
935                {   // Pin list
936                    0x00AA,
937                    0x00BB,
938                    0x00CC,
939                    0x00DD
940                }
941        },
942
943        ResourceTemplate ()
944        {
945            PinConfig (Shared, 0x08 /* Drive Open Source */, 0x9000,
946                "\\SB.GP01", 0x00, ResourceConsumer, ,
947                RawDataBuffer (0x03)  // Vendor Data
948                {
949                    0x0A, 0x0B, 0x0C
950                })
951                {   // Pin list
952                    0x00AA,
953                    0x00BB,
954                    0x00CC,
955                    0x00DD
956                }
957        },
958
959        ResourceTemplate ()
960        {
961            PinConfig (Shared, 0x09 /* Drive Push Pull */, 0xA000,
962                "\\SB.GP01", 0x00, ResourceConsumer, ,
963                RawDataBuffer (0x03)  // Vendor Data
964                {
965                    0x0A, 0x0B, 0x0C
966                })
967                {   // Pin list
968                    0x00AA,
969                    0x00BB,
970                    0x00CC,
971                    0x00DD
972                }
973        },
974
975        ResourceTemplate ()
976        {
977            PinConfig (Shared, 0x0A /* Drive Strength */, 0xB000,
978                "\\SB.GP01", 0x00, ResourceConsumer, ,
979                RawDataBuffer (0x03)  // Vendor Data
980                {
981                    0x0A, 0x0B, 0x0C
982                })
983                {   // Pin list
984                    0x00AA,
985                    0x00BB,
986                    0x00CC,
987                    0x00DD
988                }
989        },
990
991        ResourceTemplate ()
992        {
993            PinConfig (Shared, 0x0B /* Slew Rate */, 0xC000,
994                "\\SB.GP01", 0x00, ResourceConsumer, ,
995                RawDataBuffer (0x03)  // Vendor Data
996                {
997                    0x0A, 0x0B, 0x0C
998                })
999                {   // Pin list
1000                    0x00AA,
1001                    0x00BB,
1002                    0x00CC,
1003                    0x00DD
1004                }
1005        },
1006
1007        ResourceTemplate ()
1008        {
1009            PinConfig (Shared, 0x0C /* Input Debounce */, 0xD000,
1010                "\\SB.GP01", 0x00, ResourceConsumer, ,
1011                RawDataBuffer (0x03)  // Vendor Data
1012                {
1013                    0x0A, 0x0B, 0x0C
1014                })
1015                {   // Pin list
1016                    0x00AA,
1017                    0x00BB,
1018                    0x00CC,
1019                    0x00DD
1020                }
1021        },
1022
1023        ResourceTemplate ()
1024        {
1025            PinConfig (Shared, 0x0D /* Input Schmitt Trigger */, 0xE000,
1026                "\\SB.GP01", 0x00, ResourceConsumer, ,
1027                RawDataBuffer (0x03)  // Vendor Data
1028                {
1029                    0x0A, 0x0B, 0x0C
1030                })
1031                {   // Pin list
1032                    0x00AA,
1033                    0x00BB,
1034                    0x00CC,
1035                    0x00DD
1036                }
1037        },
1038
1039        ResourceTemplate ()
1040        {
1041            PinConfig (Shared, 0x80, /* Vendor Defined */ 0xF000,
1042                "\\SB.GP01", 0x00, ResourceConsumer, ,
1043                RawDataBuffer (0x03)  // Vendor Data
1044                {
1045                    0x0A, 0x0B, 0x0C
1046                })
1047                {   // Pin list
1048                    0x00AA,
1049                    0x00BB,
1050                    0x00CC,
1051                    0x00DD
1052                }
1053        },
1054
1055        ResourceTemplate ()
1056        {
1057            PinConfig (Shared, 0xFE, /* Vendor Defined */ 0xF100,
1058                "\\SB.GP01", 0x00, ResourceConsumer, ,
1059                RawDataBuffer (0x03)  // Vendor Data
1060                {
1061                    0x0A, 0x0B, 0x0C
1062                })
1063                {   // Pin list
1064                    0x00AA,
1065                    0x00BB,
1066                    0x00CC,
1067                    0x00DD
1068                }
1069        },
1070
1071        ResourceTemplate ()
1072        {
1073            PinConfig (Exclusive, 0x00 /* Default */, 0x0000,
1074                "\\SB.GP01", 0x00, ResourceConsumer, ,)
1075                {   // Pin list
1076                    0x0001,
1077                    0x0002
1078                }
1079        }
1080    })
1081    Method (RT27, 0, Serialized)
1082    {
1083        /* Emit test header, set the filename */
1084
1085        THDR (__METHOD__, "PinConfig Resource Descriptor Macro", "pinconfig.asl")
1086        /* The main test packages must have the same number of entries */
1087
1088        If ((SizeOf (P45E) != SizeOf (P45F)))
1089        {
1090            ERR (__METHOD__, 0xB3, __LINE__, 0x00, 0x00, 0x00, "Incorrect package length")
1091            Return (Zero)
1092        }
1093
1094        /* Main test case for packages above */
1095
1096        M330 (__METHOD__, SizeOf (P45E), "P45E", P45E, P45F)
1097                    /* Check resource descriptor tag offsets */
1098
1099Local0 = ResourceTemplate ()
1100            {
1101                PinConfig (Shared, 0x0C /* Input Debounce */, 0xABCD,
1102                    "\\SB.GP01", 0x00, ResourceConsumer, ,
1103                    RawDataBuffer (0x03)  // Vendor Data
1104                    {
1105                        0x0A, 0x0B, 0x0C
1106                    })
1107                    {   // Pin list
1108                        0x00AA,
1109                        0x00BB,
1110                        0x00CC,
1111                        0x00DD
1112                    }
1113                PinConfig (Shared, 0x0C /* Input Debounce */, 0xABCD,
1114                    "\\SB.GP01", 0x00, ResourceConsumer, ,
1115                    RawDataBuffer (0x03)  // Vendor Data
1116                    {
1117                        0x0A, 0x0B, 0x0C
1118                    })
1119                    {   // Pin list
1120                        0x00AA,
1121                        0x00BB,
1122                        0x00CC,
1123                        0x00DD
1124                    }
1125            }
1126        M331 (__METHOD__, 0x01, 0x20, 0x20, 0x0160, 0x0160, "_SHR")
1127        M331 (__METHOD__, 0x01, 0x30, 0x30, 0x0170, 0x0170, "_TYP")
1128        M331 (__METHOD__, 0x01, 0x38, 0x38, 0x0178, 0x0178, "_VAL")
1129        M331 (__METHOD__, 0x01, 0xA0, 0xA0, 0x01E0, 0x01E0, "_PIN")
1130        M331 (__METHOD__, 0x01, 0x0128, 0x0128, 0x0268, 0x0268, "_VEN")
1131    }
1132