Merge tag 'zonefs-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal...
[linux-2.6-microblaze.git] / drivers / thermal / ti-soc-thermal / ti-thermal.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * OMAP thermal definitions
4  *
5  * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
6  * Contact:
7  *   Eduardo Valentin <eduardo.valentin@ti.com>
8  */
9 #ifndef __TI_THERMAL_H
10 #define __TI_THERMAL_H
11
12 #include "ti-bandgap.h"
13
14 /* PCB sensor calculation constants */
15 #define OMAP_GRADIENT_SLOPE_W_PCB_4430                          0
16 #define OMAP_GRADIENT_CONST_W_PCB_4430                          20000
17 #define OMAP_GRADIENT_SLOPE_W_PCB_4460                          1142
18 #define OMAP_GRADIENT_CONST_W_PCB_4460                          -393
19 #define OMAP_GRADIENT_SLOPE_W_PCB_4470                          1063
20 #define OMAP_GRADIENT_CONST_W_PCB_4470                          -477
21
22 #define OMAP_GRADIENT_SLOPE_W_PCB_5430_CPU                      100
23 #define OMAP_GRADIENT_CONST_W_PCB_5430_CPU                      484
24 #define OMAP_GRADIENT_SLOPE_W_PCB_5430_GPU                      464
25 #define OMAP_GRADIENT_CONST_W_PCB_5430_GPU                      -5102
26
27 #define DRA752_GRADIENT_SLOPE_W_PCB                             0
28 #define DRA752_GRADIENT_CONST_W_PCB                             2000
29
30 /* trip points of interest in milicelsius (at hotspot level) */
31 #define OMAP_TRIP_COLD                                          100000
32 #define OMAP_TRIP_HOT                                           110000
33 #define OMAP_TRIP_SHUTDOWN                                      125000
34 #define OMAP_TRIP_NUMBER                                        2
35 #define OMAP_TRIP_STEP                                                  \
36         ((OMAP_TRIP_SHUTDOWN - OMAP_TRIP_HOT) / (OMAP_TRIP_NUMBER - 1))
37
38 /* Update rates */
39 #define FAST_TEMP_MONITORING_RATE                               250
40
41 /* helper macros */
42 /**
43  * ti_thermal_get_trip_value - returns trip temperature based on index
44  * @i:  trip index
45  */
46 #define ti_thermal_get_trip_value(i)                                    \
47         (OMAP_TRIP_HOT + ((i) * OMAP_TRIP_STEP))
48
49 /**
50  * ti_thermal_is_valid_trip - check for trip index
51  * @i:  trip index
52  */
53 #define ti_thermal_is_valid_trip(trip)                          \
54         ((trip) >= 0 && (trip) < OMAP_TRIP_NUMBER)
55
56 #ifdef CONFIG_TI_THERMAL
57 int ti_thermal_expose_sensor(struct ti_bandgap *bgp, int id, char *domain);
58 int ti_thermal_remove_sensor(struct ti_bandgap *bgp, int id);
59 int ti_thermal_report_sensor_temperature(struct ti_bandgap *bgp, int id);
60 int ti_thermal_register_cpu_cooling(struct ti_bandgap *bgp, int id);
61 int ti_thermal_unregister_cpu_cooling(struct ti_bandgap *bgp, int id);
62 #else
63 static inline
64 int ti_thermal_expose_sensor(struct ti_bandgap *bgp, int id, char *domain)
65 {
66         return 0;
67 }
68
69 static inline
70 int ti_thermal_remove_sensor(struct ti_bandgap *bgp, int id)
71 {
72         return 0;
73 }
74
75 static inline
76 int ti_thermal_report_sensor_temperature(struct ti_bandgap *bgp, int id)
77 {
78         return 0;
79 }
80
81 static inline
82 int ti_thermal_register_cpu_cooling(struct ti_bandgap *bgp, int id)
83 {
84         return 0;
85 }
86
87 static inline
88 int ti_thermal_unregister_cpu_cooling(struct ti_bandgap *bgp, int id)
89 {
90         return 0;
91 }
92 #endif
93 #endif