forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-01-04 1543e317f1da31b75942316931e8f491a8920811
kernel/drivers/hwmon/ltc4245.c
....@@ -1,11 +1,8 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * Driver for Linear Technology LTC4245 I2C Multiple Supply Hot Swap Controller
34 *
45 * Copyright (C) 2008 Ira W. Snyder <iws@ovro.caltech.edu>
5
- *
6
- * This program is free software; you can redistribute it and/or modify
7
- * it under the terms of the GNU General Public License as published by
8
- * the Free Software Foundation; version 2 of the License.
96 *
107 * This driver is based on the ds1621 and ina209 drivers.
118 *
....@@ -362,11 +359,11 @@
362359 case hwmon_in_input:
363360 if (channel > 9 && !data->use_extra_gpios)
364361 return 0;
365
- return S_IRUGO;
362
+ return 0444;
366363 case hwmon_in_min_alarm:
367364 if (channel > 8)
368365 return 0;
369
- return S_IRUGO;
366
+ return 0444;
370367 default:
371368 return 0;
372369 }
....@@ -374,14 +371,14 @@
374371 switch (attr) {
375372 case hwmon_curr_input:
376373 case hwmon_curr_max_alarm:
377
- return S_IRUGO;
374
+ return 0444;
378375 default:
379376 return 0;
380377 }
381378 case hwmon_power:
382379 switch (attr) {
383380 case hwmon_power_input:
384
- return S_IRUGO;
381
+ return 0444;
385382 default:
386383 return 0;
387384 }
....@@ -390,57 +387,30 @@
390387 }
391388 }
392389
393
-static const u32 ltc4245_in_config[] = {
394
- HWMON_I_INPUT, /* dummy, skipped in is_visible */
395
- HWMON_I_INPUT | HWMON_I_MIN_ALARM,
396
- HWMON_I_INPUT | HWMON_I_MIN_ALARM,
397
- HWMON_I_INPUT | HWMON_I_MIN_ALARM,
398
- HWMON_I_INPUT | HWMON_I_MIN_ALARM,
399
- HWMON_I_INPUT | HWMON_I_MIN_ALARM,
400
- HWMON_I_INPUT | HWMON_I_MIN_ALARM,
401
- HWMON_I_INPUT | HWMON_I_MIN_ALARM,
402
- HWMON_I_INPUT | HWMON_I_MIN_ALARM,
403
- HWMON_I_INPUT,
404
- HWMON_I_INPUT,
405
- HWMON_I_INPUT,
406
- 0
407
-};
408
-
409
-static const struct hwmon_channel_info ltc4245_in = {
410
- .type = hwmon_in,
411
- .config = ltc4245_in_config,
412
-};
413
-
414
-static const u32 ltc4245_curr_config[] = {
415
- HWMON_C_INPUT | HWMON_C_MAX_ALARM,
416
- HWMON_C_INPUT | HWMON_C_MAX_ALARM,
417
- HWMON_C_INPUT | HWMON_C_MAX_ALARM,
418
- HWMON_C_INPUT | HWMON_C_MAX_ALARM,
419
- 0
420
-};
421
-
422
-static const struct hwmon_channel_info ltc4245_curr = {
423
- .type = hwmon_curr,
424
- .config = ltc4245_curr_config,
425
-};
426
-
427
-static const u32 ltc4245_power_config[] = {
428
- HWMON_P_INPUT,
429
- HWMON_P_INPUT,
430
- HWMON_P_INPUT,
431
- HWMON_P_INPUT,
432
- 0
433
-};
434
-
435
-static const struct hwmon_channel_info ltc4245_power = {
436
- .type = hwmon_power,
437
- .config = ltc4245_power_config,
438
-};
439
-
440390 static const struct hwmon_channel_info *ltc4245_info[] = {
441
- &ltc4245_in,
442
- &ltc4245_curr,
443
- &ltc4245_power,
391
+ HWMON_CHANNEL_INFO(in,
392
+ HWMON_I_INPUT,
393
+ HWMON_I_INPUT | HWMON_I_MIN_ALARM,
394
+ HWMON_I_INPUT | HWMON_I_MIN_ALARM,
395
+ HWMON_I_INPUT | HWMON_I_MIN_ALARM,
396
+ HWMON_I_INPUT | HWMON_I_MIN_ALARM,
397
+ HWMON_I_INPUT | HWMON_I_MIN_ALARM,
398
+ HWMON_I_INPUT | HWMON_I_MIN_ALARM,
399
+ HWMON_I_INPUT | HWMON_I_MIN_ALARM,
400
+ HWMON_I_INPUT | HWMON_I_MIN_ALARM,
401
+ HWMON_I_INPUT,
402
+ HWMON_I_INPUT,
403
+ HWMON_I_INPUT),
404
+ HWMON_CHANNEL_INFO(curr,
405
+ HWMON_C_INPUT | HWMON_C_MAX_ALARM,
406
+ HWMON_C_INPUT | HWMON_C_MAX_ALARM,
407
+ HWMON_C_INPUT | HWMON_C_MAX_ALARM,
408
+ HWMON_C_INPUT | HWMON_C_MAX_ALARM),
409
+ HWMON_CHANNEL_INFO(power,
410
+ HWMON_P_INPUT,
411
+ HWMON_P_INPUT,
412
+ HWMON_P_INPUT,
413
+ HWMON_P_INPUT),
444414 NULL
445415 };
446416
....@@ -470,8 +440,7 @@
470440 return false;
471441 }
472442
473
-static int ltc4245_probe(struct i2c_client *client,
474
- const struct i2c_device_id *id)
443
+static int ltc4245_probe(struct i2c_client *client)
475444 {
476445 struct i2c_adapter *adapter = client->adapter;
477446 struct ltc4245_data *data;
....@@ -510,7 +479,7 @@
510479 .driver = {
511480 .name = "ltc4245",
512481 },
513
- .probe = ltc4245_probe,
482
+ .probe_new = ltc4245_probe,
514483 .id_table = ltc4245_id,
515484 };
516485