soc/mediatek/mt8196: Initialize SSPM
[coreboot2.git] / src / mainboard / google / brya / acpi / peg.asl
blobebaeaecd255a01e60de540e5605f04a45d2e44f5
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 External (\_SB.PCI0.PEG0.PEGP.NPON, MethodObj)
4 External (\_SB.PCI0.PEG0.PEGP.NPOF, MethodObj)
6 OperationRegion (PCIC, PCI_Config, 0x00, 0x100)
7 Field (PCIC, AnyAcc, NoLock, Preserve)
9         Offset (0x4a),
10         CEDR,   1,              /* Correctable Error Detected, RW/1C/V */
11         Offset (0x52),
12         ,       13,
13         LASX,   1,              /* Link Active Status */
14         Offset (0x69),
15         ,       2,
16         LREN,   1,              /* LTR Enabled */
17         Offset (0xe0),
18         ,       7,
19         NCB7,   1,              /* Scratch bit to save L2/3 state */
20         Offset (0xe2),
21         ,       2,
22         L23E,   1,              /* L23_Rdy Entry request */
23         L23R,   1               /* L23_Rdy Detect Transition */
26 /* L2/3 Entry sequence */
27 Method (DL23, 0, Serialized)
29         L23E = 1
30         Local0 = 8
31         While (Local0 > 0)
32         {
33                 If (!L23E)
34                 {
35                         Break
36                 }
38                 Sleep (2)
39                 Local0--
40         }
41         NCB7 = 1
44 /* L2/3 exit seqeuence */
45 Method (LD23, 0, Serialized)
47         If (!NCB7)
48         {
49                 Return
50         }
52         L23R = 1
53         Local0 = 20
54         While (Local0 > 0)
55         {
56                 If (!L23R)
57                 {
58                         Break
59                 }
61                 Sleep (2)
62                 Local0--
63         }
65         NCB7 = 0
66         Local0 = 8
67         While (Local0 > 0)
68         {
69                 If (LASX == 1)
70                 {
71                         Break
72                 }
74                 Sleep (2)
75                 Local0--
76         }
79 /* PEG Power Resource */
80 PowerResource (PGPR, 0, 0)
82         Method (_ON, 0, Serialized)
83         {
84                 /* Power up GPU from GCOFF (or GC6 exit if deferred) */
85                 \_SB.PCI0.PEG0.PEGP.NPON ()
86                 _STA = 1
87         }
88         Method (_OFF, 0, Serialized)
89         {
90                 /* Power down GPU to GCOFF (or GC6 entry if deferred) */
91                 _STA = 0
92                 \_SB.PCI0.PEG0.PEGP.NPOF ()
93         }
94         Name (_STA, 0)
97 Name (_PR0, Package() { PGPR })
98 Name (_PR2, Package() { PGPR })
99 Name (_PR3, Package() { PGPR })