Merge tag '5.15-rc-ksmbd-part2' of git://git.samba.org/ksmbd
[linux-2.6-microblaze.git] / drivers / thermal / ti-soc-thermal / omap4xxx-bandgap.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * OMAP4xxx bandgap registers, bitfields and temperature definitions
4  *
5  * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
6  * Contact:
7  *   Eduardo Valentin <eduardo.valentin@ti.com>
8  */
9 #ifndef __OMAP4XXX_BANDGAP_H
10 #define __OMAP4XXX_BANDGAP_H
11
12 /**
13  * *** OMAP4430 ***
14  *
15  * Below, in sequence, are the Register definitions,
16  * the bitfields and the temperature definitions for OMAP4430.
17  */
18
19 /**
20  * OMAP4430 register definitions
21  *
22  * Registers are defined as offsets. The offsets are
23  * relative to FUSE_OPP_BGAP on 4430.
24  */
25
26 /* OMAP4430.FUSE_OPP_BGAP */
27 #define OMAP4430_FUSE_OPP_BGAP                          0x0
28
29 /* OMAP4430.TEMP_SENSOR  */
30 #define OMAP4430_TEMP_SENSOR_CTRL_OFFSET                0xCC
31
32 /**
33  * Register and bit definitions for OMAP4430
34  *
35  * All the macros bellow define the required bits for
36  * controlling temperature on OMAP4430. Bit defines are
37  * grouped by register.
38  */
39
40 /* OMAP4430.TEMP_SENSOR bits */
41 #define OMAP4430_BGAP_TEMPSOFF_MASK                     BIT(12)
42 #define OMAP4430_BGAP_TSHUT_MASK                        BIT(11)
43 #define OMAP4430_CONTINUOUS_MODE_MASK                   BIT(10)
44 #define OMAP4430_BGAP_TEMP_SENSOR_SOC_MASK              BIT(9)
45 #define OMAP4430_BGAP_TEMP_SENSOR_EOCZ_MASK             BIT(8)
46 #define OMAP4430_BGAP_TEMP_SENSOR_DTEMP_MASK            (0xff << 0)
47
48 /**
49  * Temperature limits and thresholds for OMAP4430
50  *
51  * All the macros bellow are definitions for handling the
52  * ADC conversions and representation of temperature limits
53  * and thresholds for OMAP4430.
54  */
55
56 /*
57  * ADC conversion table limits. Ignore values outside the TRM listed
58  * range to avoid bogus thermal shutdowns. See omap4430 TRM chapter
59  * "18.4.10.2.3 ADC Codes Versus Temperature".
60  */
61 #define OMAP4430_ADC_START_VALUE                        13
62 #define OMAP4430_ADC_END_VALUE                          107
63 /* bandgap clock limits (no control on 4430) */
64 #define OMAP4430_MAX_FREQ                               32768
65 #define OMAP4430_MIN_FREQ                               32768
66
67 /**
68  * *** OMAP4460 *** Applicable for OMAP4470
69  *
70  * Below, in sequence, are the Register definitions,
71  * the bitfields and the temperature definitions for OMAP4460.
72  */
73
74 /**
75  * OMAP4460 register definitions
76  *
77  * Registers are defined as offsets. The offsets are
78  * relative to FUSE_OPP_BGAP on 4460.
79  */
80
81 /* OMAP4460.FUSE_OPP_BGAP */
82 #define OMAP4460_FUSE_OPP_BGAP                          0x0
83
84 /* OMAP4460.TEMP_SENSOR */
85 #define OMAP4460_TEMP_SENSOR_CTRL_OFFSET                0xCC
86
87 /* OMAP4460.BANDGAP_CTRL */
88 #define OMAP4460_BGAP_CTRL_OFFSET                       0x118
89
90 /* OMAP4460.BANDGAP_COUNTER */
91 #define OMAP4460_BGAP_COUNTER_OFFSET                    0x11C
92
93 /* OMAP4460.BANDGAP_THRESHOLD */
94 #define OMAP4460_BGAP_THRESHOLD_OFFSET                  0x120
95
96 /* OMAP4460.TSHUT_THRESHOLD */
97 #define OMAP4460_BGAP_TSHUT_OFFSET                      0x124
98
99 /* OMAP4460.BANDGAP_STATUS */
100 #define OMAP4460_BGAP_STATUS_OFFSET                     0x128
101
102 /**
103  * Register bitfields for OMAP4460
104  *
105  * All the macros bellow define the required bits for
106  * controlling temperature on OMAP4460. Bit defines are
107  * grouped by register.
108  */
109 /* OMAP4460.TEMP_SENSOR bits */
110 #define OMAP4460_BGAP_TEMPSOFF_MASK                     BIT(13)
111 #define OMAP4460_BGAP_TEMP_SENSOR_SOC_MASK              BIT(11)
112 #define OMAP4460_BGAP_TEMP_SENSOR_EOCZ_MASK             BIT(10)
113 #define OMAP4460_BGAP_TEMP_SENSOR_DTEMP_MASK            (0x3ff << 0)
114
115 /* OMAP4460.BANDGAP_CTRL bits */
116 #define OMAP4460_CONTINUOUS_MODE_MASK                   BIT(31)
117 #define OMAP4460_MASK_HOT_MASK                          BIT(1)
118 #define OMAP4460_MASK_COLD_MASK                         BIT(0)
119
120 /* OMAP4460.BANDGAP_COUNTER bits */
121 #define OMAP4460_COUNTER_MASK                           (0xffffff << 0)
122
123 /* OMAP4460.BANDGAP_THRESHOLD bits */
124 #define OMAP4460_T_HOT_MASK                             (0x3ff << 16)
125 #define OMAP4460_T_COLD_MASK                            (0x3ff << 0)
126
127 /* OMAP4460.TSHUT_THRESHOLD bits */
128 #define OMAP4460_TSHUT_HOT_MASK                         (0x3ff << 16)
129 #define OMAP4460_TSHUT_COLD_MASK                        (0x3ff << 0)
130
131 /* OMAP4460.BANDGAP_STATUS bits */
132 #define OMAP4460_HOT_FLAG_MASK                          BIT(1)
133 #define OMAP4460_COLD_FLAG_MASK                         BIT(0)
134
135 /**
136  * Temperature limits and thresholds for OMAP4460
137  *
138  * All the macros bellow are definitions for handling the
139  * ADC conversions and representation of temperature limits
140  * and thresholds for OMAP4460.
141  */
142
143 /* ADC conversion table limits */
144 #define OMAP4460_ADC_START_VALUE                        530
145 #define OMAP4460_ADC_END_VALUE                          932
146 /* bandgap clock limits */
147 #define OMAP4460_MAX_FREQ                               1500000
148 #define OMAP4460_MIN_FREQ                               1000000
149 /* interrupts thresholds */
150 #define OMAP4460_TSHUT_HOT                              900     /* 122 deg C */
151 #define OMAP4460_TSHUT_COLD                             895     /* 100 deg C */
152 #define OMAP4460_T_HOT                                  800     /* 73 deg C */
153 #define OMAP4460_T_COLD                                 795     /* 71 deg C */
154
155 #endif /* __OMAP4XXX_BANDGAP_H */