1 /*
2 * Copyright (c) 2017-2018 The Linux Foundation. All rights reserved.
3 * Not a contribution
4 * Copyright (C) 2016 The Android Open Source Project
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18
19
20 #define LOG_TAG "ThermalHAL-8998"
21 #include <log/log.h>
22
23 #include <hardware/hardware.h>
24 #include <hardware/thermal.h>
25 #include "thermal_common.h"
26
27 static char *cpu_sensors_8998[] =
28 {
29 "tsens_tz_sensor1",
30 "tsens_tz_sensor2",
31 "tsens_tz_sensor3",
32 "tsens_tz_sensor4",
33 "tsens_tz_sensor7",
34 "tsens_tz_sensor8",
35 "tsens_tz_sensor9",
36 "tsens_tz_sensor10",
37 };
38
39 static char *misc_sensors_8998[] =
40 {
41 "tsens_tz_sensor12",
42 "battery",
43 "quiet_therm"
44 };
45
46 static struct target_therm_cfg sensor_cfg_8998[] = {
47 {
48 .type = DEVICE_TEMPERATURE_CPU,
49 .sensor_list = cpu_sensors_8998,
50 .sens_cnt = ARRAY_SIZE(cpu_sensors_8998),
51 .mult = 0.1,
52 .throt_thresh = 60,
53 .shutdwn_thresh = 115,
54 },
55 {
56 .type = DEVICE_TEMPERATURE_GPU,
57 .sensor_list = &misc_sensors_8998[0],
58 .sens_cnt = 1,
59 .mult = 0.1,
60 .label = "GPU",
61 },
62 {
63 .type = DEVICE_TEMPERATURE_BATTERY,
64 .sensor_list = &misc_sensors_8998[1],
65 .sens_cnt = 1,
66 .mult = 0.001,
67 .shutdwn_thresh = 60,
68 .label = "battery",
69 },
70 {
71 .type = DEVICE_TEMPERATURE_SKIN,
72 .sensor_list = &misc_sensors_8998[2],
73 .sens_cnt = 1,
74 .mult = 1.0,
75 .throt_thresh = 44,
76 .shutdwn_thresh = 70,
77 .vr_thresh = 58,
78 .label = "skin",
79 }
80 };
81
get_temperatures(thermal_module_t * module,temperature_t * list,size_t size)82 ssize_t get_temperatures(thermal_module_t *module, temperature_t *list, size_t size) {
83 ALOGD("Entering %s",__func__);
84 static int thermal_sens_size;
85
86 if (!thermal_sens_size) {
87 thermal_sens_size = thermal_zone_init(sensor_cfg_8998,
88 ARRAY_SIZE(sensor_cfg_8998));
89 if (thermal_sens_size <= 0) {
90 ALOGE("thermal sensor initialization is failed\n");
91 thermal_sens_size = 0;
92 return 0;
93 }
94 }
95
96 if (list == NULL)
97 return thermal_sens_size;
98
99 return get_temperature_for_all(list, size);
100 }
101