int340x_thermal_zone.h (1473B)
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * int340x_thermal_zone.h 4 * Copyright (c) 2015, Intel Corporation. 5 */ 6 7#ifndef __INT340X_THERMAL_ZONE_H__ 8#define __INT340X_THERMAL_ZONE_H__ 9 10#include <acpi/acpi_lpat.h> 11 12#define INT340X_THERMAL_MAX_ACT_TRIP_COUNT 10 13 14struct active_trip { 15 int temp; 16 int id; 17 bool valid; 18}; 19 20struct int34x_thermal_zone { 21 struct acpi_device *adev; 22 struct active_trip act_trips[INT340X_THERMAL_MAX_ACT_TRIP_COUNT]; 23 unsigned long *aux_trips; 24 int aux_trip_nr; 25 int psv_temp; 26 int psv_trip_id; 27 int crt_temp; 28 int crt_trip_id; 29 int hot_temp; 30 int hot_trip_id; 31 struct thermal_zone_device *zone; 32 struct thermal_zone_device_ops *override_ops; 33 void *priv_data; 34 struct acpi_lpat_conversion_table *lpat_table; 35}; 36 37struct int34x_thermal_zone *int340x_thermal_zone_add(struct acpi_device *, 38 struct thermal_zone_device_ops *override_ops); 39void int340x_thermal_zone_remove(struct int34x_thermal_zone *); 40int int340x_thermal_read_trips(struct int34x_thermal_zone *int34x_zone); 41 42static inline void int340x_thermal_zone_set_priv_data( 43 struct int34x_thermal_zone *tzone, void *priv_data) 44{ 45 tzone->priv_data = priv_data; 46} 47 48static inline void *int340x_thermal_zone_get_priv_data( 49 struct int34x_thermal_zone *tzone) 50{ 51 return tzone->priv_data; 52} 53 54static inline void int340x_thermal_zone_device_update( 55 struct int34x_thermal_zone *tzone, 56 enum thermal_notify_event event) 57{ 58 thermal_zone_device_update(tzone->zone, event); 59} 60 61#endif