blob: 44838347dc00f53868c60b9917bce1665484961e [file] [log] [blame]
Angel Pons08da24e2020-04-03 01:21:24 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Damien Zammitd2b5b732017-10-04 20:07:47 +11002
3//BTDC Due to IMC Fan, ACPI control codes
4OperationRegion(IMIO, SystemIO, 0x3E, 0x02)
5Field(IMIO , ByteAcc, NoLock, Preserve) {
6 IMCX,8,
7 IMCA,8
8}
9
10IndexField(IMCX, IMCA, ByteAcc, NoLock, Preserve) {
11 Offset(0x80),
12 MSTI, 8,
13 MITS, 8,
14 MRG0, 8,
15 MRG1, 8,
16 MRG2, 8,
17 MRG3, 8,
18}
19
20Method(WACK, 0)
21{
Elyes HAOUASd4ed0e12020-10-08 09:16:29 +020022 Local0 = 0
23 While (Local0 != 0xfa) {
24 Local0 = MRG0
Damien Zammitd2b5b732017-10-04 20:07:47 +110025 Sleep(10)
26 }
27}
28
29//Init
30Method (ITZE, 0)
31{
Elyes HAOUASd4ed0e12020-10-08 09:16:29 +020032 MRG0 = 0
33 MRG1 = 0xb5
34 MRG2 = 0
35 MSTI = 0x96
Damien Zammitd2b5b732017-10-04 20:07:47 +110036 WACK()
37
Elyes HAOUASd4ed0e12020-10-08 09:16:29 +020038 MRG0 = 0
39 MRG1 = 0
40 MRG2 = 0
41 MSTI = 0x80
Damien Zammitd2b5b732017-10-04 20:07:47 +110042 WACK()
43
Elyes HAOUASd4ed0e12020-10-08 09:16:29 +020044 Local0 = MRG2 | 0x01
Damien Zammitd2b5b732017-10-04 20:07:47 +110045
Elyes HAOUASd4ed0e12020-10-08 09:16:29 +020046 MRG0 = 0
47 MRG1 = 0
48 MRG2 = Local0
49 MSTI = 0x81
Damien Zammitd2b5b732017-10-04 20:07:47 +110050 WACK()
51}
52
53//Sleep
54Method (IMSP, 0)
55{
Elyes HAOUASd4ed0e12020-10-08 09:16:29 +020056 MRG0 = 0
57 MRG1 = 0xb5
58 MRG2 = 0
59 MSTI = 0x96
Damien Zammitd2b5b732017-10-04 20:07:47 +110060 WACK()
61
Elyes HAOUASd4ed0e12020-10-08 09:16:29 +020062 MRG0 = 0
63 MRG1 = 1
64 MRG2 = 0
65 MSTI = 0x98
Damien Zammitd2b5b732017-10-04 20:07:47 +110066 WACK()
67
Elyes HAOUASd4ed0e12020-10-08 09:16:29 +020068 MRG0 = 0
69 MRG1 = 0xb4
70 MRG2 = 0
71 MSTI = 0x96
Damien Zammitd2b5b732017-10-04 20:07:47 +110072 WACK()
73}
74
75//Wake
76Method (IMWK, 0)
77{
Elyes HAOUASd4ed0e12020-10-08 09:16:29 +020078 MRG0 = 0
79 MRG1 = 0xb5
80 MRG2 = 0
81 MSTI = 0x96
Damien Zammitd2b5b732017-10-04 20:07:47 +110082 WACK()
83
Elyes HAOUASd4ed0e12020-10-08 09:16:29 +020084 MRG0 = 0
85 MRG1 = 0
86 MRG2 = 0
87 MSTI = 0x80
Damien Zammitd2b5b732017-10-04 20:07:47 +110088 WACK()
89
Elyes HAOUASd4ed0e12020-10-08 09:16:29 +020090 Local0 = MRG2 | 0x01
Damien Zammitd2b5b732017-10-04 20:07:47 +110091
Elyes HAOUASd4ed0e12020-10-08 09:16:29 +020092 MRG0 = 0
93 MRG1 = 0
94 MRG2 = Local0
95 MSTI = 0x81
Damien Zammitd2b5b732017-10-04 20:07:47 +110096 WACK()
97}