Skip to content

Commit 8524e56

Browse files
authored
PDDF: Supporting extra system fans in the common PDDF drivers (#15956)
1 parent 803c71c commit 8524e56

File tree

3 files changed

+132
-0
lines changed

3 files changed

+132
-0
lines changed

platform/pddf/i2c/modules/fan/driver/pddf_fan_api.c

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,18 @@ void get_fan_extra_default_sysfs(int idx, char *str)
106106
break;
107107
case FAN12_PRESENT:
108108
strcpy(str, "fan12_status");
109+
break;
110+
case FAN13_PRESENT:
111+
strcpy(str, "fan13_status");
112+
break;
113+
case FAN14_PRESENT:
114+
strcpy(str, "fan14_status");
115+
break;
116+
case FAN15_PRESENT:
117+
strcpy(str, "fan15_status");
118+
break;
119+
case FAN16_PRESENT:
120+
strcpy(str, "fan16_status");
109121
break;
110122
default:
111123
break;
@@ -242,6 +254,10 @@ ssize_t fan_show_default(struct device *dev, struct device_attribute *da, char *
242254
case FAN10_PRESENT:
243255
case FAN11_PRESENT:
244256
case FAN12_PRESENT:
257+
case FAN13_PRESENT:
258+
case FAN14_PRESENT:
259+
case FAN15_PRESENT:
260+
case FAN16_PRESENT:
245261
case FAN1_DIRECTION:
246262
case FAN2_DIRECTION:
247263
case FAN3_DIRECTION:
@@ -254,6 +270,10 @@ ssize_t fan_show_default(struct device *dev, struct device_attribute *da, char *
254270
case FAN10_DIRECTION:
255271
case FAN11_DIRECTION:
256272
case FAN12_DIRECTION:
273+
case FAN13_DIRECTION:
274+
case FAN14_DIRECTION:
275+
case FAN15_DIRECTION:
276+
case FAN16_DIRECTION:
257277
case FAN1_INPUT:
258278
case FAN2_INPUT:
259279
case FAN3_INPUT:
@@ -266,6 +286,10 @@ ssize_t fan_show_default(struct device *dev, struct device_attribute *da, char *
266286
case FAN10_INPUT:
267287
case FAN11_INPUT:
268288
case FAN12_INPUT:
289+
case FAN13_INPUT:
290+
case FAN14_INPUT:
291+
case FAN15_INPUT:
292+
case FAN16_INPUT:
269293
case FAN1_PWM:
270294
case FAN2_PWM:
271295
case FAN3_PWM:
@@ -278,6 +302,10 @@ ssize_t fan_show_default(struct device *dev, struct device_attribute *da, char *
278302
case FAN10_PWM:
279303
case FAN11_PWM:
280304
case FAN12_PWM:
305+
case FAN13_PWM:
306+
case FAN14_PWM:
307+
case FAN15_PWM:
308+
case FAN16_PWM:
281309
case FAN1_FAULT:
282310
case FAN2_FAULT:
283311
case FAN3_FAULT:
@@ -290,6 +318,10 @@ ssize_t fan_show_default(struct device *dev, struct device_attribute *da, char *
290318
case FAN10_FAULT:
291319
case FAN11_FAULT:
292320
case FAN12_FAULT:
321+
case FAN13_FAULT:
322+
case FAN14_FAULT:
323+
case FAN15_FAULT:
324+
case FAN16_FAULT:
293325
case FAN_DUTY_CYCLE:
294326
status = attr_info->val.intval;
295327
break;
@@ -359,6 +391,10 @@ ssize_t fan_store_default(struct device *dev, struct device_attribute *da, const
359391
case FAN10_PWM:
360392
case FAN11_PWM:
361393
case FAN12_PWM:
394+
case FAN13_PWM:
395+
case FAN14_PWM:
396+
case FAN15_PWM:
397+
case FAN16_PWM:
362398
ret = kstrtoint(buf, 10, &val);
363399
if (ret)
364400
{

platform/pddf/i2c/modules/fan/driver/pddf_fan_driver.c

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,14 @@ FAN_SYSFS_ATTR_DATA data_fan11_present = {FAN11_PRESENT, S_IRUGO, fan_show_defau
7777
EXPORT_SYMBOL(data_fan11_present);
7878
FAN_SYSFS_ATTR_DATA data_fan12_present = {FAN12_PRESENT, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_present_default, NULL, NULL, NULL, NULL, NULL, NULL};
7979
EXPORT_SYMBOL(data_fan12_present);
80+
FAN_SYSFS_ATTR_DATA data_fan13_present = {FAN13_PRESENT, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_present_default, NULL, NULL, NULL, NULL, NULL, NULL};
81+
EXPORT_SYMBOL(data_fan13_present);
82+
FAN_SYSFS_ATTR_DATA data_fan14_present = {FAN14_PRESENT, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_present_default, NULL, NULL, NULL, NULL, NULL, NULL};
83+
EXPORT_SYMBOL(data_fan14_present);
84+
FAN_SYSFS_ATTR_DATA data_fan15_present = {FAN15_PRESENT, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_present_default, NULL, NULL, NULL, NULL, NULL, NULL};
85+
EXPORT_SYMBOL(data_fan15_present);
86+
FAN_SYSFS_ATTR_DATA data_fan16_present = {FAN16_PRESENT, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_present_default, NULL, NULL, NULL, NULL, NULL, NULL};
87+
EXPORT_SYMBOL(data_fan16_present);
8088

8189

8290
FAN_SYSFS_ATTR_DATA data_fan1_direction = {FAN1_DIRECTION, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_direction_default, NULL, NULL, NULL, NULL, NULL, NULL};
@@ -103,6 +111,14 @@ FAN_SYSFS_ATTR_DATA data_fan11_direction = {FAN11_DIRECTION, S_IRUGO, fan_show_d
103111
EXPORT_SYMBOL(data_fan11_direction);
104112
FAN_SYSFS_ATTR_DATA data_fan12_direction = {FAN12_DIRECTION, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_direction_default, NULL, NULL, NULL, NULL, NULL, NULL};
105113
EXPORT_SYMBOL(data_fan12_direction);
114+
FAN_SYSFS_ATTR_DATA data_fan13_direction = {FAN13_DIRECTION, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_direction_default, NULL, NULL, NULL, NULL, NULL, NULL};
115+
EXPORT_SYMBOL(data_fan13_direction);
116+
FAN_SYSFS_ATTR_DATA data_fan14_direction = {FAN14_DIRECTION, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_direction_default, NULL, NULL, NULL, NULL, NULL, NULL};
117+
EXPORT_SYMBOL(data_fan14_direction);
118+
FAN_SYSFS_ATTR_DATA data_fan15_direction = {FAN15_DIRECTION, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_direction_default, NULL, NULL, NULL, NULL, NULL, NULL};
119+
EXPORT_SYMBOL(data_fan15_direction);
120+
FAN_SYSFS_ATTR_DATA data_fan16_direction = {FAN16_DIRECTION, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_direction_default, NULL, NULL, NULL, NULL, NULL, NULL};
121+
EXPORT_SYMBOL(data_fan16_direction);
106122

107123

108124
FAN_SYSFS_ATTR_DATA data_fan1_input = {FAN1_INPUT, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_rpm_default, NULL, NULL, NULL, NULL, NULL, NULL};
@@ -129,6 +145,14 @@ FAN_SYSFS_ATTR_DATA data_fan11_input = {FAN11_INPUT, S_IRUGO, fan_show_default,
129145
EXPORT_SYMBOL(data_fan11_input);
130146
FAN_SYSFS_ATTR_DATA data_fan12_input = {FAN12_INPUT, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_rpm_default, NULL, NULL, NULL, NULL, NULL, NULL};
131147
EXPORT_SYMBOL(data_fan12_input);
148+
FAN_SYSFS_ATTR_DATA data_fan13_input = {FAN13_INPUT, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_rpm_default, NULL, NULL, NULL, NULL, NULL, NULL};
149+
EXPORT_SYMBOL(data_fan13_input);
150+
FAN_SYSFS_ATTR_DATA data_fan14_input = {FAN14_INPUT, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_rpm_default, NULL, NULL, NULL, NULL, NULL, NULL};
151+
EXPORT_SYMBOL(data_fan14_input);
152+
FAN_SYSFS_ATTR_DATA data_fan15_input = {FAN15_INPUT, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_rpm_default, NULL, NULL, NULL, NULL, NULL, NULL};
153+
EXPORT_SYMBOL(data_fan15_input);
154+
FAN_SYSFS_ATTR_DATA data_fan16_input = {FAN16_INPUT, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_rpm_default, NULL, NULL, NULL, NULL, NULL, NULL};
155+
EXPORT_SYMBOL(data_fan16_input);
132156

133157

134158
FAN_SYSFS_ATTR_DATA data_fan1_pwm = {FAN1_PWM, S_IRUGO | S_IWUSR, fan_show_default, NULL, sonic_i2c_get_fan_pwm_default, NULL, fan_store_default, NULL, sonic_i2c_set_fan_pwm_default, NULL, NULL};
@@ -155,6 +179,14 @@ FAN_SYSFS_ATTR_DATA data_fan11_pwm = {FAN11_PWM, S_IRUGO | S_IWUSR, fan_show_def
155179
EXPORT_SYMBOL(data_fan11_pwm);
156180
FAN_SYSFS_ATTR_DATA data_fan12_pwm = {FAN12_PWM, S_IRUGO | S_IWUSR, fan_show_default, NULL, sonic_i2c_get_fan_pwm_default, NULL, fan_store_default, NULL, sonic_i2c_set_fan_pwm_default, NULL, NULL};
157181
EXPORT_SYMBOL(data_fan12_pwm);
182+
FAN_SYSFS_ATTR_DATA data_fan13_pwm = {FAN13_PWM, S_IRUGO | S_IWUSR, fan_show_default, NULL, sonic_i2c_get_fan_pwm_default, NULL, fan_store_default, NULL, sonic_i2c_set_fan_pwm_default, NULL, NULL};
183+
EXPORT_SYMBOL(data_fan13_pwm);
184+
FAN_SYSFS_ATTR_DATA data_fan14_pwm = {FAN14_PWM, S_IRUGO | S_IWUSR, fan_show_default, NULL, sonic_i2c_get_fan_pwm_default, NULL, fan_store_default, NULL, sonic_i2c_set_fan_pwm_default, NULL, NULL};
185+
EXPORT_SYMBOL(data_fan14_pwm);
186+
FAN_SYSFS_ATTR_DATA data_fan15_pwm = {FAN15_PWM, S_IRUGO | S_IWUSR, fan_show_default, NULL, sonic_i2c_get_fan_pwm_default, NULL, fan_store_default, NULL, sonic_i2c_set_fan_pwm_default, NULL, NULL};
187+
EXPORT_SYMBOL(data_fan15_pwm);
188+
FAN_SYSFS_ATTR_DATA data_fan16_pwm = {FAN16_PWM, S_IRUGO | S_IWUSR, fan_show_default, NULL, sonic_i2c_get_fan_pwm_default, NULL, fan_store_default, NULL, sonic_i2c_set_fan_pwm_default, NULL, NULL};
189+
EXPORT_SYMBOL(data_fan16_pwm);
158190

159191

160192
FAN_SYSFS_ATTR_DATA data_fan1_fault = {FAN1_FAULT, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_fault_default, NULL, NULL, NULL, NULL, NULL, NULL};
@@ -181,6 +213,14 @@ FAN_SYSFS_ATTR_DATA data_fan11_fault = {FAN11_FAULT, S_IRUGO, fan_show_default,
181213
EXPORT_SYMBOL(data_fan11_fault);
182214
FAN_SYSFS_ATTR_DATA data_fan12_fault = {FAN12_FAULT, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_fault_default, NULL, NULL, NULL, NULL, NULL, NULL};
183215
EXPORT_SYMBOL(data_fan12_fault);
216+
FAN_SYSFS_ATTR_DATA data_fan13_fault = {FAN13_FAULT, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_fault_default, NULL, NULL, NULL, NULL, NULL, NULL};
217+
EXPORT_SYMBOL(data_fan13_fault);
218+
FAN_SYSFS_ATTR_DATA data_fan14_fault = {FAN14_FAULT, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_fault_default, NULL, NULL, NULL, NULL, NULL, NULL};
219+
EXPORT_SYMBOL(data_fan14_fault);
220+
FAN_SYSFS_ATTR_DATA data_fan15_fault = {FAN15_FAULT, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_fault_default, NULL, NULL, NULL, NULL, NULL, NULL};
221+
EXPORT_SYMBOL(data_fan15_fault);
222+
FAN_SYSFS_ATTR_DATA data_fan16_fault = {FAN16_FAULT, S_IRUGO, fan_show_default, NULL, sonic_i2c_get_fan_fault_default, NULL, NULL, NULL, NULL, NULL, NULL};
223+
EXPORT_SYMBOL(data_fan16_fault);
184224

185225
/* Derived attributes like status (should be derived from 'presence' and 'speed'/'fault' attributes) etc */
186226
FAN_SYSFS_ATTR_DATA data_fan1_status = {FAN1_STATUS, S_IRUGO, fan_show_status, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
@@ -207,6 +247,14 @@ FAN_SYSFS_ATTR_DATA data_fan11_status = {FAN11_STATUS, S_IRUGO, fan_show_status,
207247
EXPORT_SYMBOL(data_fan11_status);
208248
FAN_SYSFS_ATTR_DATA data_fan12_status = {FAN12_STATUS, S_IRUGO, fan_show_status, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
209249
EXPORT_SYMBOL(data_fan12_status);
250+
FAN_SYSFS_ATTR_DATA data_fan13_status = {FAN13_STATUS, S_IRUGO, fan_show_status, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
251+
EXPORT_SYMBOL(data_fan13_status);
252+
FAN_SYSFS_ATTR_DATA data_fan14_status = {FAN14_STATUS, S_IRUGO, fan_show_status, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
253+
EXPORT_SYMBOL(data_fan14_status);
254+
FAN_SYSFS_ATTR_DATA data_fan15_status = {FAN15_STATUS, S_IRUGO, fan_show_status, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
255+
EXPORT_SYMBOL(data_fan15_status);
256+
FAN_SYSFS_ATTR_DATA data_fan16_status = {FAN16_STATUS, S_IRUGO, fan_show_status, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
257+
EXPORT_SYMBOL(data_fan16_status);
210258

211259
/* Some generic fan attributes */
212260
FAN_SYSFS_ATTR_DATA data_fan_duty_cycle = {FAN_DUTY_CYCLE, S_IRUGO | S_IWUSR, fan_show_default, NULL, sonic_i2c_get_fan_dc_default, NULL, fan_store_default, NULL, sonic_i2c_set_fan_dc_default, NULL, NULL};
@@ -238,6 +286,10 @@ FAN_SYSFS_ATTR_DATA_ENTRY fan_sysfs_attr_data_tbl[]=
238286
{ "fan10_present", &data_fan10_present},
239287
{ "fan11_present", &data_fan11_present},
240288
{ "fan12_present", &data_fan12_present},
289+
{ "fan13_present", &data_fan13_present},
290+
{ "fan14_present", &data_fan14_present},
291+
{ "fan15_present", &data_fan15_present},
292+
{ "fan16_present", &data_fan16_present},
241293
{ "fan1_direction", &data_fan1_direction},
242294
{ "fan2_direction", &data_fan2_direction},
243295
{ "fan3_direction", &data_fan3_direction},
@@ -250,6 +302,10 @@ FAN_SYSFS_ATTR_DATA_ENTRY fan_sysfs_attr_data_tbl[]=
250302
{ "fan10_direction", &data_fan10_direction},
251303
{ "fan11_direction", &data_fan11_direction},
252304
{ "fan12_direction", &data_fan12_direction},
305+
{ "fan13_direction", &data_fan13_direction},
306+
{ "fan14_direction", &data_fan14_direction},
307+
{ "fan15_direction", &data_fan15_direction},
308+
{ "fan16_direction", &data_fan16_direction},
253309
{ "fan1_input", &data_fan1_input},
254310
{ "fan2_input", &data_fan2_input},
255311
{ "fan3_input", &data_fan3_input},
@@ -262,6 +318,10 @@ FAN_SYSFS_ATTR_DATA_ENTRY fan_sysfs_attr_data_tbl[]=
262318
{ "fan10_input", &data_fan10_input},
263319
{ "fan11_input", &data_fan11_input},
264320
{ "fan12_input", &data_fan12_input},
321+
{ "fan13_input", &data_fan13_input},
322+
{ "fan14_input", &data_fan14_input},
323+
{ "fan15_input", &data_fan15_input},
324+
{ "fan16_input", &data_fan16_input},
265325
{ "fan1_pwm", &data_fan1_pwm},
266326
{ "fan2_pwm", &data_fan2_pwm},
267327
{ "fan3_pwm", &data_fan3_pwm},
@@ -274,6 +334,10 @@ FAN_SYSFS_ATTR_DATA_ENTRY fan_sysfs_attr_data_tbl[]=
274334
{ "fan10_pwm", &data_fan10_pwm},
275335
{ "fan11_pwm", &data_fan11_pwm},
276336
{ "fan12_pwm", &data_fan12_pwm},
337+
{ "fan13_pwm", &data_fan13_pwm},
338+
{ "fan14_pwm", &data_fan14_pwm},
339+
{ "fan15_pwm", &data_fan15_pwm},
340+
{ "fan16_pwm", &data_fan16_pwm},
277341
{ "fan1_fault", &data_fan1_fault},
278342
{ "fan2_fault", &data_fan2_fault},
279343
{ "fan3_fault", &data_fan3_fault},
@@ -286,6 +350,10 @@ FAN_SYSFS_ATTR_DATA_ENTRY fan_sysfs_attr_data_tbl[]=
286350
{ "fan10_fault", &data_fan10_fault},
287351
{ "fan11_fault", &data_fan11_fault},
288352
{ "fan12_fault", &data_fan12_fault},
353+
{ "fan13_fault", &data_fan13_fault},
354+
{ "fan14_fault", &data_fan14_fault},
355+
{ "fan15_fault", &data_fan15_fault},
356+
{ "fan16_fault", &data_fan16_fault},
289357
{ "fan1_status", &data_fan1_status},
290358
{ "fan2_status", &data_fan2_status},
291359
{ "fan3_status", &data_fan3_status},
@@ -298,6 +366,10 @@ FAN_SYSFS_ATTR_DATA_ENTRY fan_sysfs_attr_data_tbl[]=
298366
{ "fan10_status", &data_fan10_status},
299367
{ "fan11_status", &data_fan11_status},
300368
{ "fan12_status", &data_fan12_status},
369+
{ "fan13_status", &data_fan13_status},
370+
{ "fan14_status", &data_fan14_status},
371+
{ "fan15_status", &data_fan15_status},
372+
{ "fan16_status", &data_fan16_status},
301373
{ "fan_duty_cycle", &data_fan_duty_cycle},
302374
{ "fan_model_name", &data_fan_model_name},
303375
{ "fan_serial_num", &data_fan_serial_num},

platform/pddf/i2c/modules/include/pddf_fan_driver.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ enum fan_sysfs_attributes {
3232
FAN10_PRESENT,
3333
FAN11_PRESENT,
3434
FAN12_PRESENT,
35+
FAN13_PRESENT,
36+
FAN14_PRESENT,
37+
FAN15_PRESENT,
38+
FAN16_PRESENT,
3539
FAN1_DIRECTION,
3640
FAN2_DIRECTION,
3741
FAN3_DIRECTION,
@@ -44,6 +48,10 @@ enum fan_sysfs_attributes {
4448
FAN10_DIRECTION,
4549
FAN11_DIRECTION,
4650
FAN12_DIRECTION,
51+
FAN13_DIRECTION,
52+
FAN14_DIRECTION,
53+
FAN15_DIRECTION,
54+
FAN16_DIRECTION,
4755
FAN1_INPUT,
4856
FAN2_INPUT,
4957
FAN3_INPUT,
@@ -56,6 +64,10 @@ enum fan_sysfs_attributes {
5664
FAN10_INPUT,
5765
FAN11_INPUT,
5866
FAN12_INPUT,
67+
FAN13_INPUT,
68+
FAN14_INPUT,
69+
FAN15_INPUT,
70+
FAN16_INPUT,
5971
FAN1_PWM,
6072
FAN2_PWM,
6173
FAN3_PWM,
@@ -68,6 +80,10 @@ enum fan_sysfs_attributes {
6880
FAN10_PWM,
6981
FAN11_PWM,
7082
FAN12_PWM,
83+
FAN13_PWM,
84+
FAN14_PWM,
85+
FAN15_PWM,
86+
FAN16_PWM,
7187
FAN1_FAULT,
7288
FAN2_FAULT,
7389
FAN3_FAULT,
@@ -80,6 +96,10 @@ enum fan_sysfs_attributes {
8096
FAN10_FAULT,
8197
FAN11_FAULT,
8298
FAN12_FAULT,
99+
FAN13_FAULT,
100+
FAN14_FAULT,
101+
FAN15_FAULT,
102+
FAN16_FAULT,
83103
FAN1_STATUS,
84104
FAN2_STATUS,
85105
FAN3_STATUS,
@@ -92,6 +112,10 @@ enum fan_sysfs_attributes {
92112
FAN10_STATUS,
93113
FAN11_STATUS,
94114
FAN12_STATUS,
115+
FAN13_STATUS,
116+
FAN14_STATUS,
117+
FAN15_STATUS,
118+
FAN16_STATUS,
95119
FAN_DUTY_CYCLE,
96120
FAN_MODEL_NAME,
97121
FAN_SERIAL_NUM,

0 commit comments

Comments
 (0)