blob: e4b11dd52884f334a2b3e04923bc76cb1559740b [file] [log] [blame]
Angel Pons3ef916f2020-04-02 23:49:13 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Werner Zeh223498f2016-04-22 14:14:45 +02002
3#ifndef SIEMENS_HWI_LIB_H_
4#define SIEMENS_HWI_LIB_H_
5
6#include <types.h>
7
Werner Zeh223498f2016-04-22 14:14:45 +02008/* Declare all supported fields which can be get with hwilib. */
9typedef enum {
10 HIB_VerID = 0,
11 SIB_VerID,
12 EIB_VerID,
Werner Zeh66c20c42016-06-28 14:31:30 +020013 XIB_VerID,
Werner Zeh223498f2016-04-22 14:14:45 +020014 HIB_HwRev,
15 SIB_HwRev,
Werner Zehba7525d2016-11-23 07:31:35 +010016 HWID,
Werner Zeh223498f2016-04-22 14:14:45 +020017 UniqueNum,
18 Mac1,
Werner Zeh223498f2016-04-22 14:14:45 +020019 Mac2,
Werner Zeh223498f2016-04-22 14:14:45 +020020 Mac3,
Werner Zeh223498f2016-04-22 14:14:45 +020021 Mac4,
Werner Zeh66c20c42016-06-28 14:31:30 +020022 Mac1Aux,
23 Mac2Aux,
24 Mac3Aux,
Werner Zeh223498f2016-04-22 14:14:45 +020025 Mac4Aux,
26 SPD,
27 FF_FreezeDis,
28 FF_FanReq,
Mario Scheithauer59dd4662017-06-12 09:46:09 +020029 NvramVirtTimeDsaveReset,
Werner Zeh223498f2016-04-22 14:14:45 +020030 BiosFlags,
31 MacMapping1,
32 MacMapping2,
33 MacMapping3,
34 MacMapping4,
Werner Zeh66c20c42016-06-28 14:31:30 +020035 RTCType,
Mario Scheithauer59dd4662017-06-12 09:46:09 +020036 BL_Brightness,
37 PF_PwmFreq,
Werner Zeh223498f2016-04-22 14:14:45 +020038 PF_Color_Depth,
39 PF_DisplType,
40 PF_DisplCon,
41 Edid,
Werner Zeh66c20c42016-06-28 14:31:30 +020042 VddRef,
43 T_Warn,
44 T_Crit,
45 FANSamplingTime,
46 FANSetPoint,
47 FANKp,
48 FANKi,
49 FANKd,
50 FANHystVal,
51 FANHystThreshold,
52 FANHystCtrl,
53 FANMaxSpeed,
Werner Zeh909536a2017-07-27 13:43:24 +020054 FANStartSpeed,
Werner Zeh66c20c42016-06-28 14:31:30 +020055 FANSensorDelay,
56 FANSensorNum,
57 FANSensorSelect,
58 FANSensorCfg0,
59 FANSensorCfg1,
60 FANSensorCfg2,
61 FANSensorCfg3,
62 FANSensorCfg4,
63 FANSensorCfg5,
64 FANSensorCfg6,
65 FANSensorCfg7,
66 XMac1,
67 XMac2,
68 XMac3,
69 XMac4,
70 XMac5,
71 XMac6,
72 XMac7,
73 XMac8,
74 XMac9,
75 XMac10,
76 XMac1Aux,
77 XMac2Aux,
78 XMac3Aux,
79 XMac4Aux,
80 XMac5Aux,
81 XMac6Aux,
82 XMac7Aux,
83 XMac8Aux,
84 XMac9Aux,
85 XMac10Aux,
86 XMac1Mapping,
87 XMac2Mapping,
88 XMac3Mapping,
89 XMac4Mapping,
90 XMac5Mapping,
91 XMac6Mapping,
92 XMac7Mapping,
93 XMac8Mapping,
94 XMac9Mapping,
95 XMac10Mapping,
96 netKind1,
97 netKind2,
98 netKind3,
99 netKind4,
100 netKind5,
101 netKind6,
102 netKind7,
103 netKind8,
104 netKind9,
Werner Zeh461797e2017-09-12 07:58:14 +0200105 netKind10,
106 LegacyDelay
Werner Zeh223498f2016-04-22 14:14:45 +0200107} hwinfo_field_t;
108
109/* Define used values in supported fields */
110#define PF_COLOR_DEPTH_6BIT 0x00
111#define PF_COLOR_DEPTH_8BIT 0x01
112#define PF_COLOR_DEPTH_10BIT 0x02
113#define PF_DISPLCON_LVDS_SINGLE 0x00
114#define PF_DISPLCON_LVDS_DUAL 0x05
115#define FF_FREEZE_DISABLE 0x01
116#define FF_FAN_NEEDED 0x01
117
118/* Use this function to find all supported blocks in cbfs. It must be called
119 * once with a valid cbfs file name before hwilib_get_field() can be used.
120 */
Werner Zeh9a8e1192023-01-17 14:45:25 +0100121enum cb_err hwilib_find_blocks(const char *hwi_filename);
Werner Zeh223498f2016-04-22 14:14:45 +0200122
123/* Use this function to get fields out of supported info blocks
124 * This function returns the number of copied bytes or 0 on error.
125 */
Werner Zehfcff39f2023-01-17 14:54:53 +0100126uint32_t hwilib_get_field(hwinfo_field_t field, uint8_t *dst, size_t dstsize);
Werner Zeh223498f2016-04-22 14:14:45 +0200127
Werner Zeh223498f2016-04-22 14:14:45 +0200128#endif /* SIEMENS_HWI_LIB_H_ */