1*8d2ed842SYang Chen[
2*8d2ed842SYang Chen    {
3*8d2ed842SYang Chen        "Exposes": [
4*8d2ed842SYang Chen            {
5*8d2ed842SYang Chen                "Address": "0x5e",
6*8d2ed842SYang Chen                "Bus": "$bus",
7*8d2ed842SYang Chen                "Connector": {
8*8d2ed842SYang Chen                    "Name": "FCB_TOP_$bus * -1 + 17 FAN0_TACH_IL",
9*8d2ed842SYang Chen                    "Pwm": 2,
10*8d2ed842SYang Chen                    "PwmName": "FCB_TOP_$bus * -1 + 17 FAN0_PWM",
11*8d2ed842SYang Chen                    "Tachs": [
12*8d2ed842SYang Chen                        0
13*8d2ed842SYang Chen                    ]
14*8d2ed842SYang Chen                },
15*8d2ed842SYang Chen                "Index": 0,
16*8d2ed842SYang Chen                "Name": "FCB_TOP_$bus * -1 + 17 FAN0_TACH_IL_SPEED_RPM",
17*8d2ed842SYang Chen                "PowerState": "Always",
18*8d2ed842SYang Chen                "Thresholds": [
19*8d2ed842SYang Chen                    {
20*8d2ed842SYang Chen                        "Direction": "greater than",
21*8d2ed842SYang Chen                        "Name": "upper critical",
22*8d2ed842SYang Chen                        "Severity": 1,
23*8d2ed842SYang Chen                        "Value": 20000
24*8d2ed842SYang Chen                    },
25*8d2ed842SYang Chen                    {
26*8d2ed842SYang Chen                        "Direction": "less than",
27*8d2ed842SYang Chen                        "Name": "lower critical",
28*8d2ed842SYang Chen                        "Severity": 1,
29*8d2ed842SYang Chen                        "Value": 800
30*8d2ed842SYang Chen                    }
31*8d2ed842SYang Chen                ],
32*8d2ed842SYang Chen                "Type": "I2CFan"
33*8d2ed842SYang Chen            },
34*8d2ed842SYang Chen            {
35*8d2ed842SYang Chen                "Address": "0x5e",
36*8d2ed842SYang Chen                "Bus": "$bus",
37*8d2ed842SYang Chen                "Connector": {
38*8d2ed842SYang Chen                    "Name": "FCB_TOP_$bus * -1 + 17 FAN0_TACH_OL",
39*8d2ed842SYang Chen                    "Pwm": 2,
40*8d2ed842SYang Chen                    "PwmName": "FCB_TOP_$bus * -1 + 17 FAN0_PWM",
41*8d2ed842SYang Chen                    "Tachs": [
42*8d2ed842SYang Chen                        1
43*8d2ed842SYang Chen                    ]
44*8d2ed842SYang Chen                },
45*8d2ed842SYang Chen                "Index": 1,
46*8d2ed842SYang Chen                "Name": "FCB_TOP_$bus * -1 + 17 FAN0_TACH_OL_SPEED_RPM",
47*8d2ed842SYang Chen                "PowerState": "Always",
48*8d2ed842SYang Chen                "Thresholds": [
49*8d2ed842SYang Chen                    {
50*8d2ed842SYang Chen                        "Direction": "greater than",
51*8d2ed842SYang Chen                        "Name": "upper critical",
52*8d2ed842SYang Chen                        "Severity": 1,
53*8d2ed842SYang Chen                        "Value": 20000
54*8d2ed842SYang Chen                    },
55*8d2ed842SYang Chen                    {
56*8d2ed842SYang Chen                        "Direction": "less than",
57*8d2ed842SYang Chen                        "Name": "lower critical",
58*8d2ed842SYang Chen                        "Severity": 1,
59*8d2ed842SYang Chen                        "Value": 800
60*8d2ed842SYang Chen                    }
61*8d2ed842SYang Chen                ],
62*8d2ed842SYang Chen                "Type": "I2CFan"
63*8d2ed842SYang Chen            },
64*8d2ed842SYang Chen            {
65*8d2ed842SYang Chen                "Address": "0x5e",
66*8d2ed842SYang Chen                "Bus": "$bus",
67*8d2ed842SYang Chen                "Connector": {
68*8d2ed842SYang Chen                    "Name": "FCB_TOP_$bus * -1 + 17 FAN1_TACH_IL",
69*8d2ed842SYang Chen                    "Pwm": 2,
70*8d2ed842SYang Chen                    "PwmName": "FCB_TOP_$bus * -1 + 17 FAN1_PWM",
71*8d2ed842SYang Chen                    "Tachs": [
72*8d2ed842SYang Chen                        2
73*8d2ed842SYang Chen                    ]
74*8d2ed842SYang Chen                },
75*8d2ed842SYang Chen                "Index": 2,
76*8d2ed842SYang Chen                "Name": "FCB_TOP_$bus * -1 + 17 FAN1_TACH_IL_SPEED_RPM",
77*8d2ed842SYang Chen                "PowerState": "Always",
78*8d2ed842SYang Chen                "Thresholds": [
79*8d2ed842SYang Chen                    {
80*8d2ed842SYang Chen                        "Direction": "greater than",
81*8d2ed842SYang Chen                        "Name": "upper critical",
82*8d2ed842SYang Chen                        "Severity": 1,
83*8d2ed842SYang Chen                        "Value": 20000
84*8d2ed842SYang Chen                    },
85*8d2ed842SYang Chen                    {
86*8d2ed842SYang Chen                        "Direction": "less than",
87*8d2ed842SYang Chen                        "Name": "lower critical",
88*8d2ed842SYang Chen                        "Severity": 1,
89*8d2ed842SYang Chen                        "Value": 800
90*8d2ed842SYang Chen                    }
91*8d2ed842SYang Chen                ],
92*8d2ed842SYang Chen                "Type": "I2CFan"
93*8d2ed842SYang Chen            },
94*8d2ed842SYang Chen            {
95*8d2ed842SYang Chen                "Address": "0x5e",
96*8d2ed842SYang Chen                "Bus": "$bus",
97*8d2ed842SYang Chen                "Connector": {
98*8d2ed842SYang Chen                    "Name": "FCB_TOP_$bus * -1 + 17 FAN1_TACH_OL",
99*8d2ed842SYang Chen                    "Pwm": 2,
100*8d2ed842SYang Chen                    "PwmName": "FCB_TOP_$bus * -1 + 17 FAN1_PWM",
101*8d2ed842SYang Chen                    "Tachs": [
102*8d2ed842SYang Chen                        3
103*8d2ed842SYang Chen                    ]
104*8d2ed842SYang Chen                },
105*8d2ed842SYang Chen                "Index": 3,
106*8d2ed842SYang Chen                "Name": "FCB_TOP_$bus * -1 + 17 FAN1_TACH_OL_SPEED_RPM",
107*8d2ed842SYang Chen                "PowerState": "Always",
108*8d2ed842SYang Chen                "Thresholds": [
109*8d2ed842SYang Chen                    {
110*8d2ed842SYang Chen                        "Direction": "greater than",
111*8d2ed842SYang Chen                        "Name": "upper critical",
112*8d2ed842SYang Chen                        "Severity": 1,
113*8d2ed842SYang Chen                        "Value": 20000
114*8d2ed842SYang Chen                    },
115*8d2ed842SYang Chen                    {
116*8d2ed842SYang Chen                        "Direction": "less than",
117*8d2ed842SYang Chen                        "Name": "lower critical",
118*8d2ed842SYang Chen                        "Severity": 1,
119*8d2ed842SYang Chen                        "Value": 800
120*8d2ed842SYang Chen                    }
121*8d2ed842SYang Chen                ],
122*8d2ed842SYang Chen                "Type": "I2CFan"
123*8d2ed842SYang Chen            },
124*8d2ed842SYang Chen            {
125*8d2ed842SYang Chen                "Address": "0x5e",
126*8d2ed842SYang Chen                "Bus": "$bus",
127*8d2ed842SYang Chen                "Connector": {
128*8d2ed842SYang Chen                    "Name": "FCB_TOP_$bus * -1 + 17 FAN2_TACH_IL",
129*8d2ed842SYang Chen                    "Pwm": 2,
130*8d2ed842SYang Chen                    "PwmName": "FCB_TOP_$bus * -1 + 17 FAN2_PWM",
131*8d2ed842SYang Chen                    "Tachs": [
132*8d2ed842SYang Chen                        4
133*8d2ed842SYang Chen                    ]
134*8d2ed842SYang Chen                },
135*8d2ed842SYang Chen                "Index": 4,
136*8d2ed842SYang Chen                "Name": "FCB_TOP_$bus * -1 + 17 FAN2_TACH_IL_SPEED_RPM",
137*8d2ed842SYang Chen                "PowerState": "Always",
138*8d2ed842SYang Chen                "Thresholds": [
139*8d2ed842SYang Chen                    {
140*8d2ed842SYang Chen                        "Direction": "greater than",
141*8d2ed842SYang Chen                        "Name": "upper critical",
142*8d2ed842SYang Chen                        "Severity": 1,
143*8d2ed842SYang Chen                        "Value": 20000
144*8d2ed842SYang Chen                    },
145*8d2ed842SYang Chen                    {
146*8d2ed842SYang Chen                        "Direction": "less than",
147*8d2ed842SYang Chen                        "Name": "lower critical",
148*8d2ed842SYang Chen                        "Severity": 1,
149*8d2ed842SYang Chen                        "Value": 800
150*8d2ed842SYang Chen                    }
151*8d2ed842SYang Chen                ],
152*8d2ed842SYang Chen                "Type": "I2CFan"
153*8d2ed842SYang Chen            },
154*8d2ed842SYang Chen            {
155*8d2ed842SYang Chen                "Address": "0x5e",
156*8d2ed842SYang Chen                "Bus": "$bus",
157*8d2ed842SYang Chen                "Connector": {
158*8d2ed842SYang Chen                    "Name": "FCB_TOP_$bus * -1 + 17 FAN2_TACH_OL",
159*8d2ed842SYang Chen                    "Pwm": 2,
160*8d2ed842SYang Chen                    "PwmName": "FCB_TOP_$bus * -1 + 17 FAN2_PWM",
161*8d2ed842SYang Chen                    "Tachs": [
162*8d2ed842SYang Chen                        5
163*8d2ed842SYang Chen                    ]
164*8d2ed842SYang Chen                },
165*8d2ed842SYang Chen                "Index": 5,
166*8d2ed842SYang Chen                "Name": "FCB_TOP_$bus * -1 + 17 FAN2_TACH_OL_SPEED_RPM",
167*8d2ed842SYang Chen                "PowerState": "Always",
168*8d2ed842SYang Chen                "Thresholds": [
169*8d2ed842SYang Chen                    {
170*8d2ed842SYang Chen                        "Direction": "greater than",
171*8d2ed842SYang Chen                        "Name": "upper critical",
172*8d2ed842SYang Chen                        "Severity": 1,
173*8d2ed842SYang Chen                        "Value": 20000
174*8d2ed842SYang Chen                    },
175*8d2ed842SYang Chen                    {
176*8d2ed842SYang Chen                        "Direction": "less than",
177*8d2ed842SYang Chen                        "Name": "lower critical",
178*8d2ed842SYang Chen                        "Severity": 1,
179*8d2ed842SYang Chen                        "Value": 800
180*8d2ed842SYang Chen                    }
181*8d2ed842SYang Chen                ],
182*8d2ed842SYang Chen                "Type": "I2CFan"
183*8d2ed842SYang Chen            },
184*8d2ed842SYang Chen            {
185*8d2ed842SYang Chen                "Address": "0x5e",
186*8d2ed842SYang Chen                "Bus": "$bus",
187*8d2ed842SYang Chen                "Connector": {
188*8d2ed842SYang Chen                    "Name": "FCB_TOP_$bus * -1 + 17 FAN3_TACH_IL",
189*8d2ed842SYang Chen                    "Pwm": 2,
190*8d2ed842SYang Chen                    "PwmName": "FCB_TOP_$bus * -1 + 17 FAN3_PWM",
191*8d2ed842SYang Chen                    "Tachs": [
192*8d2ed842SYang Chen                        6
193*8d2ed842SYang Chen                    ]
194*8d2ed842SYang Chen                },
195*8d2ed842SYang Chen                "Index": 6,
196*8d2ed842SYang Chen                "Name": "FCB_TOP_$bus * -1 + 17 FAN3_TACH_IL_SPEED_RPM",
197*8d2ed842SYang Chen                "PowerState": "Always",
198*8d2ed842SYang Chen                "Thresholds": [
199*8d2ed842SYang Chen                    {
200*8d2ed842SYang Chen                        "Direction": "greater than",
201*8d2ed842SYang Chen                        "Name": "upper critical",
202*8d2ed842SYang Chen                        "Severity": 1,
203*8d2ed842SYang Chen                        "Value": 20000
204*8d2ed842SYang Chen                    },
205*8d2ed842SYang Chen                    {
206*8d2ed842SYang Chen                        "Direction": "less than",
207*8d2ed842SYang Chen                        "Name": "lower critical",
208*8d2ed842SYang Chen                        "Severity": 1,
209*8d2ed842SYang Chen                        "Value": 800
210*8d2ed842SYang Chen                    }
211*8d2ed842SYang Chen                ],
212*8d2ed842SYang Chen                "Type": "I2CFan"
213*8d2ed842SYang Chen            },
214*8d2ed842SYang Chen            {
215*8d2ed842SYang Chen                "Address": "0x5e",
216*8d2ed842SYang Chen                "Bus": "$bus",
217*8d2ed842SYang Chen                "Connector": {
218*8d2ed842SYang Chen                    "Name": "FCB_TOP_$bus * -1 + 17 FAN3_TACH_OL",
219*8d2ed842SYang Chen                    "Pwm": 2,
220*8d2ed842SYang Chen                    "PwmName": "FCB_TOP_$bus * -1 + 17 FAN3_PWM",
221*8d2ed842SYang Chen                    "Tachs": [
222*8d2ed842SYang Chen                        7
223*8d2ed842SYang Chen                    ]
224*8d2ed842SYang Chen                },
225*8d2ed842SYang Chen                "Index": 7,
226*8d2ed842SYang Chen                "Name": "FCB_TOP_$bus * -1 + 17 FAN3_TACH_OL_SPEED_RPM",
227*8d2ed842SYang Chen                "PowerState": "Always",
228*8d2ed842SYang Chen                "Thresholds": [
229*8d2ed842SYang Chen                    {
230*8d2ed842SYang Chen                        "Direction": "greater than",
231*8d2ed842SYang Chen                        "Name": "upper critical",
232*8d2ed842SYang Chen                        "Severity": 1,
233*8d2ed842SYang Chen                        "Value": 20000
234*8d2ed842SYang Chen                    },
235*8d2ed842SYang Chen                    {
236*8d2ed842SYang Chen                        "Direction": "less than",
237*8d2ed842SYang Chen                        "Name": "lower critical",
238*8d2ed842SYang Chen                        "Severity": 1,
239*8d2ed842SYang Chen                        "Value": 800
240*8d2ed842SYang Chen                    }
241*8d2ed842SYang Chen                ],
242*8d2ed842SYang Chen                "Type": "I2CFan"
243*8d2ed842SYang Chen            }
244*8d2ed842SYang Chen        ],
245*8d2ed842SYang Chen        "Name": "Minerva Top Fan Board $bus * -1 + 17",
246*8d2ed842SYang Chen        "Probe": [
247*8d2ed842SYang Chen            "xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'Minerva Fan Board.*', 'BUS': 16})",
248*8d2ed842SYang Chen            "OR",
249*8d2ed842SYang Chen            "xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'Minerva Fan Board.*', 'BUS': 17})"
250*8d2ed842SYang Chen        ],
251*8d2ed842SYang Chen        "Type": "Board",
252*8d2ed842SYang Chen        "xyz.openbmc_project.Inventory.Decorator.Asset": {
253*8d2ed842SYang Chen            "Manufacturer": "$PRODUCT_MANUFACTURER",
254*8d2ed842SYang Chen            "Model": "$PRODUCT_PRODUCT_NAME",
255*8d2ed842SYang Chen            "PartNumber": "$PRODUCT_PART_NUMBER",
256*8d2ed842SYang Chen            "SerialNumber": "$PRODUCT_SERIAL_NUMBER"
257*8d2ed842SYang Chen        }
258*8d2ed842SYang Chen    },
259*8d2ed842SYang Chen    {
260*8d2ed842SYang Chen        "Exposes": [
261*8d2ed842SYang Chen            {
262*8d2ed842SYang Chen                "Address": "0x5e",
263*8d2ed842SYang Chen                "Bus": "$bus",
264*8d2ed842SYang Chen                "Connector": {
265*8d2ed842SYang Chen                    "Name": "FCB_MID_$bus * -1 + 19 FAN0_TACH_IL",
266*8d2ed842SYang Chen                    "Pwm": 2,
267*8d2ed842SYang Chen                    "PwmName": "FCB_MID_$bus * -1 + 19 FAN0_PWM",
268*8d2ed842SYang Chen                    "Tachs": [
269*8d2ed842SYang Chen                        0
270*8d2ed842SYang Chen                    ]
271*8d2ed842SYang Chen                },
272*8d2ed842SYang Chen                "Index": 0,
273*8d2ed842SYang Chen                "Name": "FCB_MID_$bus * -1 + 19 FAN0_TACH_IL_SPEED_RPM",
274*8d2ed842SYang Chen                "PowerState": "Always",
275*8d2ed842SYang Chen                "Thresholds": [
276*8d2ed842SYang Chen                    {
277*8d2ed842SYang Chen                        "Direction": "greater than",
278*8d2ed842SYang Chen                        "Name": "upper critical",
279*8d2ed842SYang Chen                        "Severity": 1,
280*8d2ed842SYang Chen                        "Value": 20000
281*8d2ed842SYang Chen                    },
282*8d2ed842SYang Chen                    {
283*8d2ed842SYang Chen                        "Direction": "less than",
284*8d2ed842SYang Chen                        "Name": "lower critical",
285*8d2ed842SYang Chen                        "Severity": 1,
286*8d2ed842SYang Chen                        "Value": 800
287*8d2ed842SYang Chen                    }
288*8d2ed842SYang Chen                ],
289*8d2ed842SYang Chen                "Type": "I2CFan"
290*8d2ed842SYang Chen            },
291*8d2ed842SYang Chen            {
292*8d2ed842SYang Chen                "Address": "0x5e",
293*8d2ed842SYang Chen                "Bus": "$bus",
294*8d2ed842SYang Chen                "Connector": {
295*8d2ed842SYang Chen                    "Name": "FCB_MID_$bus * -1 + 19 FAN0_TACH_OL",
296*8d2ed842SYang Chen                    "Pwm": 2,
297*8d2ed842SYang Chen                    "PwmName": "FCB_MID_$bus * -1 + 19 FAN0_PWM",
298*8d2ed842SYang Chen                    "Tachs": [
299*8d2ed842SYang Chen                        1
300*8d2ed842SYang Chen                    ]
301*8d2ed842SYang Chen                },
302*8d2ed842SYang Chen                "Index": 1,
303*8d2ed842SYang Chen                "Name": "FCB_MID_$bus * -1 + 19 FAN0_TACH_OL_SPEED_RPM",
304*8d2ed842SYang Chen                "PowerState": "Always",
305*8d2ed842SYang Chen                "Thresholds": [
306*8d2ed842SYang Chen                    {
307*8d2ed842SYang Chen                        "Direction": "greater than",
308*8d2ed842SYang Chen                        "Name": "upper critical",
309*8d2ed842SYang Chen                        "Severity": 1,
310*8d2ed842SYang Chen                        "Value": 20000
311*8d2ed842SYang Chen                    },
312*8d2ed842SYang Chen                    {
313*8d2ed842SYang Chen                        "Direction": "less than",
314*8d2ed842SYang Chen                        "Name": "lower critical",
315*8d2ed842SYang Chen                        "Severity": 1,
316*8d2ed842SYang Chen                        "Value": 800
317*8d2ed842SYang Chen                    }
318*8d2ed842SYang Chen                ],
319*8d2ed842SYang Chen                "Type": "I2CFan"
320*8d2ed842SYang Chen            },
321*8d2ed842SYang Chen            {
322*8d2ed842SYang Chen                "Address": "0x5e",
323*8d2ed842SYang Chen                "Bus": "$bus",
324*8d2ed842SYang Chen                "Connector": {
325*8d2ed842SYang Chen                    "Name": "FCB_MID_$bus * -1 + 19 FAN1_TACH_IL",
326*8d2ed842SYang Chen                    "Pwm": 2,
327*8d2ed842SYang Chen                    "PwmName": "FCB_MID_$bus * -1 + 19 FAN1_PWM",
328*8d2ed842SYang Chen                    "Tachs": [
329*8d2ed842SYang Chen                        2
330*8d2ed842SYang Chen                    ]
331*8d2ed842SYang Chen                },
332*8d2ed842SYang Chen                "Index": 2,
333*8d2ed842SYang Chen                "Name": "FCB_MID_$bus * -1 + 19 FAN1_TACH_IL_SPEED_RPM",
334*8d2ed842SYang Chen                "PowerState": "Always",
335*8d2ed842SYang Chen                "Thresholds": [
336*8d2ed842SYang Chen                    {
337*8d2ed842SYang Chen                        "Direction": "greater than",
338*8d2ed842SYang Chen                        "Name": "upper critical",
339*8d2ed842SYang Chen                        "Severity": 1,
340*8d2ed842SYang Chen                        "Value": 20000
341*8d2ed842SYang Chen                    },
342*8d2ed842SYang Chen                    {
343*8d2ed842SYang Chen                        "Direction": "less than",
344*8d2ed842SYang Chen                        "Name": "lower critical",
345*8d2ed842SYang Chen                        "Severity": 1,
346*8d2ed842SYang Chen                        "Value": 800
347*8d2ed842SYang Chen                    }
348*8d2ed842SYang Chen                ],
349*8d2ed842SYang Chen                "Type": "I2CFan"
350*8d2ed842SYang Chen            },
351*8d2ed842SYang Chen            {
352*8d2ed842SYang Chen                "Address": "0x5e",
353*8d2ed842SYang Chen                "Bus": "$bus",
354*8d2ed842SYang Chen                "Connector": {
355*8d2ed842SYang Chen                    "Name": "FCB_MID_$bus * -1 + 19 FAN1_TACH_OL",
356*8d2ed842SYang Chen                    "Pwm": 2,
357*8d2ed842SYang Chen                    "PwmName": "FCB_MID_$bus * -1 + 19 FAN1_PWM",
358*8d2ed842SYang Chen                    "Tachs": [
359*8d2ed842SYang Chen                        3
360*8d2ed842SYang Chen                    ]
361*8d2ed842SYang Chen                },
362*8d2ed842SYang Chen                "Index": 3,
363*8d2ed842SYang Chen                "Name": "FCB_MID_$bus * -1 + 19 FAN1_TACH_OL_SPEED_RPM",
364*8d2ed842SYang Chen                "PowerState": "Always",
365*8d2ed842SYang Chen                "Thresholds": [
366*8d2ed842SYang Chen                    {
367*8d2ed842SYang Chen                        "Direction": "greater than",
368*8d2ed842SYang Chen                        "Name": "upper critical",
369*8d2ed842SYang Chen                        "Severity": 1,
370*8d2ed842SYang Chen                        "Value": 20000
371*8d2ed842SYang Chen                    },
372*8d2ed842SYang Chen                    {
373*8d2ed842SYang Chen                        "Direction": "less than",
374*8d2ed842SYang Chen                        "Name": "lower critical",
375*8d2ed842SYang Chen                        "Severity": 1,
376*8d2ed842SYang Chen                        "Value": 800
377*8d2ed842SYang Chen                    }
378*8d2ed842SYang Chen                ],
379*8d2ed842SYang Chen                "Type": "I2CFan"
380*8d2ed842SYang Chen            },
381*8d2ed842SYang Chen            {
382*8d2ed842SYang Chen                "Address": "0x5e",
383*8d2ed842SYang Chen                "Bus": "$bus",
384*8d2ed842SYang Chen                "Connector": {
385*8d2ed842SYang Chen                    "Name": "FCB_MID_$bus * -1 + 19 FAN2_TACH_IL",
386*8d2ed842SYang Chen                    "Pwm": 2,
387*8d2ed842SYang Chen                    "PwmName": "FCB_MID_$bus * -1 + 19 FAN2_PWM",
388*8d2ed842SYang Chen                    "Tachs": [
389*8d2ed842SYang Chen                        4
390*8d2ed842SYang Chen                    ]
391*8d2ed842SYang Chen                },
392*8d2ed842SYang Chen                "Index": 4,
393*8d2ed842SYang Chen                "Name": "FCB_MID_$bus * -1 + 19 FAN2_TACH_IL_SPEED_RPM",
394*8d2ed842SYang Chen                "PowerState": "Always",
395*8d2ed842SYang Chen                "Thresholds": [
396*8d2ed842SYang Chen                    {
397*8d2ed842SYang Chen                        "Direction": "greater than",
398*8d2ed842SYang Chen                        "Name": "upper critical",
399*8d2ed842SYang Chen                        "Severity": 1,
400*8d2ed842SYang Chen                        "Value": 20000
401*8d2ed842SYang Chen                    },
402*8d2ed842SYang Chen                    {
403*8d2ed842SYang Chen                        "Direction": "less than",
404*8d2ed842SYang Chen                        "Name": "lower critical",
405*8d2ed842SYang Chen                        "Severity": 1,
406*8d2ed842SYang Chen                        "Value": 800
407*8d2ed842SYang Chen                    }
408*8d2ed842SYang Chen                ],
409*8d2ed842SYang Chen                "Type": "I2CFan"
410*8d2ed842SYang Chen            },
411*8d2ed842SYang Chen            {
412*8d2ed842SYang Chen                "Address": "0x5e",
413*8d2ed842SYang Chen                "Bus": "$bus",
414*8d2ed842SYang Chen                "Connector": {
415*8d2ed842SYang Chen                    "Name": "FCB_MID_$bus * -1 + 19 FAN2_TACH_OL",
416*8d2ed842SYang Chen                    "Pwm": 2,
417*8d2ed842SYang Chen                    "PwmName": "FCB_MID_$bus * -1 + 19 FAN2_PWM",
418*8d2ed842SYang Chen                    "Tachs": [
419*8d2ed842SYang Chen                        5
420*8d2ed842SYang Chen                    ]
421*8d2ed842SYang Chen                },
422*8d2ed842SYang Chen                "Index": 5,
423*8d2ed842SYang Chen                "Name": "FCB_MID_$bus * -1 + 19 FAN2_TACH_OL_SPEED_RPM",
424*8d2ed842SYang Chen                "PowerState": "Always",
425*8d2ed842SYang Chen                "Thresholds": [
426*8d2ed842SYang Chen                    {
427*8d2ed842SYang Chen                        "Direction": "greater than",
428*8d2ed842SYang Chen                        "Name": "upper critical",
429*8d2ed842SYang Chen                        "Severity": 1,
430*8d2ed842SYang Chen                        "Value": 20000
431*8d2ed842SYang Chen                    },
432*8d2ed842SYang Chen                    {
433*8d2ed842SYang Chen                        "Direction": "less than",
434*8d2ed842SYang Chen                        "Name": "lower critical",
435*8d2ed842SYang Chen                        "Severity": 1,
436*8d2ed842SYang Chen                        "Value": 800
437*8d2ed842SYang Chen                    }
438*8d2ed842SYang Chen                ],
439*8d2ed842SYang Chen                "Type": "I2CFan"
440*8d2ed842SYang Chen            },
441*8d2ed842SYang Chen            {
442*8d2ed842SYang Chen                "Address": "0x5e",
443*8d2ed842SYang Chen                "Bus": "$bus",
444*8d2ed842SYang Chen                "Connector": {
445*8d2ed842SYang Chen                    "Name": "FCB_MID_$bus * -1 + 19 FAN3_TACH_IL",
446*8d2ed842SYang Chen                    "Pwm": 2,
447*8d2ed842SYang Chen                    "PwmName": "FCB_MID_$bus * -1 + 19 FAN3_PWM",
448*8d2ed842SYang Chen                    "Tachs": [
449*8d2ed842SYang Chen                        6
450*8d2ed842SYang Chen                    ]
451*8d2ed842SYang Chen                },
452*8d2ed842SYang Chen                "Index": 6,
453*8d2ed842SYang Chen                "Name": "FCB_MID_$bus * -1 + 19 FAN3_TACH_IL_SPEED_RPM",
454*8d2ed842SYang Chen                "PowerState": "Always",
455*8d2ed842SYang Chen                "Thresholds": [
456*8d2ed842SYang Chen                    {
457*8d2ed842SYang Chen                        "Direction": "greater than",
458*8d2ed842SYang Chen                        "Name": "upper critical",
459*8d2ed842SYang Chen                        "Severity": 1,
460*8d2ed842SYang Chen                        "Value": 20000
461*8d2ed842SYang Chen                    },
462*8d2ed842SYang Chen                    {
463*8d2ed842SYang Chen                        "Direction": "less than",
464*8d2ed842SYang Chen                        "Name": "lower critical",
465*8d2ed842SYang Chen                        "Severity": 1,
466*8d2ed842SYang Chen                        "Value": 800
467*8d2ed842SYang Chen                    }
468*8d2ed842SYang Chen                ],
469*8d2ed842SYang Chen                "Type": "I2CFan"
470*8d2ed842SYang Chen            },
471*8d2ed842SYang Chen            {
472*8d2ed842SYang Chen                "Address": "0x5e",
473*8d2ed842SYang Chen                "Bus": "$bus",
474*8d2ed842SYang Chen                "Connector": {
475*8d2ed842SYang Chen                    "Name": "FCB_MID_$bus * -1 + 19 FAN3_TACH_OL",
476*8d2ed842SYang Chen                    "Pwm": 2,
477*8d2ed842SYang Chen                    "PwmName": "FCB_MID_$bus * -1 + 19 FAN3_PWM",
478*8d2ed842SYang Chen                    "Tachs": [
479*8d2ed842SYang Chen                        7
480*8d2ed842SYang Chen                    ]
481*8d2ed842SYang Chen                },
482*8d2ed842SYang Chen                "Index": 7,
483*8d2ed842SYang Chen                "Name": "FCB_MID_$bus * -1 + 19 FAN3_TACH_OL_SPEED_RPM",
484*8d2ed842SYang Chen                "PowerState": "Always",
485*8d2ed842SYang Chen                "Thresholds": [
486*8d2ed842SYang Chen                    {
487*8d2ed842SYang Chen                        "Direction": "greater than",
488*8d2ed842SYang Chen                        "Name": "upper critical",
489*8d2ed842SYang Chen                        "Severity": 1,
490*8d2ed842SYang Chen                        "Value": 20000
491*8d2ed842SYang Chen                    },
492*8d2ed842SYang Chen                    {
493*8d2ed842SYang Chen                        "Direction": "less than",
494*8d2ed842SYang Chen                        "Name": "lower critical",
495*8d2ed842SYang Chen                        "Severity": 1,
496*8d2ed842SYang Chen                        "Value": 800
497*8d2ed842SYang Chen                    }
498*8d2ed842SYang Chen                ],
499*8d2ed842SYang Chen                "Type": "I2CFan"
500*8d2ed842SYang Chen            }
501*8d2ed842SYang Chen        ],
502*8d2ed842SYang Chen        "Name": "Minerva Middle Fan Board $bus * -1 + 19",
503*8d2ed842SYang Chen        "Probe": [
504*8d2ed842SYang Chen            "xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'Minerva Fan Board.*', 'BUS': 18})",
505*8d2ed842SYang Chen            "OR",
506*8d2ed842SYang Chen            "xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'Minerva Fan Board.*', 'BUS': 19})"
507*8d2ed842SYang Chen        ],
508*8d2ed842SYang Chen        "Type": "Board",
509*8d2ed842SYang Chen        "xyz.openbmc_project.Inventory.Decorator.Asset": {
510*8d2ed842SYang Chen            "Manufacturer": "$PRODUCT_MANUFACTURER",
511*8d2ed842SYang Chen            "Model": "$PRODUCT_PRODUCT_NAME",
512*8d2ed842SYang Chen            "PartNumber": "$PRODUCT_PART_NUMBER",
513*8d2ed842SYang Chen            "SerialNumber": "$PRODUCT_SERIAL_NUMBER"
514*8d2ed842SYang Chen        }
515*8d2ed842SYang Chen    },
516*8d2ed842SYang Chen    {
517*8d2ed842SYang Chen        "Exposes": [
518*8d2ed842SYang Chen            {
519*8d2ed842SYang Chen                "Address": "0x5e",
520*8d2ed842SYang Chen                "Bus": "$bus",
521*8d2ed842SYang Chen                "Connector": {
522*8d2ed842SYang Chen                    "Name": "FCB_BOT_$bus * -1 + 21 FAN0_TACH_IL",
523*8d2ed842SYang Chen                    "Pwm": 2,
524*8d2ed842SYang Chen                    "PwmName": "FCB_BOT_$bus * -1 + 21 FAN0_PWM",
525*8d2ed842SYang Chen                    "Tachs": [
526*8d2ed842SYang Chen                        0
527*8d2ed842SYang Chen                    ]
528*8d2ed842SYang Chen                },
529*8d2ed842SYang Chen                "Index": 0,
530*8d2ed842SYang Chen                "Name": "FCB_BOT_$bus * -1 + 21 FAN0_TACH_IL_SPEED_RPM",
531*8d2ed842SYang Chen                "PowerState": "Always",
532*8d2ed842SYang Chen                "Thresholds": [
533*8d2ed842SYang Chen                    {
534*8d2ed842SYang Chen                        "Direction": "greater than",
535*8d2ed842SYang Chen                        "Name": "upper critical",
536*8d2ed842SYang Chen                        "Severity": 1,
537*8d2ed842SYang Chen                        "Value": 20000
538*8d2ed842SYang Chen                    },
539*8d2ed842SYang Chen                    {
540*8d2ed842SYang Chen                        "Direction": "less than",
541*8d2ed842SYang Chen                        "Name": "lower critical",
542*8d2ed842SYang Chen                        "Severity": 1,
543*8d2ed842SYang Chen                        "Value": 800
544*8d2ed842SYang Chen                    }
545*8d2ed842SYang Chen                ],
546*8d2ed842SYang Chen                "Type": "I2CFan"
547*8d2ed842SYang Chen            },
548*8d2ed842SYang Chen            {
549*8d2ed842SYang Chen                "Address": "0x5e",
550*8d2ed842SYang Chen                "Bus": "$bus",
551*8d2ed842SYang Chen                "Connector": {
552*8d2ed842SYang Chen                    "Name": "FCB_BOT_$bus * -1 + 21 FAN0_TACH_OL",
553*8d2ed842SYang Chen                    "Pwm": 2,
554*8d2ed842SYang Chen                    "PwmName": "FCB_BOT_$bus * -1 + 21 FAN0_PWM",
555*8d2ed842SYang Chen                    "Tachs": [
556*8d2ed842SYang Chen                        1
557*8d2ed842SYang Chen                    ]
558*8d2ed842SYang Chen                },
559*8d2ed842SYang Chen                "Index": 1,
560*8d2ed842SYang Chen                "Name": "FCB_BOT_$bus * -1 + 21 FAN0_TACH_OL_SPEED_RPM",
561*8d2ed842SYang Chen                "PowerState": "Always",
562*8d2ed842SYang Chen                "Thresholds": [
563*8d2ed842SYang Chen                    {
564*8d2ed842SYang Chen                        "Direction": "greater than",
565*8d2ed842SYang Chen                        "Name": "upper critical",
566*8d2ed842SYang Chen                        "Severity": 1,
567*8d2ed842SYang Chen                        "Value": 20000
568*8d2ed842SYang Chen                    },
569*8d2ed842SYang Chen                    {
570*8d2ed842SYang Chen                        "Direction": "less than",
571*8d2ed842SYang Chen                        "Name": "lower critical",
572*8d2ed842SYang Chen                        "Severity": 1,
573*8d2ed842SYang Chen                        "Value": 800
574*8d2ed842SYang Chen                    }
575*8d2ed842SYang Chen                ],
576*8d2ed842SYang Chen                "Type": "I2CFan"
577*8d2ed842SYang Chen            },
578*8d2ed842SYang Chen            {
579*8d2ed842SYang Chen                "Address": "0x5e",
580*8d2ed842SYang Chen                "Bus": "$bus",
581*8d2ed842SYang Chen                "Connector": {
582*8d2ed842SYang Chen                    "Name": "FCB_BOT_$bus * -1 + 21 FAN1_TACH_IL",
583*8d2ed842SYang Chen                    "Pwm": 2,
584*8d2ed842SYang Chen                    "PwmName": "FCB_BOT_$bus * -1 + 21 FAN1_PWM",
585*8d2ed842SYang Chen                    "Tachs": [
586*8d2ed842SYang Chen                        2
587*8d2ed842SYang Chen                    ]
588*8d2ed842SYang Chen                },
589*8d2ed842SYang Chen                "Index": 2,
590*8d2ed842SYang Chen                "Name": "FCB_BOT_$bus * -1 + 21 FAN1_TACH_IL_SPEED_RPM",
591*8d2ed842SYang Chen                "PowerState": "Always",
592*8d2ed842SYang Chen                "Thresholds": [
593*8d2ed842SYang Chen                    {
594*8d2ed842SYang Chen                        "Direction": "greater than",
595*8d2ed842SYang Chen                        "Name": "upper critical",
596*8d2ed842SYang Chen                        "Severity": 1,
597*8d2ed842SYang Chen                        "Value": 20000
598*8d2ed842SYang Chen                    },
599*8d2ed842SYang Chen                    {
600*8d2ed842SYang Chen                        "Direction": "less than",
601*8d2ed842SYang Chen                        "Name": "lower critical",
602*8d2ed842SYang Chen                        "Severity": 1,
603*8d2ed842SYang Chen                        "Value": 800
604*8d2ed842SYang Chen                    }
605*8d2ed842SYang Chen                ],
606*8d2ed842SYang Chen                "Type": "I2CFan"
607*8d2ed842SYang Chen            },
608*8d2ed842SYang Chen            {
609*8d2ed842SYang Chen                "Address": "0x5e",
610*8d2ed842SYang Chen                "Bus": "$bus",
611*8d2ed842SYang Chen                "Connector": {
612*8d2ed842SYang Chen                    "Name": "FCB_BOT_$bus * -1 + 21 FAN1_TACH_OL",
613*8d2ed842SYang Chen                    "Pwm": 2,
614*8d2ed842SYang Chen                    "PwmName": "FCB_BOT_$bus * -1 + 21 FAN1_PWM",
615*8d2ed842SYang Chen                    "Tachs": [
616*8d2ed842SYang Chen                        3
617*8d2ed842SYang Chen                    ]
618*8d2ed842SYang Chen                },
619*8d2ed842SYang Chen                "Index": 3,
620*8d2ed842SYang Chen                "Name": "FCB_BOT_$bus * -1 + 21 FAN1_TACH_OL_SPEED_RPM",
621*8d2ed842SYang Chen                "PowerState": "Always",
622*8d2ed842SYang Chen                "Thresholds": [
623*8d2ed842SYang Chen                    {
624*8d2ed842SYang Chen                        "Direction": "greater than",
625*8d2ed842SYang Chen                        "Name": "upper critical",
626*8d2ed842SYang Chen                        "Severity": 1,
627*8d2ed842SYang Chen                        "Value": 20000
628*8d2ed842SYang Chen                    },
629*8d2ed842SYang Chen                    {
630*8d2ed842SYang Chen                        "Direction": "less than",
631*8d2ed842SYang Chen                        "Name": "lower critical",
632*8d2ed842SYang Chen                        "Severity": 1,
633*8d2ed842SYang Chen                        "Value": 800
634*8d2ed842SYang Chen                    }
635*8d2ed842SYang Chen                ],
636*8d2ed842SYang Chen                "Type": "I2CFan"
637*8d2ed842SYang Chen            },
638*8d2ed842SYang Chen            {
639*8d2ed842SYang Chen                "Address": "0x5e",
640*8d2ed842SYang Chen                "Bus": "$bus",
641*8d2ed842SYang Chen                "Connector": {
642*8d2ed842SYang Chen                    "Name": "FCB_BOT_$bus * -1 + 21 FAN2_TACH_IL",
643*8d2ed842SYang Chen                    "Pwm": 2,
644*8d2ed842SYang Chen                    "PwmName": "FCB_BOT_$bus * -1 + 21 FAN2_PWM",
645*8d2ed842SYang Chen                    "Tachs": [
646*8d2ed842SYang Chen                        4
647*8d2ed842SYang Chen                    ]
648*8d2ed842SYang Chen                },
649*8d2ed842SYang Chen                "Index": 4,
650*8d2ed842SYang Chen                "Name": "FCB_BOT_$bus * -1 + 21 FAN2_TACH_IL_SPEED_RPM",
651*8d2ed842SYang Chen                "PowerState": "Always",
652*8d2ed842SYang Chen                "Thresholds": [
653*8d2ed842SYang Chen                    {
654*8d2ed842SYang Chen                        "Direction": "greater than",
655*8d2ed842SYang Chen                        "Name": "upper critical",
656*8d2ed842SYang Chen                        "Severity": 1,
657*8d2ed842SYang Chen                        "Value": 20000
658*8d2ed842SYang Chen                    },
659*8d2ed842SYang Chen                    {
660*8d2ed842SYang Chen                        "Direction": "less than",
661*8d2ed842SYang Chen                        "Name": "lower critical",
662*8d2ed842SYang Chen                        "Severity": 1,
663*8d2ed842SYang Chen                        "Value": 800
664*8d2ed842SYang Chen                    }
665*8d2ed842SYang Chen                ],
666*8d2ed842SYang Chen                "Type": "I2CFan"
667*8d2ed842SYang Chen            },
668*8d2ed842SYang Chen            {
669*8d2ed842SYang Chen                "Address": "0x5e",
670*8d2ed842SYang Chen                "Bus": "$bus",
671*8d2ed842SYang Chen                "Connector": {
672*8d2ed842SYang Chen                    "Name": "FCB_BOT_$bus * -1 + 21 FAN2_TACH_OL",
673*8d2ed842SYang Chen                    "Pwm": 2,
674*8d2ed842SYang Chen                    "PwmName": "FCB_BOT_$bus * -1 + 21 FAN2_PWM",
675*8d2ed842SYang Chen                    "Tachs": [
676*8d2ed842SYang Chen                        5
677*8d2ed842SYang Chen                    ]
678*8d2ed842SYang Chen                },
679*8d2ed842SYang Chen                "Index": 5,
680*8d2ed842SYang Chen                "Name": "FCB_BOT_$bus * -1 + 21 FAN2_TACH_OL_SPEED_RPM",
681*8d2ed842SYang Chen                "PowerState": "Always",
682*8d2ed842SYang Chen                "Thresholds": [
683*8d2ed842SYang Chen                    {
684*8d2ed842SYang Chen                        "Direction": "greater than",
685*8d2ed842SYang Chen                        "Name": "upper critical",
686*8d2ed842SYang Chen                        "Severity": 1,
687*8d2ed842SYang Chen                        "Value": 20000
688*8d2ed842SYang Chen                    },
689*8d2ed842SYang Chen                    {
690*8d2ed842SYang Chen                        "Direction": "less than",
691*8d2ed842SYang Chen                        "Name": "lower critical",
692*8d2ed842SYang Chen                        "Severity": 1,
693*8d2ed842SYang Chen                        "Value": 800
694*8d2ed842SYang Chen                    }
695*8d2ed842SYang Chen                ],
696*8d2ed842SYang Chen                "Type": "I2CFan"
697*8d2ed842SYang Chen            },
698*8d2ed842SYang Chen            {
699*8d2ed842SYang Chen                "Address": "0x5e",
700*8d2ed842SYang Chen                "Bus": "$bus",
701*8d2ed842SYang Chen                "Connector": {
702*8d2ed842SYang Chen                    "Name": "FCB_BOT_$bus * -1 + 21 FAN3_TACH_IL",
703*8d2ed842SYang Chen                    "Pwm": 2,
704*8d2ed842SYang Chen                    "PwmName": "FCB_BOT_$bus * -1 + 21 FAN3_PWM",
705*8d2ed842SYang Chen                    "Tachs": [
706*8d2ed842SYang Chen                        6
707*8d2ed842SYang Chen                    ]
708*8d2ed842SYang Chen                },
709*8d2ed842SYang Chen                "Index": 6,
710*8d2ed842SYang Chen                "Name": "FCB_BOT_$bus * -1 + 21 FAN3_TACH_IL_SPEED_RPM",
711*8d2ed842SYang Chen                "PowerState": "Always",
712*8d2ed842SYang Chen                "Thresholds": [
713*8d2ed842SYang Chen                    {
714*8d2ed842SYang Chen                        "Direction": "greater than",
715*8d2ed842SYang Chen                        "Name": "upper critical",
716*8d2ed842SYang Chen                        "Severity": 1,
717*8d2ed842SYang Chen                        "Value": 20000
718*8d2ed842SYang Chen                    },
719*8d2ed842SYang Chen                    {
720*8d2ed842SYang Chen                        "Direction": "less than",
721*8d2ed842SYang Chen                        "Name": "lower critical",
722*8d2ed842SYang Chen                        "Severity": 1,
723*8d2ed842SYang Chen                        "Value": 800
724*8d2ed842SYang Chen                    }
725*8d2ed842SYang Chen                ],
726*8d2ed842SYang Chen                "Type": "I2CFan"
727*8d2ed842SYang Chen            },
728*8d2ed842SYang Chen            {
729*8d2ed842SYang Chen                "Address": "0x5e",
730*8d2ed842SYang Chen                "Bus": "$bus",
731*8d2ed842SYang Chen                "Connector": {
732*8d2ed842SYang Chen                    "Name": "FCB_BOT_$bus * -1 + 21 FAN3_TACH_OL",
733*8d2ed842SYang Chen                    "Pwm": 2,
734*8d2ed842SYang Chen                    "PwmName": "FCB_BOT_$bus * -1 + 21 FAN3_PWM",
735*8d2ed842SYang Chen                    "Tachs": [
736*8d2ed842SYang Chen                        7
737*8d2ed842SYang Chen                    ]
738*8d2ed842SYang Chen                },
739*8d2ed842SYang Chen                "Index": 7,
740*8d2ed842SYang Chen                "Name": "FCB_BOT_$bus * -1 + 21 FAN3_TACH_OL_SPEED_RPM",
741*8d2ed842SYang Chen                "PowerState": "Always",
742*8d2ed842SYang Chen                "Thresholds": [
743*8d2ed842SYang Chen                    {
744*8d2ed842SYang Chen                        "Direction": "greater than",
745*8d2ed842SYang Chen                        "Name": "upper critical",
746*8d2ed842SYang Chen                        "Severity": 1,
747*8d2ed842SYang Chen                        "Value": 20000
748*8d2ed842SYang Chen                    },
749*8d2ed842SYang Chen                    {
750*8d2ed842SYang Chen                        "Direction": "less than",
751*8d2ed842SYang Chen                        "Name": "lower critical",
752*8d2ed842SYang Chen                        "Severity": 1,
753*8d2ed842SYang Chen                        "Value": 800
754*8d2ed842SYang Chen                    }
755*8d2ed842SYang Chen                ],
756*8d2ed842SYang Chen                "Type": "I2CFan"
757*8d2ed842SYang Chen            }
758*8d2ed842SYang Chen        ],
759*8d2ed842SYang Chen        "Name": "Minerva Bottom Fan Board $bus * -1 + 21",
760*8d2ed842SYang Chen        "Probe": [
761*8d2ed842SYang Chen            "xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'Minerva Fan Board.*', 'BUS': 20})",
762*8d2ed842SYang Chen            "OR",
763*8d2ed842SYang Chen            "xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'Minerva Fan Board.*', 'BUS': 21})"
764*8d2ed842SYang Chen        ],
765*8d2ed842SYang Chen        "Type": "Board",
766*8d2ed842SYang Chen        "xyz.openbmc_project.Inventory.Decorator.Asset": {
767*8d2ed842SYang Chen            "Manufacturer": "$PRODUCT_MANUFACTURER",
768*8d2ed842SYang Chen            "Model": "$PRODUCT_PRODUCT_NAME",
769*8d2ed842SYang Chen            "PartNumber": "$PRODUCT_PART_NUMBER",
770*8d2ed842SYang Chen            "SerialNumber": "$PRODUCT_SERIAL_NUMBER"
771*8d2ed842SYang Chen        }
772*8d2ed842SYang Chen    }
773*8d2ed842SYang Chen]
774