1 /* SPDX-License-Identifier: GPL-2.0-only */
5 External (\PPKG, MethodObj)
7 #define HAVE_THERMALZONE
15 // Thermal zone polling frequency: 10 seconds
18 // Thermal sampling period for passive cooling: 2 seconds
21 // Convert from Degrees C to 1/10 Kelvin for ACPI
32 // Threshold for OS to shutdown
33 Method (_CRT, 0, Serialized)
38 // Threshold for passive cooling
39 Method (_PSV, 0, Serialized)
44 // Processors used for passive cooling
45 Method (_PSL, 0, Serialized)
50 Method (_TMP, 0, Serialized)
52 // Get CPU Temperature from PECI via SuperIO TMPIN3
53 Local0 = \_SB.PCI0.LPCB.SIO.ENVC.TIN3
55 // Check for invalid readings
56 If ((Local0 == 255) || (Local0 == 0)) {
60 // PECI raw value is an offset from Tj_max
63 // Handle values greater than Tj_max
64 If (Local1 >= \TMAX) {
68 // Subtract from Tj_max to get temperature
69 Local0 = \TMAX - Local1
70 Return (CTOK (Local0))
101 Return (CTOK (\F3ON))
107 Return (CTOK (\F4OF))
109 Return (CTOK (\F4ON))
113 Name (_AL0, Package () { FAN0 })
114 Name (_AL1, Package () { FAN1 })
115 Name (_AL2, Package () { FAN2 })
116 Name (_AL3, Package () { FAN3 })
117 Name (_AL4, Package () { FAN4 })
119 PowerResource (FNP0, 0, 0)
130 \_SB.PCI0.LPCB.SIO.ENVC.F3PS = \F0PW
131 Notify (\_TZ.THRM, 0x81)
135 \_SB.PCI0.LPCB.SIO.ENVC.F3PS = \F1PW
136 Notify (\_TZ.THRM, 0x81)
140 PowerResource (FNP1, 0, 0)
151 \_SB.PCI0.LPCB.SIO.ENVC.F3PS = \F1PW
152 Notify (\_TZ.THRM, 0x81)
156 \_SB.PCI0.LPCB.SIO.ENVC.F3PS = \F2PW
157 Notify (\_TZ.THRM, 0x81)
161 PowerResource (FNP2, 0, 0)
172 \_SB.PCI0.LPCB.SIO.ENVC.F3PS = \F2PW
173 Notify (\_TZ.THRM, 0x81)
177 \_SB.PCI0.LPCB.SIO.ENVC.F3PS = \F3PW
178 Notify (\_TZ.THRM, 0x81)
182 PowerResource (FNP3, 0, 0)
193 \_SB.PCI0.LPCB.SIO.ENVC.F3PS = \F3PW
194 Notify (\_TZ.THRM, 0x81)
198 \_SB.PCI0.LPCB.SIO.ENVC.F3PS = \F4PW
199 Notify (\_TZ.THRM, 0x81)
203 PowerResource (FNP4, 0, 0)
214 \_SB.PCI0.LPCB.SIO.ENVC.F3PS = \F4PW
215 Notify (\_TZ.THRM, 0x81)
219 \_SB.PCI0.LPCB.SIO.ENVC.F3PS = \F4PW
220 Notify (\_TZ.THRM, 0x81)
226 Name (_HID, EISAID ("PNP0C0B"))
228 Name (_PR0, Package () { FNP0 })
233 Name (_HID, EISAID ("PNP0C0B"))
235 Name (_PR0, Package () { FNP1 })
240 Name (_HID, EISAID ("PNP0C0B"))
242 Name (_PR0, Package () { FNP2 })
247 Name (_HID, EISAID ("PNP0C0B"))
249 Name (_PR0, Package () { FNP3 })
254 Name (_HID, EISAID ("PNP0C0B"))
256 Name (_PR0, Package () { FNP4 })