Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
 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
57int ti_thermal_expose_sensor(struct ti_bandgap *bgp, int id, char *domain);
58int ti_thermal_remove_sensor(struct ti_bandgap *bgp, int id);
59int ti_thermal_report_sensor_temperature(struct ti_bandgap *bgp, int id);
60int ti_thermal_register_cpu_cooling(struct ti_bandgap *bgp, int id);
61int ti_thermal_unregister_cpu_cooling(struct ti_bandgap *bgp, int id);
62#else
63static inline
64int ti_thermal_expose_sensor(struct ti_bandgap *bgp, int id, char *domain)
65{
66	return 0;
67}
68
69static inline
70int ti_thermal_remove_sensor(struct ti_bandgap *bgp, int id)
71{
72	return 0;
73}
74
75static inline
76int ti_thermal_report_sensor_temperature(struct ti_bandgap *bgp, int id)
77{
78	return 0;
79}
80
81static inline
82int ti_thermal_register_cpu_cooling(struct ti_bandgap *bgp, int id)
83{
84	return 0;
85}
86
87static inline
88int ti_thermal_unregister_cpu_cooling(struct ti_bandgap *bgp, int id)
89{
90	return 0;
91}
92#endif
93#endif