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 #ifdef CONFIG_TI_THERMAL
42 int ti_thermal_expose_sensor(struct ti_bandgap *bgp, int id, char *domain);
43 int ti_thermal_remove_sensor(struct ti_bandgap *bgp, int id);
44 int ti_thermal_report_sensor_temperature(struct ti_bandgap *bgp, int id);
45 int ti_thermal_register_cpu_cooling(struct ti_bandgap *bgp, int id);
46 int ti_thermal_unregister_cpu_cooling(struct ti_bandgap *bgp, int id);
47 #else
48 static inline
ti_thermal_expose_sensor(struct ti_bandgap * bgp,int id,char * domain)49 int ti_thermal_expose_sensor(struct ti_bandgap *bgp, int id, char *domain)
50 {
51 	return 0;
52 }
53 
54 static inline
ti_thermal_remove_sensor(struct ti_bandgap * bgp,int id)55 int ti_thermal_remove_sensor(struct ti_bandgap *bgp, int id)
56 {
57 	return 0;
58 }
59 
60 static inline
ti_thermal_report_sensor_temperature(struct ti_bandgap * bgp,int id)61 int ti_thermal_report_sensor_temperature(struct ti_bandgap *bgp, int id)
62 {
63 	return 0;
64 }
65 
66 static inline
ti_thermal_register_cpu_cooling(struct ti_bandgap * bgp,int id)67 int ti_thermal_register_cpu_cooling(struct ti_bandgap *bgp, int id)
68 {
69 	return 0;
70 }
71 
72 static inline
ti_thermal_unregister_cpu_cooling(struct ti_bandgap * bgp,int id)73 int ti_thermal_unregister_cpu_cooling(struct ti_bandgap *bgp, int id)
74 {
75 	return 0;
76 }
77 #endif
78 #endif
79