blob: e45c2b4bdd1568f508a5432d3cdfe3f86e3f571a [file] [log] [blame]
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -07001/*
2 * Copyright (c) 2020, The Linux Foundation. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above
10 * copyright notice, this list of conditions and the following
11 * disclaimer in the documentation and/or other materials provided
12 * with the distribution.
13 * * Neither the name of The Linux Foundation nor the names of its
14 * contributors may be used to endorse or promote products derived
15 * from this software without specific prior written permission.
16 *
17 *
18 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
19 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
21 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
22 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
25 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
27 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
28 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */
30
Bavyasritha Alahari0a344f42023-04-26 17:16:51 -070031 /* Changes from Qualcomm Innovation Center are provided under the following license:
32
Priyansh Jaind670d792022-07-20 15:51:13 +053033Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
Bavyasritha Alahari0a344f42023-04-26 17:16:51 -070034SPDX-License-Identifier: BSD-3-Clause-Clear */
35
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -070036#ifndef THERMAL_THERMAL_DATA_H__
37#define THERMAL_THERMAL_DATA_H__
38
39#include <vector>
40#include <string>
41#include <mutex>
42#include <cmath>
Bavyasritha Alahari0a344f42023-04-26 17:16:51 -070043#include <aidl/android/hardware/thermal/BnThermal.h>
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -070044
45#define UNKNOWN_TEMPERATURE (NAN)
46
Bavyasritha Alahari0a344f42023-04-26 17:16:51 -070047namespace aidl{
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -070048namespace android {
49namespace hardware {
50namespace thermal {
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -070051
Bavyasritha Alahari0a344f42023-04-26 17:16:51 -070052using CoolingDevice = ::aidl::android::hardware::thermal::CoolingDevice;
53using Temperature = ::aidl::android::hardware::thermal::Temperature;
54using TemperatureType = ::aidl::android::hardware::thermal::TemperatureType;
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -070055
Bavyasritha Alahari0a344f42023-04-26 17:16:51 -070056using cdevType = ::aidl::android::hardware::thermal::CoolingType;
57using CoolingDevice = ::aidl::android::hardware::thermal::CoolingDevice;
58using Temperature = ::aidl::android::hardware::thermal::Temperature;
59using TemperatureType = ::aidl::android::hardware::thermal::TemperatureType;
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -070060using TemperatureThreshold =
Bavyasritha Alahari0a344f42023-04-26 17:16:51 -070061 ::aidl::android::hardware::thermal::TemperatureThreshold;
62using ::aidl::android::hardware::thermal::ThrottlingSeverity;
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -070063
64 struct target_therm_cfg {
65 TemperatureType type;
66 std::vector<std::string> sensor_list;
67 std::string label;
68 int throt_thresh;
69 int shutdwn_thresh;
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -070070 bool positive_thresh_ramp;
Priyansh Jaind670d792022-07-20 15:51:13 +053071 ThrottlingSeverity throt_severity = ThrottlingSeverity::SEVERE;
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -070072 };
73
74 struct therm_sensor {
75 int tzn;
76 int mulFactor;
77 bool positiveThresh;
78 std::string sensor_name;
79 ThrottlingSeverity lastThrottleStatus;
80 Temperature t;
81 TemperatureThreshold thresh;
Priyansh Jaind670d792022-07-20 15:51:13 +053082 ThrottlingSeverity throt_severity;
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -070083 };
84
85 struct therm_cdev {
86 int cdevn;
87 CoolingDevice c;
88 };
89
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -070090} // namespace thermal
91} // namespace hardware
92} // namespace android
Bavyasritha Alahari0a344f42023-04-26 17:16:51 -070093} // namespace aidl
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -070094
95#endif // THERMAL_THERMAL_DATA_H__