1 /* 2 * exynos4_tmu.h - Samsung EXYNOS4 TMU (Thermal Management Unit) 3 * 4 * Copyright (C) 2011 Samsung Electronics 5 * Donggeun Kim <dg77.kim@samsung.com> 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; either version 2 of the License, or 10 * (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 */ 21 22 #ifndef _LINUX_EXYNOS4_TMU_H 23 #define _LINUX_EXYNOS4_TMU_H 24 25 enum calibration_type { 26 TYPE_ONE_POINT_TRIMMING, 27 TYPE_TWO_POINT_TRIMMING, 28 TYPE_NONE, 29 }; 30 31 /** 32 * struct exynos4_tmu_platform_data 33 * @threshold: basic temperature for generating interrupt 34 * 25 <= threshold <= 125 [unit: degree Celsius] 35 * @trigger_levels: array for each interrupt levels 36 * [unit: degree Celsius] 37 * 0: temperature for trigger_level0 interrupt 38 * condition for trigger_level0 interrupt: 39 * current temperature > threshold + trigger_levels[0] 40 * 1: temperature for trigger_level1 interrupt 41 * condition for trigger_level1 interrupt: 42 * current temperature > threshold + trigger_levels[1] 43 * 2: temperature for trigger_level2 interrupt 44 * condition for trigger_level2 interrupt: 45 * current temperature > threshold + trigger_levels[2] 46 * 3: temperature for trigger_level3 interrupt 47 * condition for trigger_level3 interrupt: 48 * current temperature > threshold + trigger_levels[3] 49 * @trigger_level0_en: 50 * 1 = enable trigger_level0 interrupt, 51 * 0 = disable trigger_level0 interrupt 52 * @trigger_level1_en: 53 * 1 = enable trigger_level1 interrupt, 54 * 0 = disable trigger_level1 interrupt 55 * @trigger_level2_en: 56 * 1 = enable trigger_level2 interrupt, 57 * 0 = disable trigger_level2 interrupt 58 * @trigger_level3_en: 59 * 1 = enable trigger_level3 interrupt, 60 * 0 = disable trigger_level3 interrupt 61 * @gain: gain of amplifier in the positive-TC generator block 62 * 0 <= gain <= 15 63 * @reference_voltage: reference voltage of amplifier 64 * in the positive-TC generator block 65 * 0 <= reference_voltage <= 31 66 * @cal_type: calibration type for temperature 67 * 68 * This structure is required for configuration of exynos4_tmu driver. 69 */ 70 struct exynos4_tmu_platform_data { 71 u8 threshold; 72 u8 trigger_levels[4]; 73 bool trigger_level0_en; 74 bool trigger_level1_en; 75 bool trigger_level2_en; 76 bool trigger_level3_en; 77 78 u8 gain; 79 u8 reference_voltage; 80 81 enum calibration_type cal_type; 82 }; 83 #endif /* _LINUX_EXYNOS4_TMU_H */ 84