blob: 299d4aa55c4acc11d3c1f846be5e200699ff69bd [file] [log] [blame]
Frank Vibrans69da1b62011-02-14 19:04:45 +00001/*
2 * This file is part of the coreboot project.
3 *
4 * Copyright (C) 2011 Advanced Micro Devices, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; version 2 of the License.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
Frank Vibrans69da1b62011-02-14 19:04:45 +000014 */
15
16/* simple name description */
17/*
18DefinitionBlock ("DSDT.AML","DSDT",0x01,"XXXXXX","XXXXXXXX",0x00010001
19 )
20 {
21 #include "usb.asl"
22 }
23*/
Mike Loptienba7ed4b2013-03-29 13:33:39 -060024
25/* USB overcurrent mapping pins. */
26Name(UOM0, 0)
27Name(UOM1, 2)
28Name(UOM2, 0)
29Name(UOM3, 7)
30Name(UOM4, 2)
31Name(UOM5, 2)
32Name(UOM6, 6)
33Name(UOM7, 2)
34Name(UOM8, 6)
35Name(UOM9, 6)
36
Frank Vibrans69da1b62011-02-14 19:04:45 +000037Method(UCOC, 0) {
38 Sleep(20)
39 Store(0x13,CMTI)
40 Store(0,GPSL)
41}
42
43/* USB Port 0 overcurrent uses Gpm 0 */
44If(LLessEqual(UOM0,9)) {
45 Scope (\_GPE) {
46 Method (_L13) {
47 UCOC()
48 if(LEqual(GPB0,PLC0)) {
49 Not(PLC0,PLC0)
50 Store(PLC0, \_SB.PT0D)
51 }
52 }
53 }
54}
55
56/* USB Port 1 overcurrent uses Gpm 1 */
57If (LLessEqual(UOM1,9)) {
58 Scope (\_GPE) {
59 Method (_L14) {
60 UCOC()
61 if (LEqual(GPB1,PLC1)) {
62 Not(PLC1,PLC1)
63 Store(PLC1, \_SB.PT1D)
64 }
65 }
66 }
67}
68
69/* USB Port 2 overcurrent uses Gpm 2 */
70If (LLessEqual(UOM2,9)) {
71 Scope (\_GPE) {
72 Method (_L15) {
73 UCOC()
74 if (LEqual(GPB2,PLC2)) {
75 Not(PLC2,PLC2)
76 Store(PLC2, \_SB.PT2D)
77 }
78 }
79 }
80}
81
82/* USB Port 3 overcurrent uses Gpm 3 */
83If (LLessEqual(UOM3,9)) {
84 Scope (\_GPE) {
85 Method (_L16) {
86 UCOC()
87 if (LEqual(GPB3,PLC3)) {
88 Not(PLC3,PLC3)
89 Store(PLC3, \_SB.PT3D)
90 }
91 }
92 }
93}
94
95/* USB Port 4 overcurrent uses Gpm 4 */
96If (LLessEqual(UOM4,9)) {
97 Scope (\_GPE) {
98 Method (_L19) {
99 UCOC()
100 if (LEqual(GPB4,PLC4)) {
101 Not(PLC4,PLC4)
102 Store(PLC4, \_SB.PT4D)
103 }
104 }
105 }
106}
107
108/* USB Port 5 overcurrent uses Gpm 5 */
109If (LLessEqual(UOM5,9)) {
110 Scope (\_GPE) {
111 Method (_L1A) {
112 UCOC()
113 if (LEqual(GPB5,PLC5)) {
114 Not(PLC5,PLC5)
115 Store(PLC5, \_SB.PT5D)
116 }
117 }
118 }
119}
120
121/* USB Port 6 overcurrent uses Gpm 6 */
122If (LLessEqual(UOM6,9)) {
123 Scope (\_GPE) {
124 /* Method (_L1C) { */
125 Method (_L06) {
126 UCOC()
127 if (LEqual(GPB6,PLC6)) {
128 Not(PLC6,PLC6)
129 Store(PLC6, \_SB.PT6D)
130 }
131 }
132 }
133}
134
135/* USB Port 7 overcurrent uses Gpm 7 */
136If (LLessEqual(UOM7,9)) {
Mike Loptienba7ed4b2013-03-29 13:33:39 -0600137 Scope (\_GPE) {
Frank Vibrans69da1b62011-02-14 19:04:45 +0000138 /* Method (_L1D) { */
139 Method (_L07) {
140 UCOC()
141 if (LEqual(GPB7,PLC7)) {
142 Not(PLC7,PLC7)
143 Store(PLC7, \_SB.PT7D)
144 }
145 }
146 }
147}
148
149/* USB Port 8 overcurrent uses Gpm 8 */
150If (LLessEqual(UOM8,9)) {
151 Scope (\_GPE) {
152 Method (_L17) {
153 if (LEqual(G8IS,PLC8)) {
154 Not(PLC8,PLC8)
155 Store(PLC8, \_SB.PT8D)
156 }
157 }
158 }
159}
160
161/* USB Port 9 overcurrent uses Gpm 9 */
162If (LLessEqual(UOM9,9)) {
163 Scope (\_GPE) {
164 Method (_L0E) {
165 if (LEqual(G9IS,0)) {
166 Store(1,\_SB.PT9D)
167 }
168 }
169 }
170}