Lines Matching refs:otg_dev

49 static void omap_otg_ctrl(struct otg_device *otg_dev, u32 outputs)  in omap_otg_ctrl()  argument
53 l = readl(otg_dev->base + OMAP_OTG_CTRL); in omap_otg_ctrl()
56 writel(l, otg_dev->base + OMAP_OTG_CTRL); in omap_otg_ctrl()
59 static void omap_otg_set_mode(struct otg_device *otg_dev) in omap_otg_set_mode() argument
61 if (!otg_dev->id && otg_dev->vbus) in omap_otg_set_mode()
63 omap_otg_ctrl(otg_dev, OMAP_OTG_ID | OMAP_OTG_BSESSVLD); in omap_otg_set_mode()
64 else if (otg_dev->vbus) in omap_otg_set_mode()
66 omap_otg_ctrl(otg_dev, OMAP_OTG_ASESSVLD); in omap_otg_set_mode()
67 else if (!otg_dev->id) in omap_otg_set_mode()
69 omap_otg_ctrl(otg_dev, OMAP_OTG_ID | OMAP_OTG_BSESSEND); in omap_otg_set_mode()
75 struct otg_device *otg_dev = container_of(nb, struct otg_device, id_nb); in omap_otg_id_notifier() local
77 otg_dev->id = event; in omap_otg_id_notifier()
78 omap_otg_set_mode(otg_dev); in omap_otg_id_notifier()
86 struct otg_device *otg_dev = container_of(nb, struct otg_device, in omap_otg_vbus_notifier() local
89 otg_dev->vbus = event; in omap_otg_vbus_notifier()
90 omap_otg_set_mode(otg_dev); in omap_otg_vbus_notifier()
98 struct otg_device *otg_dev; in omap_otg_probe() local
110 otg_dev = devm_kzalloc(&pdev->dev, sizeof(*otg_dev), GFP_KERNEL); in omap_otg_probe()
111 if (!otg_dev) in omap_otg_probe()
114 otg_dev->base = devm_ioremap_resource(&pdev->dev, &pdev->resource[0]); in omap_otg_probe()
115 if (IS_ERR(otg_dev->base)) in omap_otg_probe()
116 return PTR_ERR(otg_dev->base); in omap_otg_probe()
118 otg_dev->id_nb.notifier_call = omap_otg_id_notifier; in omap_otg_probe()
119 otg_dev->vbus_nb.notifier_call = omap_otg_vbus_notifier; in omap_otg_probe()
121 ret = extcon_register_interest(&otg_dev->id_dev, config->extcon, in omap_otg_probe()
122 "USB-HOST", &otg_dev->id_nb); in omap_otg_probe()
126 ret = extcon_register_interest(&otg_dev->vbus_dev, config->extcon, in omap_otg_probe()
127 "USB", &otg_dev->vbus_nb); in omap_otg_probe()
129 extcon_unregister_interest(&otg_dev->id_dev); in omap_otg_probe()
133 otg_dev->id = extcon_get_cable_state(extcon, "USB-HOST"); in omap_otg_probe()
134 otg_dev->vbus = extcon_get_cable_state(extcon, "USB"); in omap_otg_probe()
135 omap_otg_set_mode(otg_dev); in omap_otg_probe()
137 rev = readl(otg_dev->base); in omap_otg_probe()
141 (rev >> 4) & 0xf, rev & 0xf, config->extcon, otg_dev->id, in omap_otg_probe()
142 otg_dev->vbus); in omap_otg_probe()
149 struct otg_device *otg_dev = platform_get_drvdata(pdev); in omap_otg_remove() local
151 extcon_unregister_interest(&otg_dev->id_dev); in omap_otg_remove()
152 extcon_unregister_interest(&otg_dev->vbus_dev); in omap_otg_remove()