ARM: tegra12: set CPU rate to 2.2GHz for sku 0x87
[linux-3.10.git] / arch / arm / mach-tegra / therm-monitor.h
1 /*
2  * Copyright (c) 2013, NVIDIA CORPORATION.  All rights reserved.
3  *
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms and conditions of the GNU General Public License,
6  * version 2, as published by the Free Software Foundation.
7  *
8  * This program is distributed in the hope it will be useful, but WITHOUT
9  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
11  * more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
15  *
16  * arch/arm/mach-tegra/therm_monitor.h
17  *
18  */
19
20 #ifndef _MACH_TEGRA_THERM_MONITOR_H
21 #define _MACH_TEGRA_THERM_MONITOR_H
22
23
24 #define MAX_NUM_TEMPERAT 10
25 #define INVALID_ADDR 0xffffffff
26
27 #define UTMIP_XCVR_CFG0                 0x808
28 #define UTMIP_SPARE_CFG0                0x834
29 #define FUSE_SETUP_SEL                  (1 << 3)
30 #define UTMIP_XCVR_SETUP_MSK            0xF
31 #define UTMIP_XCVR_HSSLEW_MSB_MSK       (0x7F << 25)
32 #define FUSE_USB_CALIB_0                0x1F0
33 #define UTMIP_XCVR_SETUP_MAX_VAL        0xF
34 #define UTMIP_XCVR_HSSLEW_MSB_BIT_OFFS  25
35 /* Remote Temp < rtemp_boundary. */
36 #define UTMIP_XCVR_HSSLEW_MSB_LOW_TEMP_VAL \
37         (0x8 << UTMIP_XCVR_HSSLEW_MSB_BIT_OFFS)
38 /* Remote Temp >= rtemp_boundary. */
39 #define UTMIP_XCVR_HSSLEW_MSB_HIGH_TEMP_VAL \
40         (0x2 << UTMIP_XCVR_HSSLEW_MSB_BIT_OFFS)
41
42
43 struct therm_monitor_ldep_data {
44         unsigned int reg_addr;
45         int temperat[MAX_NUM_TEMPERAT];
46         unsigned int value[MAX_NUM_TEMPERAT - 1];
47         int previous_val;
48 };
49
50 struct therm_monitor_data {
51         struct therm_monitor_ldep_data *brd_ltemp_reg_data;
52         unsigned int delta_temp;
53         unsigned int delta_time;
54         unsigned int remote_offset;
55         int utmip_temp_bound;
56         unsigned char local_temp_update;
57         unsigned char utmip_reg_update;
58         unsigned char i2c_bus_num;
59         unsigned int i2c_dev_addrs;
60         unsigned char *i2c_dev_name;
61         unsigned char i2c_board_size;
62 };
63
64 void register_therm_monitor(struct therm_monitor_data *brd_therm_monitor_data);
65
66 #endif