hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/drivers/power/supply/lp8788-charger.c
....@@ -1,14 +1,10 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * TI LP8788 MFD - battery charger driver
34 *
45 * Copyright 2012 Texas Instruments
56 *
67 * Author: Milo(Woogyom) Kim <milo.kim@ti.com>
7
- *
8
- * This program is free software; you can redistribute it and/or modify
9
- * it under the terms of the GNU General Public License version 2 as
10
- * published by the Free Software Foundation.
11
- *
128 */
139
1410 #include <linux/err.h>
....@@ -410,30 +406,6 @@
410406 .get_property = lp8788_battery_get_property,
411407 };
412408
413
-static int lp8788_psy_register(struct platform_device *pdev,
414
- struct lp8788_charger *pchg)
415
-{
416
- struct power_supply_config charger_cfg = {};
417
-
418
- charger_cfg.supplied_to = battery_supplied_to;
419
- charger_cfg.num_supplicants = ARRAY_SIZE(battery_supplied_to);
420
-
421
- pchg->charger = power_supply_register(&pdev->dev,
422
- &lp8788_psy_charger_desc,
423
- &charger_cfg);
424
- if (IS_ERR(pchg->charger))
425
- return -EPERM;
426
-
427
- pchg->battery = power_supply_register(&pdev->dev,
428
- &lp8788_psy_battery_desc, NULL);
429
- if (IS_ERR(pchg->battery)) {
430
- power_supply_unregister(pchg->charger);
431
- return -EPERM;
432
- }
433
-
434
- return 0;
435
-}
436
-
437409 static void lp8788_psy_unregister(struct lp8788_charger *pchg)
438410 {
439411 power_supply_unregister(pchg->battery);
....@@ -677,16 +649,39 @@
677649 static DEVICE_ATTR(eoc_time, S_IRUSR, lp8788_show_eoc_time, NULL);
678650 static DEVICE_ATTR(eoc_level, S_IRUSR, lp8788_show_eoc_level, NULL);
679651
680
-static struct attribute *lp8788_charger_attr[] = {
652
+static struct attribute *lp8788_charger_sysfs_attrs[] = {
681653 &dev_attr_charger_status.attr,
682654 &dev_attr_eoc_time.attr,
683655 &dev_attr_eoc_level.attr,
684656 NULL,
685657 };
686658
687
-static const struct attribute_group lp8788_attr_group = {
688
- .attrs = lp8788_charger_attr,
689
-};
659
+ATTRIBUTE_GROUPS(lp8788_charger_sysfs);
660
+
661
+static int lp8788_psy_register(struct platform_device *pdev,
662
+ struct lp8788_charger *pchg)
663
+{
664
+ struct power_supply_config charger_cfg = {};
665
+
666
+ charger_cfg.attr_grp = lp8788_charger_sysfs_groups;
667
+ charger_cfg.supplied_to = battery_supplied_to;
668
+ charger_cfg.num_supplicants = ARRAY_SIZE(battery_supplied_to);
669
+
670
+ pchg->charger = power_supply_register(&pdev->dev,
671
+ &lp8788_psy_charger_desc,
672
+ &charger_cfg);
673
+ if (IS_ERR(pchg->charger))
674
+ return -EPERM;
675
+
676
+ pchg->battery = power_supply_register(&pdev->dev,
677
+ &lp8788_psy_battery_desc, NULL);
678
+ if (IS_ERR(pchg->battery)) {
679
+ power_supply_unregister(pchg->charger);
680
+ return -EPERM;
681
+ }
682
+
683
+ return 0;
684
+}
690685
691686 static int lp8788_charger_probe(struct platform_device *pdev)
692687 {
....@@ -713,12 +708,6 @@
713708 if (ret)
714709 return ret;
715710
716
- ret = sysfs_create_group(&pdev->dev.kobj, &lp8788_attr_group);
717
- if (ret) {
718
- lp8788_psy_unregister(pchg);
719
- return ret;
720
- }
721
-
722711 ret = lp8788_irq_register(pdev, pchg);
723712 if (ret)
724713 dev_warn(dev, "failed to register charger irq: %d\n", ret);
....@@ -732,7 +721,6 @@
732721
733722 flush_work(&pchg->charger_work);
734723 lp8788_irq_unregister(pdev, pchg);
735
- sysfs_remove_group(&pdev->dev.kobj, &lp8788_attr_group);
736724 lp8788_psy_unregister(pchg);
737725
738726 return 0;