1{
2    "version": "R05",
3    "sensors": [
4        {
5            "name": "fan0",
6            "type": "fan",
7            "readPath": "/xyz/openbmc_project/sensors/fan_tach/fan0",
8            "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/@Fan_0_To_4_Hwmon@/pwm1",
9            "min": 0,
10            "max": 255
11        },
12        {
13            "name": "fan1",
14            "type": "fan",
15            "readPath": "/xyz/openbmc_project/sensors/fan_tach/fan1",
16            "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/@Fan_0_To_4_Hwmon@/pwm2",
17            "min": 0,
18            "max": 255
19        },
20        {
21            "name": "fb_fan0",
22            "type": "fan",
23            "readPath": "/xyz/openbmc_project/sensors/fan_tach/fb_fan0",
24            "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/@Fan_0_To_4_Hwmon@/pwm3",
25            "min": 0,
26            "max": 255
27        },
28        {
29            "name": "fb_fan1",
30            "type": "fan",
31            "readPath": "/xyz/openbmc_project/sensors/fan_tach/fb_fan1",
32            "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/@Fan_0_To_4_Hwmon@/pwm4",
33            "min": 0,
34            "max": 255
35        },
36        {
37            "name": "fb_fan2",
38            "type": "fan",
39            "readPath": "/xyz/openbmc_project/sensors/fan_tach/fb_fan2",
40            "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/@Fan_0_To_4_Hwmon@/pwm5",
41            "min": 0,
42            "max": 255
43        },
44        {
45            "name": "fleeting0",
46            "type": "margin",
47            "readPath": "/xyz/openbmc_project/extsensors/margin/fleeting0",
48            "writePath": "",
49            "min": 0,
50            "max": 0,
51            "ignoreDbusMinMax": true,
52            "timeout": 0
53        },
54        {
55            "name": "fleeting1",
56            "type": "margin",
57            "readPath": "/xyz/openbmc_project/extsensors/margin/fleeting1",
58            "writePath": "",
59            "min": 0,
60            "max": 0,
61            "ignoreDbusMinMax": true,
62            "timeout": 0
63        },
64        {
65            "name": "fleeting2",
66            "type": "margin",
67            "readPath": "/xyz/openbmc_project/extsensors/margin/fleeting2",
68            "writePath": "",
69            "min": 0,
70            "max": 0,
71            "ignoreDbusMinMax": true,
72            "timeout": 0
73        },
74        {
75            "name": "cputemp",
76            "type": "margin",
77            "readPath": "/xyz/openbmc_project/extsensors/margin/cputemp",
78            "writePath": "",
79            "min": 0,
80            "max": 0,
81            "ignoreDbusMinMax": true,
82            "timeout": 0
83        },
84        {
85            "name": "zone0_vr",
86            "type": "margin",
87            "readPath": "/xyz/openbmc_project/extsensors/margin/zone0_vr",
88            "writePath": "",
89            "min": 0,
90            "max": 0,
91            "ignoreDbusMinMax": true,
92            "timeout": 0
93        },
94        {
95            "name": "nvme",
96            "type": "margin",
97            "readPath": "/xyz/openbmc_project/extsensors/margin/nvme",
98            "writePath": "",
99            "min": 0,
100            "max": 0,
101            "ignoreDbusMinMax": true,
102            "timeout": 0
103        },
104        {
105            "name": "p12v_fan",
106            "type": "margin",
107            "readPath": "/xyz/openbmc_project/extsensors/margin/p12v_fan",
108            "writePath": "",
109            "min": 0,
110            "max": 0,
111            "ignoreDbusMinMax": true,
112            "timeout": 0
113        }
114    ],
115    "zones": [
116        {
117            "id": 0,
118            "minThermalOutput": 0.0,
119            "failsafePercent": 100.0,
120            "pids": [
121                {
122                    "name": "fan0",
123                    "type": "fan",
124                    "inputs": [
125                        "fan0"
126                    ],
127                    "setpoint": 0.0,
128                    "pid": {
129                        "samplePeriod": 0.1,
130                        "proportionalCoeff": 0.0,
131                        "integralCoeff": 0.0,
132                        "feedFwdOffsetCoeff": 0.0,
133                        "feedFwdGainCoeff": 0.0056,
134                        "integralLimit_min": 0.0,
135                        "integralLimit_max": 0.0,
136                        "outLim_min": 15.0,
137                        "outLim_max": 100.0,
138                        "slewNeg": 0.0,
139                        "slewPos": 0.0
140                    }
141                },
142                {
143                    "name": "fan1",
144                    "type": "fan",
145                    "inputs": [
146                        "fan1"
147                    ],
148                    "setpoint": 0.0,
149                    "pid": {
150                        "samplePeriod": 0.1,
151                        "proportionalCoeff": 0.0,
152                        "integralCoeff": 0.0,
153                        "feedFwdOffsetCoeff": 0.0,
154                        "feedFwdGainCoeff": 0.0056,
155                        "integralLimit_min": 0.0,
156                        "integralLimit_max": 0.0,
157                        "outLim_min": 15.0,
158                        "outLim_max": 100.0,
159                        "slewNeg": 0.0,
160                        "slewPos": 0.0
161                    }
162                },
163                {
164                    "name": "cputemp",
165                    "type": "margin",
166                    "inputs": [
167                        "cputemp"
168                    ],
169                    "setpoint": 10.0,
170                    "pid": {
171                        "samplePeriod": 1.0,
172                        "proportionalCoeff": 714.0,
173                        "integralCoeff": 9.0,
174                        "feedFwdOffsetCoeff": 0.0,
175                        "feedFwdGainCoeff": 0.0,
176                        "integralLimit_min": 2679.0,
177                        "integralLimit_max": 18000.0,
178                        "outLim_min": 2679.0,
179                        "outLim_max": 18000.0,
180                        "slewNeg": 0.0,
181                        "slewPos": 0.0,
182                        "positiveHysteresis": 0.0,
183                        "negativeHysteresis": 0.0
184                    }
185                },
186                {
187                    "name": "zone0_vr",
188                    "type": "margin",
189                    "inputs": [
190                        "zone0_vr"
191                    ],
192                    "setpoint": 10.0,
193                    "pid": {
194                        "samplePeriod": 1.0,
195                        "proportionalCoeff": 536.0,
196                        "integralCoeff": 9.0,
197                        "feedFwdOffsetCoeff": 0.0,
198                        "feedFwdGainCoeff": 0.0,
199                        "integralLimit_min": 2679.0,
200                        "integralLimit_max": 18000.0,
201                        "outLim_min": 2679.0,
202                        "outLim_max": 18000.0,
203                        "slewNeg": 0.0,
204                        "slewPos": 0.0,
205                        "positiveHysteresis": 0.0,
206                        "negativeHysteresis": 0.0
207                    }
208                },
209                {
210                    "name": "fleeting0",
211                    "type": "margin",
212                    "inputs": [
213                        "fleeting0"
214                    ],
215                    "setpoint": 10.0,
216                    "pid": {
217                        "samplePeriod": 1.0,
218                        "proportionalCoeff": 536.0,
219                        "integralCoeff": 9.0,
220                        "feedFwdOffsetCoeff": 0.0,
221                        "feedFwdGainCoeff": 0.0,
222                        "integralLimit_min": 2679.0,
223                        "integralLimit_max": 18000.0,
224                        "outLim_min": 2679.0,
225                        "outLim_max": 18000.0,
226                        "slewNeg": 0.0,
227                        "slewPos": 0.0,
228                        "positiveHysteresis": 0.0,
229                        "negativeHysteresis": 0.0
230                    }
231                },
232                {
233                    "name": "fleeting1",
234                    "type": "margin",
235                    "inputs": [
236                        "fleeting1"
237                    ],
238                    "setpoint": 10.0,
239                    "pid": {
240                        "samplePeriod": 1.0,
241                        "proportionalCoeff": 536.0,
242                        "integralCoeff": 18.0,
243                        "feedFwdOffsetCoeff": 0.0,
244                        "feedFwdGainCoeff": 0.0,
245                        "integralLimit_min": 2679.0,
246                        "integralLimit_max": 18000.0,
247                        "outLim_min": 2679.0,
248                        "outLim_max": 18000.0,
249                        "slewNeg": 0.0,
250                        "slewPos": 0.0,
251                        "positiveHysteresis": 0.0,
252                        "negativeHysteresis": 0.0
253                    }
254                },
255                {
256                    "name": "fleeting2",
257                    "type": "margin",
258                    "inputs": [
259                        "fleeting2"
260                    ],
261                    "setpoint": 10.0,
262                    "pid": {
263                        "samplePeriod": 1.0,
264                        "proportionalCoeff": 536.0,
265                        "integralCoeff": 18.0,
266                        "feedFwdOffsetCoeff": 0.0,
267                        "feedFwdGainCoeff": 0.0,
268                        "integralLimit_min": 2679.0,
269                        "integralLimit_max": 18000.0,
270                        "outLim_min": 2679.0,
271                        "outLim_max": 18000.0,
272                        "slewNeg": 0.0,
273                        "slewPos": 0.0,
274                        "positiveHysteresis": 0.0,
275                        "negativeHysteresis": 0.0
276                    }
277                }
278            ]
279        },
280        {
281            "id": 1,
282            "minThermalOutput": 0.0,
283            "failsafePercent": 100.0,
284            "pids": [
285                {
286                    "name": "fb_fan0",
287                    "type": "fan",
288                    "inputs": [
289                        "fb_fan0"
290                    ],
291                    "setpoint": 0.0,
292                    "pid": {
293                        "samplePeriod": 0.1,
294                        "proportionalCoeff": 0.0,
295                        "integralCoeff": 0.0,
296                        "feedFwdOffsetCoeff": 0.0,
297                        "feedFwdGainCoeff": 0.0056,
298                        "integralLimit_min": 0.0,
299                        "integralLimit_max": 0.0,
300                        "outLim_min": 15.0,
301                        "outLim_max": 100.0,
302                        "slewNeg": 0.0,
303                        "slewPos": 0.0
304                    }
305                },
306                {
307                    "name": "fb_fan1",
308                    "type": "fan",
309                    "inputs": [
310                        "fb_fan1"
311                    ],
312                    "setpoint": 0.0,
313                    "pid": {
314                        "samplePeriod": 0.1,
315                        "proportionalCoeff": 0.0,
316                        "integralCoeff": 0.0,
317                        "feedFwdOffsetCoeff": 0.0,
318                        "feedFwdGainCoeff": 0.0056,
319                        "integralLimit_min": 0.0,
320                        "integralLimit_max": 0.0,
321                        "outLim_min": 15.0,
322                        "outLim_max": 100.0,
323                        "slewNeg": 0.0,
324                        "slewPos": 0.0
325                    }
326                },
327                {
328                    "name": "fb_fan2",
329                    "type": "fan",
330                    "inputs": [
331                        "fb_fan2"
332                    ],
333                    "setpoint": 0.0,
334                    "pid": {
335                        "samplePeriod": 0.1,
336                        "proportionalCoeff": 0.0,
337                        "integralCoeff": 0.0,
338                        "feedFwdOffsetCoeff": 0.0,
339                        "feedFwdGainCoeff": 0.0056,
340                        "integralLimit_min": 0.0,
341                        "integralLimit_max": 0.0,
342                        "outLim_min": 15.0,
343                        "outLim_max": 100.0,
344                        "slewNeg": 0.0,
345                        "slewPos": 0.0
346                    }
347                },
348                {
349                    "name": "nvme",
350                    "type": "margin",
351                    "inputs": [
352                        "nvme"
353                    ],
354                    "setpoint": 10.0,
355                    "pid": {
356                        "samplePeriod": 1.0,
357                        "proportionalCoeff": 1250.0,
358                        "integralCoeff": 12.0,
359                        "feedFwdOffsetCoeff": 0.0,
360                        "feedFwdGainCoeff": 0.0,
361                        "integralLimit_min": 2679.0,
362                        "integralLimit_max": 18000.0,
363                        "outLim_min": 2679.0,
364                        "outLim_max": 18000.0,
365                        "slewNeg": 0.0,
366                        "slewPos": 0.0,
367                        "positiveHysteresis": 0.0,
368                        "negativeHysteresis": 0.0
369                    }
370                },
371                {
372                    "name": "p12v_fan",
373                    "type": "margin",
374                    "inputs": [
375                        "p12v_fan"
376                    ],
377                    "setpoint": 10.0,
378                    "pid": {
379                        "samplePeriod": 1.0,
380                        "proportionalCoeff": 268.0,
381                        "integralCoeff": 4.0,
382                        "feedFwdOffsetCoeff": 0.0,
383                        "feedFwdGainCoeff": 0.0,
384                        "integralLimit_min": 2679.0,
385                        "integralLimit_max": 18000.0,
386                        "outLim_min": 2679.0,
387                        "outLim_max": 18000.0,
388                        "slewNeg": 0.0,
389                        "slewPos": 0.0,
390                        "positiveHysteresis": 0.0,
391                        "negativeHysteresis": 0.0
392                    }
393                }
394            ]
395        }
396    ]
397}
398