OpenBIC
OpenSource Bridge-IC
plat_pldm_sensor.h
Go to the documentation of this file.
1/*
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef PLAT_PLDM_SENSOR_H
18#define PLAT_PLDM_SENSOR_H
19
20#include "pdr.h"
21#include "sensor.h"
22
23#define QUICK_POLL_INTERVAL 10
24
25#define ADDR_UNKNOWN (0xFF >> 1)
26
27// sensor addr
28#define TOP_INLET_ADDR (0x92 >> 1)
29#define BOT_INLET_ADDR (0x94 >> 1)
30#define BOT_OUTLET_ADDR (0X96 >> 1)
31
32#define ASIC_MEDHA0_SENSOR0_ADDR (0x98 >> 1)
33#define ASIC_MEDHA0_SENSOR1_ADDR (0x98 >> 1)
34#define ASIC_OWL_W_ADDR (0x9A >> 1)
35#define ASIC_OWL_E_ADDR (0x9A >> 1)
36#define ASIC_HAMSA_CRM_ADDR (0x98 >> 1)
37#define ASIC_HAMSA_LS_ADDR (0x98 >> 1)
38#define ASIC_MEDHA1_SENSOR0_ADDR (0x9A >> 1)
39#define ASIC_MEDHA1_SENSOR1_ADDR (0x9A >> 1)
40
41#define ASIC_P0V85_MEDHA0_VDD_ADDR (0x50 >> 1)
42#define ASIC_P0V85_MEDHA1_VDD_ADDR (0x4C >> 1)
43#define ASIC_P0V9_OWL_E_TRVDD_ADDR (0xEE >> 1)
44#define ASIC_P0V75_OWL_E_TRVDD_ADDR (0xEE >> 1)
45#define ASIC_P0V75_MAX_M_VDD_ADDR (0xEA >> 1)
46#define ASIC_P0V75_VDDPHY_HBM1357_ADDR (0xEA >> 1)
47#define ASIC_P0V75_OWL_E_VDD_ADDR (0xE2 >> 1)
48#define ASIC_P0V4_VDDQL_HBM1357_ADDR (0xE2 >> 1)
49#define ASIC_P1V1_VDDQC_HBM1357_ADDR (0xEC >> 1)
50#define ASIC_P1V8_VPP_HBM1357_ADDR (0xEC >> 1)
51
52#define ASIC_P0V75_MAX_N_VDD_ADDR (0xF6 >> 1)
53#define ASIC_P0V8_HAMSA_AVDD_PCIE_ADDR (0xF6 >> 1)
54#define ASIC_P1V2_HAMSA_VDDHRXTX_PCIE_ADDR (0xF2 >> 1)
55#define ASIC_P0V85_HAMSA_VDD_ADDR (0xF2 >> 1)
56#define ASIC_P1V1_VDDQC_HBM0246_ADDR (0xE0 >> 1)
57#define ASIC_P1V8_VPP_HBM0246_ADDR (0xE0 >> 1)
58#define ASIC_P0V4_VDDQL_HBM0246_ADDR (0xE4 >> 1)
59#define ASIC_P0V75_VDDPHY_HBM0246_ADDR (0xE4 >> 1)
60#define ASIC_P0V75_OWL_W_VDD_ADDR (0xE6 >> 1)
61#define ASIC_P0V75_MAX_S_VDD_ADDR (0xE6 >> 1)
62#define ASIC_P0V9_OWL_W_TRVDD_ADDR (0xF8 >> 1)
63#define ASIC_P0V75_OWL_W_TRVDD_ADDR (0xF8 >> 1)
64
65// VR_MODULE_RNS module addr
66#define ASIC_P0V85_MEDHA0_VDD_RNS_ADDR (0xEC >> 1)
67#define ASIC_P0V85_MEDHA1_VDD_RNS_ADDR (0xE4 >> 1)
68#define ASIC_P0V9_OWL_E_TRVDD_RNS_ADDR (0xC4 >> 1)
69#define ASIC_P0V75_OWL_E_TRVDD_RNS_ADDR (0xC4 >> 1)
70#define ASIC_P0V75_MAX_M_VDD_RNS_ADDR (0xE8 >> 1)
71#define ASIC_P0V75_VDDPHY_HBM1357_RNS_ADDR (0xE8 >> 1)
72#define ASIC_P0V75_OWL_E_VDD_RNS_ADDR (0xC2 >> 1)
73#define ASIC_P0V4_VDDQL_HBM1357_RNS_ADDR (0xC2 >> 1)
74#define ASIC_P1V1_VDDQC_HBM1357_RNS_ADDR (0xC6 >> 1)
75#define ASIC_P1V8_VPP_HBM1357_RNS_ADDR (0xC6 >> 1)
76
77#define ASIC_P0V75_MAX_N_VDD_RNS_ADDR (0xC2 >> 1)
78#define ASIC_P0V8_HAMSA_AVDD_PCIE_RNS_ADDR (0xC2 >> 1)
79#define ASIC_P1V2_HAMSA_VDDHRXTX_PCIE_RNS_ADDR (0xC6 >> 1)
80#define ASIC_P0V85_HAMSA_VDD_RNS_ADDR (0xC6 >> 1)
81#define ASIC_P1V1_VDDQC_HBM0246_RNS_ADDR (0xC0 >> 1)
82#define ASIC_P1V8_VPP_HBM0246_RNS_ADDR (0xC0 >> 1)
83#define ASIC_P0V4_VDDQL_HBM0246_RNS_ADDR (0xE8 >> 1)
84#define ASIC_P0V75_VDDPHY_HBM0246_RNS_ADDR (0xE8 >> 1)
85#define ASIC_P0V75_OWL_W_VDD_RNS_ADDR (0xC4 >> 1)
86#define ASIC_P0V75_MAX_S_VDD_RNS_ADDR (0xC4 >> 1)
87#define ASIC_P0V9_OWL_W_TRVDD_RNS_ADDR (0xEA >> 1)
88#define ASIC_P0V75_OWL_W_TRVDD_RNS_ADDR (0xEA >> 1)
89
90// rainbow >= FAB2 or evb >= FAB3 VR address (7-bit) and ubc
91// UBC1_NEW_ADDR
92#define UBC1_NEW_ADDR 0x17
93// VR RNS_NEW_ADDR
94#define NEW_RNS_P0V9_OWL_W_TRVDD_ADDR 0x75
95#define NEW_RNS_P0V75_OWL_W_TRVDD_ADDR 0x75
96#define NEW_RNS_P0V75_OWL_W_VDD_ADDR 0x72
97#define NEW_RNS_P0V75_MAX_S_VDD_ADDR 0x72
98#define NEW_RNS_P1V1_VDDQC_HBM0246_ADDR 0x60
99#define NEW_RNS_P1V8_VPP_HBM0246_ADDR 0x60
100#define NEW_RNS_P0V4_VDDQL_HBM0246_ADDR 0x74
101#define NEW_RNS_P0V75_VDDPHY_HBM0246_ADDR 0x74
102#define NEW_RNS_P0V75_MAX_N_VDD_ADDR 0x76
103#define NEW_RNS_P0V8_HAMSA_AVDD_PCIE_ADDR 0x76
104#define NEW_RNS_P1V2_HAMSA_VDDHRXTX_PCIE_ADDR 0x63
105#define NEW_RNS_P0V85_HAMSA_VDD_ADDR 0x63
106#define NEW_RNS_P0V9_OWL_E_TRVDD_ADDR 0x60
107#define NEW_RNS_P0V75_OWL_E_TRVDD_ADDR 0x60
108#define NEW_RNS_P0V75_OWL_E_VDD_ADDR 0x61
109#define NEW_RNS_P0V4_VDDQL_HBM1357_ADDR 0x61
110#define NEW_RNS_P0V75_MAX_M_VDD_ADDR 0x74
111#define NEW_RNS_P0V75_VDDPHY_HBM1357_ADDR 0x74
112#define NEW_RNS_P1V1_VDDQC_HBM1357_ADDR 0x63
113#define NEW_RNS_P1V8_VPP_HBM1357_ADDR 0x63
114#define NEW_RNS_P0V85_MEDHA1_VDD_ADDR 0x72
115#define NEW_RNS_P0V85_MEDHA0_VDD_ADDR 0x76
116// VR MPS_NEW_ADDR
117#define NEW_MPS_P0V9_OWL_W_TRVDD_ADDR 0x6C
118#define NEW_MPS_P0V75_OWL_W_TRVDD_ADDR 0x6C
119#define NEW_MPS_P0V75_OWL_W_VDD_ADDR 0x73
120#define NEW_MPS_P0V75_MAX_S_VDD_ADDR 0x73
121#define NEW_MPS_P1V1_VDDQC_HBM0246_ADDR 0x70
122#define NEW_MPS_P1V8_VPP_HBM0246_ADDR 0x70
123#define NEW_MPS_P0V4_VDDQL_HBM0246_ADDR 0x72
124#define NEW_MPS_P0V75_VDDPHY_HBM0246_ADDR 0x72
125#define NEW_MPS_P0V75_MAX_N_VDD_ADDR 0x6B
126#define NEW_MPS_P0V8_HAMSA_AVDD_PCIE_ADDR 0x6B
127#define NEW_MPS_P1V2_HAMSA_VDDHRXTX_PCIE_ADDR 0x69
128#define NEW_MPS_P0V85_HAMSA_VDD_ADDR 0x69
129#define NEW_MPS_P0V9_OWL_E_TRVDD_ADDR 0x77
130#define NEW_MPS_P0V75_OWL_E_TRVDD_ADDR 0x77
131#define NEW_MPS_P0V75_OWL_E_VDD_ADDR 0x71
132#define NEW_MPS_P0V4_VDDQL_HBM1357_ADDR 0x71
133#define NEW_MPS_P0V75_MAX_M_VDD_ADDR 0x75
134#define NEW_MPS_P0V75_VDDPHY_HBM1357_ADDR 0x75
135#define NEW_MPS_P1V1_VDDQC_HBM1357_ADDR 0x76
136#define NEW_MPS_P1V8_VPP_HBM1357_ADDR 0x76
137#define NEW_MPS_P0V85_MEDHA1_VDD_ADDR 0x26
138#define NEW_MPS_P0V85_MEDHA0_VDD_ADDR 0x28
139
140#define UBC1_ADDR (0x28 >> 1)
141#define UBC2_ADDR (0x34 >> 1)
142
143#define P3V3_OSFP_ADDR (0xFA >> 1)
144
145// sensor number
146/* Define sensors address(7 bit) */
147#define SENSOR_NUM_TOP_INLET_TEMP_C 0x01
148#define SENSOR_NUM_BOT_INLET_TEMP_C 0x02
149#define SENSOR_NUM_BOT_OUTLET_TEMP_C 0x03
150#define SENSOR_NUM_ASIC_MEDHA0_SENSOR0_TEMP_C 0x04
151#define SENSOR_NUM_ASIC_MEDHA0_SENSOR1_TEMP_C 0x05
152#define SENSOR_NUM_ASIC_OWL_W_TEMP_C 0x06
153#define SENSOR_NUM_ASIC_OWL_E_TEMP_C 0x07
154#define SENSOR_NUM_ASIC_MEDHA1_SENSOR0_TEMP_C 0x08
155#define SENSOR_NUM_ASIC_MEDHA1_SENSOR1_TEMP_C 0x09
156#define SENSOR_NUM_ASIC_HAMSA_CRM_TEMP_C 0x0A
157#define SENSOR_NUM_ASIC_HAMSA_LS_TEMP_C 0x0B
158
159#define SENSOR_NUM_ASIC_P0V85_MEDHA0_VDD_TEMP_C 0x0C
160#define SENSOR_NUM_ASIC_P0V85_MEDHA0_VDD_VOLT_V 0x0D
161#define SENSOR_NUM_ASIC_P0V85_MEDHA0_VDD_CURR_A 0x0E
162#define SENSOR_NUM_ASIC_P0V85_MEDHA0_VDD_PWR_W 0x0F
163
164#define SENSOR_NUM_ASIC_P0V85_MEDHA1_VDD_TEMP_C 0x10
165#define SENSOR_NUM_ASIC_P0V85_MEDHA1_VDD_VOLT_V 0x11
166#define SENSOR_NUM_ASIC_P0V85_MEDHA1_VDD_CURR_A 0x12
167#define SENSOR_NUM_ASIC_P0V85_MEDHA1_VDD_PWR_W 0x13
168
169#define SENSOR_NUM_ASIC_P0V9_OWL_E_TRVDD_TEMP_C 0x14
170#define SENSOR_NUM_ASIC_P0V9_OWL_E_TRVDD_VOLT_V 0x15
171#define SENSOR_NUM_ASIC_P0V9_OWL_E_TRVDD_CURR_A 0x16
172#define SENSOR_NUM_ASIC_P0V9_OWL_E_TRVDD_PWR_W 0x17
173
174#define SENSOR_NUM_ASIC_P0V75_OWL_E_TRVDD_TEMP_C 0x18
175#define SENSOR_NUM_ASIC_P0V75_OWL_E_TRVDD_VOLT_V 0x19
176#define SENSOR_NUM_ASIC_P0V75_OWL_E_TRVDD_CURR_A 0x1A
177#define SENSOR_NUM_ASIC_P0V75_OWL_E_TRVDD_PWR_W 0x1B
178
179#define SENSOR_NUM_ASIC_P0V75_OWL_E_VDD_TEMP_C 0x1C
180#define SENSOR_NUM_ASIC_P0V75_OWL_E_VDD_VOLT_V 0x1D
181#define SENSOR_NUM_ASIC_P0V75_OWL_E_VDD_CURR_A 0x1E
182#define SENSOR_NUM_ASIC_P0V75_OWL_E_VDD_PWR_W 0x1F
183
184#define SENSOR_NUM_ASIC_P0V9_OWL_W_TRVDD_TEMP_C 0x20
185#define SENSOR_NUM_ASIC_P0V9_OWL_W_TRVDD_VOLT_V 0x21
186#define SENSOR_NUM_ASIC_P0V9_OWL_W_TRVDD_CURR_A 0x22
187#define SENSOR_NUM_ASIC_P0V9_OWL_W_TRVDD_PWR_W 0x23
188
189#define SENSOR_NUM_ASIC_P0V75_OWL_W_TRVDD_TEMP_C 0x24
190#define SENSOR_NUM_ASIC_P0V75_OWL_W_TRVDD_VOLT_V 0x25
191#define SENSOR_NUM_ASIC_P0V75_OWL_W_TRVDD_CURR_A 0x26
192#define SENSOR_NUM_ASIC_P0V75_OWL_W_TRVDD_PWR_W 0x27
193
194#define SENSOR_NUM_ASIC_P0V75_OWL_W_VDD_TEMP_C 0x28
195#define SENSOR_NUM_ASIC_P0V75_OWL_W_VDD_VOLT_V 0x29
196#define SENSOR_NUM_ASIC_P0V75_OWL_W_VDD_CURR_A 0x2A
197#define SENSOR_NUM_ASIC_P0V75_OWL_W_VDD_PWR_W 0x2B
198
199#define SENSOR_NUM_ASIC_P0V75_MAX_M_VDD_TEMP_C 0x2C
200#define SENSOR_NUM_ASIC_P0V75_MAX_M_VDD_VOLT_V 0x2D
201#define SENSOR_NUM_ASIC_P0V75_MAX_M_VDD_CURR_A 0x2E
202#define SENSOR_NUM_ASIC_P0V75_MAX_M_VDD_PWR_W 0x2F
203
204#define SENSOR_NUM_ASIC_P0V75_MAX_N_VDD_TEMP_C 0x30
205#define SENSOR_NUM_ASIC_P0V75_MAX_N_VDD_VOLT_V 0x31
206#define SENSOR_NUM_ASIC_P0V75_MAX_N_VDD_CURR_A 0x32
207#define SENSOR_NUM_ASIC_P0V75_MAX_N_VDD_PWR_W 0x33
208
209#define SENSOR_NUM_ASIC_P0V75_MAX_S_VDD_TEMP_C 0x34
210#define SENSOR_NUM_ASIC_P0V75_MAX_S_VDD_VOLT_V 0x35
211#define SENSOR_NUM_ASIC_P0V75_MAX_S_VDD_CURR_A 0x36
212#define SENSOR_NUM_ASIC_P0V75_MAX_S_VDD_PWR_W 0x37
213
214#define SENSOR_NUM_ASIC_P0V8_HAMSA_AVDD_PCIE_TEMP_C 0x38
215#define SENSOR_NUM_ASIC_P0V8_HAMSA_AVDD_PCIE_VOLT_V 0x39
216#define SENSOR_NUM_ASIC_P0V8_HAMSA_AVDD_PCIE_CURR_A 0x3A
217#define SENSOR_NUM_ASIC_P0V8_HAMSA_AVDD_PCIE_PWR_W 0x3B
218
219#define SENSOR_NUM_ASIC_P1V2_HAMSA_VDDHRXTX_PCIE_TEMP_C 0x3C
220#define SENSOR_NUM_ASIC_P1V2_HAMSA_VDDHRXTX_PCIE_VOLT_V 0x3D
221#define SENSOR_NUM_ASIC_P1V2_HAMSA_VDDHRXTX_PCIE_CURR_A 0x3E
222#define SENSOR_NUM_ASIC_P1V2_HAMSA_VDDHRXTX_PCIE_PWR_W 0x3F
223
224#define SENSOR_NUM_ASIC_P0V85_HAMSA_VDD_TEMP_C 0x40
225#define SENSOR_NUM_ASIC_P0V85_HAMSA_VDD_VOLT_V 0x41
226#define SENSOR_NUM_ASIC_P0V85_HAMSA_VDD_CURR_A 0x42
227#define SENSOR_NUM_ASIC_P0V85_HAMSA_VDD_PWR_W 0x43
228
229#define SENSOR_NUM_ASIC_P0V75_VDDPHY_HBM0246_TEMP_C 0x44
230#define SENSOR_NUM_ASIC_P0V75_VDDPHY_HBM0246_VOLT_V 0x45
231#define SENSOR_NUM_ASIC_P0V75_VDDPHY_HBM0246_CURR_A 0x46
232#define SENSOR_NUM_ASIC_P0V75_VDDPHY_HBM0246_PWR_W 0x47
233
234#define SENSOR_NUM_ASIC_P0V4_VDDQL_HBM0246_TEMP_C 0x48
235#define SENSOR_NUM_ASIC_P0V4_VDDQL_HBM0246_VOLT_V 0x49
236#define SENSOR_NUM_ASIC_P0V4_VDDQL_HBM0246_CURR_A 0x4A
237#define SENSOR_NUM_ASIC_P0V4_VDDQL_HBM0246_PWR_W 0x4B
238
239#define SENSOR_NUM_ASIC_P1V1_VDDQC_HBM0246_TEMP_C 0x4C
240#define SENSOR_NUM_ASIC_P1V1_VDDQC_HBM0246_VOLT_V 0x4D
241#define SENSOR_NUM_ASIC_P1V1_VDDQC_HBM0246_CURR_A 0x4E
242#define SENSOR_NUM_ASIC_P1V1_VDDQC_HBM0246_PWR_W 0x4F
243
244#define SENSOR_NUM_ASIC_P1V8_VPP_HBM0246_TEMP_C 0x50
245#define SENSOR_NUM_ASIC_P1V8_VPP_HBM0246_VOLT_V 0x51
246#define SENSOR_NUM_ASIC_P1V8_VPP_HBM0246_CURR_A 0x52
247#define SENSOR_NUM_ASIC_P1V8_VPP_HBM0246_PWR_W 0x53
248
249#define SENSOR_NUM_ASIC_P0V75_VDDPHY_HBM1357_TEMP_C 0x54
250#define SENSOR_NUM_ASIC_P0V75_VDDPHY_HBM1357_VOLT_V 0x55
251#define SENSOR_NUM_ASIC_P0V75_VDDPHY_HBM1357_CURR_A 0x56
252#define SENSOR_NUM_ASIC_P0V75_VDDPHY_HBM1357_PWR_W 0x57
253
254#define SENSOR_NUM_ASIC_P0V4_VDDQL_HBM1357_TEMP_C 0x58
255#define SENSOR_NUM_ASIC_P0V4_VDDQL_HBM1357_VOLT_V 0x59
256#define SENSOR_NUM_ASIC_P0V4_VDDQL_HBM1357_CURR_A 0x5A
257#define SENSOR_NUM_ASIC_P0V4_VDDQL_HBM1357_PWR_W 0x5B
258
259#define SENSOR_NUM_ASIC_P1V1_VDDQC_HBM1357_TEMP_C 0x5C
260#define SENSOR_NUM_ASIC_P1V1_VDDQC_HBM1357_VOLT_V 0x5D
261#define SENSOR_NUM_ASIC_P1V1_VDDQC_HBM1357_CURR_A 0x5E
262#define SENSOR_NUM_ASIC_P1V1_VDDQC_HBM1357_PWR_W 0x5F
263
264#define SENSOR_NUM_ASIC_P1V8_VPP_HBM1357_TEMP_C 0x60
265#define SENSOR_NUM_ASIC_P1V8_VPP_HBM1357_VOLT_V 0x61
266#define SENSOR_NUM_ASIC_P1V8_VPP_HBM1357_CURR_A 0x62
267#define SENSOR_NUM_ASIC_P1V8_VPP_HBM1357_PWR_W 0x63
268
269#define SENSOR_NUM_UBC1_P12V_TEMP_C 0x64
270#define SENSOR_NUM_UBC1_P12V_VOLT_V 0x65
271#define SENSOR_NUM_UBC1_P12V_CURR_A 0x66
272#define SENSOR_NUM_UBC1_P12V_PWR_W 0x67
273#define SENSOR_NUM_UBC1_P52V_INPUT_VOLT_V 0x68
274
275#define SENSOR_NUM_UBC2_P12V_TEMP_C 0x69
276#define SENSOR_NUM_UBC2_P12V_VOLT_V 0x6A
277#define SENSOR_NUM_UBC2_P12V_CURR_A 0x6B
278#define SENSOR_NUM_UBC2_P12V_PWR_W 0x6C
279#define SENSOR_NUM_UBC2_P52V_INPUT_VOLT_V 0x6D
280
281#define SENSOR_NUM_P3V3_OSFP_TEMP_C 0x6E
282#define SENSOR_NUM_P3V3_OSFP_VOLT_V 0x6F
283#define SENSOR_NUM_P3V3_OSFP_CURR_A 0x70
284#define SENSOR_NUM_P3V3_OSFP_PWR_W 0x71
285
286// VR Vin
287#define SENSOR_NUM_ASIC_P0V85_MEDHA0_VDD_INPUT_VOLT_V 0x72
288#define SENSOR_NUM_ASIC_P0V85_MEDHA1_VDD_INPUT_VOLT_V 0x73
289#define SENSOR_NUM_ASIC_P0V9_OWL_E_TRVDD_INPUT_VOLT_V 0x74
290#define SENSOR_NUM_ASIC_P0V75_OWL_E_TRVDD_INPUT_VOLT_V 0x75
291#define SENSOR_NUM_ASIC_P0V75_MAX_M_VDD_INPUT_VOLT_V 0x76
292#define SENSOR_NUM_ASIC_P0V75_VDDPHY_HBM1357_INPUT_VOLT_V 0x77
293#define SENSOR_NUM_ASIC_P0V75_OWL_E_VDD_INPUT_VOLT_V 0x78
294#define SENSOR_NUM_ASIC_P0V4_VDDQL_HBM1357_INPUT_VOLT_V 0x79
295#define SENSOR_NUM_ASIC_P1V1_VDDQC_HBM1357_INPUT_VOLT_V 0x7A
296#define SENSOR_NUM_ASIC_P1V8_VPP_HBM1357_INPUT_VOLT_V 0x7B
297#define SENSOR_NUM_ASIC_P0V75_MAX_N_VDD_INPUT_VOLT_V 0x7C
298#define SENSOR_NUM_ASIC_P0V8_HAMSA_AVDD_PCIE_INPUT_VOLT_V 0x7D
299#define SENSOR_NUM_ASIC_P1V2_HAMSA_VDDHRXTX_PCIE_INPUT_VOLT_V 0x7E
300#define SENSOR_NUM_ASIC_P0V85_HAMSA_VDD_INPUT_VOLT_V 0x7F
301#define SENSOR_NUM_ASIC_P1V1_VDDQC_HBM0246_INPUT_VOLT_V 0x80
302#define SENSOR_NUM_ASIC_P1V8_VPP_HBM0246_INPUT_VOLT_V 0x81
303#define SENSOR_NUM_ASIC_P0V4_VDDQL_HBM0246_INPUT_VOLT_V 0x82
304#define SENSOR_NUM_ASIC_P0V75_VDDPHY_HBM0246_INPUT_VOLT_V 0x83
305#define SENSOR_NUM_ASIC_P0V75_OWL_W_VDD_INPUT_VOLT_V 0x84
306#define SENSOR_NUM_ASIC_P0V75_MAX_S_VDD_INPUT_VOLT_V 0x85
307#define SENSOR_NUM_ASIC_P0V9_OWL_W_TRVDD_INPUT_VOLT_V 0x86
308#define SENSOR_NUM_ASIC_P0V75_OWL_W_TRVDD_INPUT_VOLT_V 0x87
309#define SENSOR_NUM_P3V3_OSFP_INPUT_VOLT_V 0x88
310
311#define SENSOR_NUM_NUMBERS 0x89
312
313#define TMP75_TEMP_OFFSET 0x00
314#define UPDATE_INTERVAL_1S 1
315#define UPDATE_INTERVAL_5S 5
316#define UPDATE_INTERVAL_60S 60
317#define U200051_IO_ADDR (0x72 >> 1)
318
319#define ONE_STEP_POWER_MAGIC_NUMBER 0x56
320
328};
329
331
333
334int plat_pldm_sensor_get_sensor_count(int thread_id);
338bool is_dc_access(uint8_t sensor_num);
343void set_plat_sensor_one_step_enable_flag(uint8_t value);
349bool is_ubc_access(uint8_t sensor_num);
350bool is_temp_access(uint8_t cfg_idx);
351bool is_vr_access(uint8_t sensor_num);
352size_t char16_strlen(const char16_t *str);
353char16_t *char16_strcpy(char16_t *dest, const char16_t *src);
355
356bool get_raw_data_from_sensor_id(uint8_t sensor_id, uint8_t offset, uint8_t *val, uint8_t len);
357void change_sensor_cfg(uint8_t asic_board_id, uint8_t vr_module, uint8_t ubc_module,
358 uint8_t board_rev_id);
359uint8_t convert_vr_addr(uint8_t addr, uint8_t vr_change_mode);
360uint32_t plat_get_pdr_size(uint8_t pdr_type);
363void init_U200051_IO();
365void set_ioe_init_flag(uint8_t flag);
366uint8_t get_ioe_init_flag();
368#endif
uint32_t val
Definition: plat_util.c:43
uint8_t addr
Definition: isl69259.c:0
uint_least16_t char16_t
Definition: libutil.h:86
bool get_plat_sensor_vr_polling_enable_flag()
Definition: plat_pldm_sensor.c:9959
int plat_pldm_sensor_get_sensor_count(int thread_id)
Definition: plat_pldm_sensor.c:9234
bool is_vr_access(uint8_t sensor_num)
Definition: plat_pldm_sensor.c:9979
char16_t * char16_strcat_char(char16_t *dest)
Definition: plat_pldm_sensor.c:9370
bool is_ubc_access(uint8_t sensor_num)
Definition: plat_pldm_sensor.c:9964
SENSOR_THREAD_LIST
Definition: plat_pldm_sensor.h:229
@ UBC_SENSOR_THREAD_ID
Definition: plat_pldm_sensor.h:230
@ MAX_SENSOR_THREAD_ID
Definition: plat_pldm_sensor.h:235
@ TEMP_SENSOR_THREAD_ID
Definition: plat_pldm_sensor.h:234
@ VR_SENSOR_THREAD_ID
Definition: plat_pldm_sensor.h:233
size_t char16_strlen(const char16_t *str)
Definition: plat_pldm_sensor.c:9352
bool get_plat_sensor_ubc_polling_enable_flag()
Definition: plat_pldm_sensor.c:9949
bool is_dc_access(uint8_t sensor_num)
Definition: plat_sensor_table.c:1564
void plat_pldm_sensor_get_pdr_numeric_sensor(int thread_id, int sensor_num, PDR_numeric_sensor *numeric_sensor_table)
Definition: plat_pldm_sensor.c:9266
void set_plat_sensor_polling_enable_flag(bool value)
Definition: plat_pldm_sensor.c:9924
bool get_plat_sensor_temp_polling_enable_flag()
Definition: plat_pldm_sensor.c:9954
bool is_temp_access(uint8_t cfg_idx)
Definition: plat_pldm_sensor.c:9973
sensor_cfg * get_sensor_cfg_by_sensor_id(uint8_t sensor_id)
Definition: plat_pldm_sensor.c:10066
void set_plat_sensor_ubc_polling_enable_flag(bool value)
Definition: plat_pldm_sensor.c:9929
char16_t * char16_strcpy(char16_t *dest, const char16_t *src)
Definition: plat_pldm_sensor.c:9361
void set_plat_sensor_temp_polling_enable_flag(bool value)
Definition: plat_pldm_sensor.c:9934
void set_plat_sensor_vr_polling_enable_flag(bool value)
Definition: plat_pldm_sensor.c:9939
bool get_plat_sensor_polling_enable_flag()
Definition: plat_pldm_sensor.c:9944
PDR_numeric_sensor * numeric_sensor_table
Definition: pdr.c:32
PDR_numeric_sensor
Definition: pdr.h:134
uint32_t offset
Definition: pldm_firmware_update.h:0
uint16_t sensor_id
Definition: pldm_monitor.h:0
void init_U200051_IO()
Definition: plat_pldm_sensor.c:12586
void set_ioe_init_flag(uint8_t flag)
Definition: plat_pldm_sensor.c:12577
uint8_t get_plat_sensor_one_step_enable_flag()
Definition: plat_pldm_sensor.c:12470
uint8_t convert_vr_addr(uint8_t addr, uint8_t vr_change_mode)
Definition: plat_pldm_sensor.c:137
PCA9554APW_REG
Definition: plat_pldm_sensor.h:330
@ OUTPUT_PORT
Definition: plat_pldm_sensor.h:330
@ POLARITY_INVERSION
Definition: plat_pldm_sensor.h:330
@ INPUT_PORT
Definition: plat_pldm_sensor.h:330
@ CONFIG
Definition: plat_pldm_sensor.h:330
VR_ADDRESS_VIRSION
Definition: plat_pldm_sensor.h:332
@ NEW_MPS
Definition: plat_pldm_sensor.h:332
@ OLD_RNS
Definition: plat_pldm_sensor.h:332
@ MAX_VR_ADDRESS_VIRSION
Definition: plat_pldm_sensor.h:332
@ OLD_MPS
Definition: plat_pldm_sensor.h:332
@ NEW_RNS
Definition: plat_pldm_sensor.h:332
uint32_t plat_pldm_sensor_get_quick_vr_poll_interval()
Definition: plat_pldm_sensor.c:12504
bool get_raw_data_from_sensor_id(uint8_t sensor_id, uint8_t offset, uint8_t *val, uint8_t len)
Definition: plat_pldm_sensor.c:12221
void change_sensor_cfg(uint8_t asic_board_id, uint8_t vr_module, uint8_t ubc_module, uint8_t board_rev_id)
Definition: plat_pldm_sensor.c:12310
@ EVB_SENSOR_THREAD_ID
Definition: plat_pldm_sensor.h:326
@ QUICK_VR_SENSOR_THREAD_ID
Definition: plat_pldm_sensor.h:324
void plat_pldm_sensor_set_quick_vr_poll_interval(uint32_t value)
Definition: plat_pldm_sensor.c:12509
PDR_numeric_sensor * get_pdr_numeric_sensor_by_sensor_id(uint8_t sensor_id)
Definition: plat_pldm_sensor.c:12258
uint32_t plat_get_pdr_size(uint8_t pdr_type)
Definition: pdr.c:288
void quick_sensor_poll_init()
Definition: plat_sensor_table.c:74
uint8_t get_ioe_init_flag()
Definition: plat_pldm_sensor.c:12572
void set_plat_sensor_one_step_enable_flag(uint8_t value)
Definition: plat_pldm_sensor.c:12445
uint8_t sensor_num
Definition: storage_handler.h:6
Definition: sensor.h:264