|
@@ -30,8 +30,7 @@ struct otg_device {
|
|
|
void __iomem *base;
|
|
|
bool id;
|
|
|
bool vbus;
|
|
|
- struct extcon_specific_cable_nb vbus_dev;
|
|
|
- struct extcon_specific_cable_nb id_dev;
|
|
|
+ struct extcon_dev *extcon;
|
|
|
struct notifier_block vbus_nb;
|
|
|
struct notifier_block id_nb;
|
|
|
};
|
|
@@ -106,6 +105,7 @@ static int omap_otg_probe(struct platform_device *pdev)
|
|
|
extcon = extcon_get_extcon_dev(config->extcon);
|
|
|
if (!extcon)
|
|
|
return -EPROBE_DEFER;
|
|
|
+ otg_dev->extcon = extcon;
|
|
|
|
|
|
otg_dev = devm_kzalloc(&pdev->dev, sizeof(*otg_dev), GFP_KERNEL);
|
|
|
if (!otg_dev)
|
|
@@ -118,20 +118,19 @@ static int omap_otg_probe(struct platform_device *pdev)
|
|
|
otg_dev->id_nb.notifier_call = omap_otg_id_notifier;
|
|
|
otg_dev->vbus_nb.notifier_call = omap_otg_vbus_notifier;
|
|
|
|
|
|
- ret = extcon_register_interest(&otg_dev->id_dev, config->extcon,
|
|
|
- "USB-HOST", &otg_dev->id_nb);
|
|
|
+ ret = extcon_register_notifier(extcon, EXTCON_USB_HOST, &otg_dev->id_nb);
|
|
|
if (ret)
|
|
|
return ret;
|
|
|
|
|
|
- ret = extcon_register_interest(&otg_dev->vbus_dev, config->extcon,
|
|
|
- "USB", &otg_dev->vbus_nb);
|
|
|
+ ret = extcon_register_notifier(extcon, EXTCON_USB, &otg_dev->vbus_nb);
|
|
|
if (ret) {
|
|
|
- extcon_unregister_interest(&otg_dev->id_dev);
|
|
|
+ extcon_unregister_notifier(extcon, EXTCON_USB_HOST,
|
|
|
+ &otg_dev->id_nb);
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
- otg_dev->id = extcon_get_cable_state(extcon, "USB-HOST");
|
|
|
- otg_dev->vbus = extcon_get_cable_state(extcon, "USB");
|
|
|
+ otg_dev->id = extcon_get_cable_state_(extcon, EXTCON_USB_HOST);
|
|
|
+ otg_dev->vbus = extcon_get_cable_state_(extcon, EXTCON_USB);
|
|
|
omap_otg_set_mode(otg_dev);
|
|
|
|
|
|
rev = readl(otg_dev->base);
|
|
@@ -147,9 +146,10 @@ static int omap_otg_probe(struct platform_device *pdev)
|
|
|
static int omap_otg_remove(struct platform_device *pdev)
|
|
|
{
|
|
|
struct otg_device *otg_dev = platform_get_drvdata(pdev);
|
|
|
+ struct extcon_dev *edev = otg_dev->extcon;
|
|
|
|
|
|
- extcon_unregister_interest(&otg_dev->id_dev);
|
|
|
- extcon_unregister_interest(&otg_dev->vbus_dev);
|
|
|
+ extcon_unregister_notifier(edev, EXTCON_USB_HOST,&otg_dev->id_nb);
|
|
|
+ extcon_unregister_notifier(edev, EXTCON_USB, &otg_dev->vbus_nb);
|
|
|
|
|
|
return 0;
|
|
|
}
|