@@ -3335,8 +3335,9 @@ static const struct power_supply_desc ab8500_usb_chg_desc = {
.get_property = ab8500_charger_usb_get_property,
};
-static int ab8500_charger_bind(struct device *dev)
+static int ab8500_charger_bind(struct aggregate_device *adev)
{
+ struct device *dev = aggregate_device_parent(adev);
struct ab8500_charger *di = dev_get_drvdata(dev);
int ch_stat;
int ret;
@@ -3377,8 +3378,9 @@ static int ab8500_charger_bind(struct device *dev)
return 0;
}
-static void ab8500_charger_unbind(struct device *dev)
+static void ab8500_charger_unbind(struct aggregate_device *adev)
{
+ struct device *dev = aggregate_device_parent(adev);
struct ab8500_charger *di = dev_get_drvdata(dev);
int ret;
@@ -3403,9 +3405,13 @@ static void ab8500_charger_unbind(struct device *dev)
component_unbind_all(dev, di);
}
-static const struct component_master_ops ab8500_charger_comp_ops = {
- .bind = ab8500_charger_bind,
- .unbind = ab8500_charger_unbind,
+static struct aggregate_driver ab8500_charger_aggregate_driver = {
+ .probe = ab8500_charger_bind,
+ .remove = ab8500_charger_unbind,
+ .driver = {
+ .name = "ab8500_charger_agg",
+ .owner = THIS_MODULE,
+ },
};
static struct platform_driver *const ab8500_charger_component_drivers[] = {
@@ -3694,9 +3700,7 @@ static int ab8500_charger_probe(struct platform_device *pdev)
}
- ret = component_master_add_with_match(&pdev->dev,
- &ab8500_charger_comp_ops,
- match);
+ ret = component_aggregate_register(&pdev->dev, &ab8500_charger_aggregate_driver, match);
if (ret) {
dev_err(dev, "failed to add component master\n");
goto free_notifier;
@@ -3721,7 +3725,7 @@ static int ab8500_charger_remove(struct platform_device *pdev)
{
struct ab8500_charger *di = platform_get_drvdata(pdev);
- component_master_del(&pdev->dev, &ab8500_charger_comp_ops);
+ component_aggregate_unregister(&pdev->dev, &ab8500_charger_aggregate_driver);
usb_unregister_notifier(di->usb_phy, &di->nb);
ab8500_bm_of_remove(di->usb_chg.psy, di->bm);