1/**************************************************************************;
2;*                                                                        *;
3;*                                                                        *;
4;*    Intel Corporation - ACPI Reference Code for the Baytrail            *;
5;*    Family of Customer Reference Boards.                                *;
6;*                                                                        *;
7;*                                                                        *;
8;*    Copyright (c)  1999  - 2014, Intel Corporation. All rights reserved   *;
9;
10; This program and the accompanying materials are licensed and made available under
11; the terms and conditions of the BSD License that accompanies this distribution.
12; The full text of the license may be found at
13; http://opensource.org/licenses/bsd-license.php.
14;
15; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
16; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17;
18;*                                                                        *;
19;*                                                                        *;
20;**************************************************************************/
21
22
23// THERMAL.ASL represents a Thermal Zone to be used for testing on the
24// Customer Reference Boards.
25
26External(\_SB.DPTF.CTOK, MethodObj)
27
28Scope(\_TZ)
29{
30
31  // Thermal Zone 1 = DTS Thermal Zone.
32
33  ThermalZone(TZ01)
34  {
35    // Return the temperature at which the OS must perform a Critcal
36    // Shutdown.
37
38    Method(_CRT,0,Serialized)
39    {
40      Return(Add(2732,Multiply(CRTT,10)))
41    }
42
43    // Notifies ASL Code the current cooling mode.
44    //      0 - Active cooling
45    //      1 - Passive cooling
46
47    Method(_SCP,1,Serialized)
48    {
49      Store(Arg0,CTYP)
50    }
51
52    // _TMP (Temperature)
53    //
54    // Return the highest of the CPU temperatures to the OS.
55    //
56    // Arguments: (0)
57    //   None
58    // Return Value:
59    //   An Integer containing the current temperature of the thermal zone (in tenths of degrees Kelvin)
60    //
61    Method(_TMP,0,Serialized)
62    {
63      If(DTSE)
64      {
65        If(LGreater(DTS2, DTS1))
66        {
67          Store(DTS2,Local0)
68        } else
69        {
70          Store(DTS1,Local0)
71        }
72        Return(Add(2732,Multiply(Local0,10)))
73        //
74        // Else return a static value if both EC and DTS are unavailable.
75        //
76      } Else
77      {
78        Return(3000) // (3000-2732)/10 = 26.8 degree C
79      }
80    }
81
82    // Return the Processor(s) used for Passive Cooling.
83
84    Method(_PSL,0,Serialized)
85    {
86      If(LEqual(MPEN, 4))
87      {
88        //  CMP - Throttling controls all four logical CPUs.
89        Return(Package() {\_PR.CPU0,\_PR.CPU1,\_PR.CPU2,\_PR.CPU3})
90      }
91
92      If(MPEN)
93      {
94        //  CMP - Throttling controls both CPUs.
95
96        Return(Package() {\_PR.CPU0,\_PR.CPU1})
97      }
98
99      Return(Package() {\_PR.CPU0})
100    }
101
102    // Returns the temperature at which the OS initiates CPU throttling.
103
104    Method(_PSV,0,Serialized)
105    {
106      Return(Add(2732,Multiply(PSVT,10)))
107    }
108
109    // Returns TC1 value used in the passive cooling formula.
110
111    Method(_TC1,0,Serialized)
112    {
113      Return(TC1V)
114    }
115
116    // Returns TC2 value used in the passive cooling formula.
117
118    Method(_TC2,0,Serialized)
119    {
120      Return(TC2V)
121    }
122
123    // Returns the sampling period used in the passive cooling formula.
124
125    Method(_TSP,0,Serialized)
126    {
127      Return(TSPV)
128    }
129
130    // Returns Hot Temperature
131
132    Method(_HOT,0,Serialized)
133    {
134      Subtract(CRTT, 5, Local0)
135      Return(Add(2732,Multiply(Local0,10)))
136    }
137  }
138}
139