blob: 8e55868654cef113ed9eda08233b93d412a1b17a [file] [log] [blame]
Manaf Meethalavalappu Pallikunhi58403482019-04-30 16:23:12 +05301/* Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
Manaf Meethalavalappu Pallikunhi24ab2c82018-08-24 12:34:45 +05302 *
3 * Redistribution and use in source and binary forms, with or without
4 * modification, are permitted provided that the following conditions are
5 * met:
6 * * Redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer.
8 * * Redistributions in binary form must reproduce the above
9 * copyright notice, this list of conditions and the following
10 * disclaimer in the documentation and/or other materials provided
11 * with the distribution.
12 * * Neither the name of The Linux Foundation nor the names of its
13 * contributors may be used to endorse or promote products derived
14 * from this software without specific prior written permission.
15
16 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
17 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
20 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
23 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
25 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
26 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29#include <hardware/thermal.h>
30#define ARRAY_SIZE(x) (int)(sizeof(x)/sizeof(x[0]))
31
Manaf Meethalavalappu Pallikunhi3cd560f2018-09-03 18:04:03 +053032enum therm_msm_id {
33 THERM_MSM_UNKNOWN = 0,
34 THERM_MSM_8953,
35 THERM_SDM_660,
36 THERM_SDM_630,
37 THERM_SDM_710,
38 THERM_QCS_605,
39 THERM_SDM_632,
40 THERM_SDM_439,
Ram Chandrasekarb28736a2018-09-14 16:15:42 -060041 THERM_MSMNILE,
Manaf Meethalavalappu Pallikunhi7aa64e92018-10-04 00:10:30 +053042 THERM_TALOS,
Manaf Meethalavalappu Pallikunhi05e42502018-12-06 15:51:47 +053043 THERM_SDMMAGPIE,
Manaf Meethalavalappu Pallikunhia625d462018-12-06 16:13:50 +053044 THERM_MSM_8917,
Manaf Meethalavalappu Pallikunhi343f19f2018-12-19 16:22:24 +053045 THERM_TRINKET,
Ram Chandrasekara4ffb832019-01-18 12:30:03 -070046 THERM_KONA,
Manaf Meethalavalappu Pallikunhi58403482019-04-30 16:23:12 +053047 THERM_LITO,
Manaf Meethalavalappu Pallikunhif9dc8af2019-07-24 23:36:13 +053048 THERM_ATOLL,
Manaf Meethalavalappu Pallikunhi3cd560f2018-09-03 18:04:03 +053049};
50
Manaf Meethalavalappu Pallikunhi24ab2c82018-08-24 12:34:45 +053051struct target_therm_cfg {
52 enum temperature_type type;
53 char **sensor_list;
54 uint8_t sens_cnt;
55 char *label;
56 float mult;
57 int throt_thresh;
58 int shutdwn_thresh;
59 int vr_thresh;
60};
61
62struct vendor_temperature {
63 int tzn;
64 float mult;
65 temperature_t t;
66};
67
Manaf Meethalavalappu Pallikunhi3cd560f2018-09-03 18:04:03 +053068
69int read_line_from_file(const char *path, char *buf, size_t count);
Manaf Meethalavalappu Pallikunhi24ab2c82018-08-24 12:34:45 +053070size_t get_num_cpus();
71const char *get_cpu_label(unsigned int cpu_num);
72int thermal_zone_init(struct target_therm_cfg *v_sen_t, int cfg_cnt);
73ssize_t get_temperature_for_all(temperature_t *list, size_t size);