linux/drivers/thermal/int340x_thermal/int340x_thermal_zone.h
<<
>>
Prefs
   1/*
   2 * int340x_thermal_zone.h
   3 * Copyright (c) 2015, Intel Corporation.
   4 *
   5 * This program is free software; you can redistribute it and/or modify it
   6 * under the terms and conditions of the GNU General Public License,
   7 * version 2, as published by the Free Software Foundation.
   8 *
   9 * This program is distributed in the hope it will be useful, but WITHOUT
  10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  12 * more details.
  13 *
  14 */
  15
  16#ifndef __INT340X_THERMAL_ZONE_H__
  17#define __INT340X_THERMAL_ZONE_H__
  18
  19#include <acpi/acpi_lpat.h>
  20
  21#define INT340X_THERMAL_MAX_ACT_TRIP_COUNT      10
  22
  23struct active_trip {
  24        int temp;
  25        int id;
  26        bool valid;
  27};
  28
  29struct int34x_thermal_zone {
  30        struct acpi_device *adev;
  31        struct active_trip act_trips[INT340X_THERMAL_MAX_ACT_TRIP_COUNT];
  32        unsigned long *aux_trips;
  33        int aux_trip_nr;
  34        int psv_temp;
  35        int psv_trip_id;
  36        int crt_temp;
  37        int crt_trip_id;
  38        int hot_temp;
  39        int hot_trip_id;
  40        struct thermal_zone_device *zone;
  41        struct thermal_zone_device_ops *override_ops;
  42        void *priv_data;
  43        struct acpi_lpat_conversion_table *lpat_table;
  44};
  45
  46struct int34x_thermal_zone *int340x_thermal_zone_add(struct acpi_device *,
  47                                struct thermal_zone_device_ops *override_ops);
  48void int340x_thermal_zone_remove(struct int34x_thermal_zone *);
  49int int340x_thermal_read_trips(struct int34x_thermal_zone *int34x_zone);
  50
  51static inline void int340x_thermal_zone_set_priv_data(
  52                        struct int34x_thermal_zone *tzone, void *priv_data)
  53{
  54        tzone->priv_data = priv_data;
  55}
  56
  57static inline void *int340x_thermal_zone_get_priv_data(
  58                        struct int34x_thermal_zone *tzone)
  59{
  60        return tzone->priv_data;
  61}
  62
  63static inline void int340x_thermal_zone_device_update(
  64                                        struct int34x_thermal_zone *tzone,
  65                                        enum thermal_notify_event event)
  66{
  67        thermal_zone_device_update(tzone->zone, event);
  68}
  69
  70#endif
  71