xref: /aosp_15_r20/external/coreboot/src/vendorcode/siemens/hwilib/hwilib.h (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef SIEMENS_HWI_LIB_H_
4 #define SIEMENS_HWI_LIB_H_
5 
6 #include <types.h>
7 
8 /* Declare all supported fields which can be get with hwilib. */
9 typedef enum {
10 	HIB_VerID = 0,
11 	SIB_VerID,
12 	EIB_VerID,
13 	XIB_VerID,
14 	HIB_HwRev,
15 	SIB_HwRev,
16 	HWID,
17 	UniqueNum,
18 	Mac1,
19 	Mac2,
20 	Mac3,
21 	Mac4,
22 	Mac1Aux,
23 	Mac2Aux,
24 	Mac3Aux,
25 	Mac4Aux,
26 	SPD,
27 	FF_FreezeDis,
28 	FF_FanReq,
29 	NvramVirtTimeDsaveReset,
30 	BiosFlags,
31 	MacMapping1,
32 	MacMapping2,
33 	MacMapping3,
34 	MacMapping4,
35 	RTCType,
36 	BL_Brightness,
37 	PF_PwmFreq,
38 	PF_Color_Depth,
39 	PF_DisplType,
40 	PF_DisplCon,
41 	Edid,
42 	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,
54 	FANStartSpeed,
55 	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,
105 	netKind10,
106 	LegacyDelay
107 } 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  */
121 enum cb_err hwilib_find_blocks(const char *hwi_filename);
122 
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  */
126 size_t hwilib_get_field(hwinfo_field_t field, uint8_t *dst, size_t dstsize);
127 
128 #endif /* SIEMENS_HWI_LIB_H_ */
129