Lines Matching refs:palmas_usb
51 struct palmas_usb *palmas_usb = _palmas_usb; in palmas_vbus_irq_handler() local
54 palmas_read(palmas_usb->palmas, PALMAS_INTERRUPT_BASE, in palmas_vbus_irq_handler()
58 if (palmas_usb->linkstat != PALMAS_USB_STATE_VBUS) { in palmas_vbus_irq_handler()
59 palmas_usb->linkstat = PALMAS_USB_STATE_VBUS; in palmas_vbus_irq_handler()
60 extcon_set_cable_state(palmas_usb->edev, "USB", true); in palmas_vbus_irq_handler()
61 dev_info(palmas_usb->dev, "USB cable is attached\n"); in palmas_vbus_irq_handler()
63 dev_dbg(palmas_usb->dev, in palmas_vbus_irq_handler()
67 if (palmas_usb->linkstat == PALMAS_USB_STATE_VBUS) { in palmas_vbus_irq_handler()
68 palmas_usb->linkstat = PALMAS_USB_STATE_DISCONNECT; in palmas_vbus_irq_handler()
69 extcon_set_cable_state(palmas_usb->edev, "USB", false); in palmas_vbus_irq_handler()
70 dev_info(palmas_usb->dev, "USB cable is detached\n"); in palmas_vbus_irq_handler()
72 dev_dbg(palmas_usb->dev, in palmas_vbus_irq_handler()
83 struct palmas_usb *palmas_usb = _palmas_usb; in palmas_id_irq_handler() local
85 palmas_read(palmas_usb->palmas, PALMAS_USB_OTG_BASE, in palmas_id_irq_handler()
87 palmas_read(palmas_usb->palmas, PALMAS_USB_OTG_BASE, in palmas_id_irq_handler()
92 palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE, in palmas_id_irq_handler()
95 palmas_usb->linkstat = PALMAS_USB_STATE_ID; in palmas_id_irq_handler()
96 extcon_set_cable_state(palmas_usb->edev, "USB-HOST", true); in palmas_id_irq_handler()
97 dev_info(palmas_usb->dev, "USB-HOST cable is attached\n"); in palmas_id_irq_handler()
100 palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE, in palmas_id_irq_handler()
103 palmas_usb->linkstat = PALMAS_USB_STATE_DISCONNECT; in palmas_id_irq_handler()
104 extcon_set_cable_state(palmas_usb->edev, "USB-HOST", false); in palmas_id_irq_handler()
105 dev_info(palmas_usb->dev, "USB-HOST cable is detached\n"); in palmas_id_irq_handler()
106 } else if ((palmas_usb->linkstat == PALMAS_USB_STATE_ID) && in palmas_id_irq_handler()
108 palmas_usb->linkstat = PALMAS_USB_STATE_DISCONNECT; in palmas_id_irq_handler()
109 extcon_set_cable_state(palmas_usb->edev, "USB-HOST", false); in palmas_id_irq_handler()
110 dev_info(palmas_usb->dev, "USB-HOST cable is detached\n"); in palmas_id_irq_handler()
111 } else if ((palmas_usb->linkstat == PALMAS_USB_STATE_DISCONNECT) && in palmas_id_irq_handler()
113 palmas_usb->linkstat = PALMAS_USB_STATE_ID; in palmas_id_irq_handler()
114 extcon_set_cable_state(palmas_usb->edev, "USB-HOST", true); in palmas_id_irq_handler()
115 dev_info(palmas_usb->dev, " USB-HOST cable is attached\n"); in palmas_id_irq_handler()
121 static void palmas_enable_irq(struct palmas_usb *palmas_usb) in palmas_enable_irq() argument
123 palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE, in palmas_enable_irq()
127 palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE, in palmas_enable_irq()
130 palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE, in palmas_enable_irq()
135 if (palmas_usb->enable_vbus_detection) in palmas_enable_irq()
136 palmas_vbus_irq_handler(palmas_usb->vbus_irq, palmas_usb); in palmas_enable_irq()
139 if (palmas_usb->enable_id_detection) { in palmas_enable_irq()
141 palmas_id_irq_handler(palmas_usb->id_irq, palmas_usb); in palmas_enable_irq()
150 struct palmas_usb *palmas_usb; in palmas_usb_probe() local
153 palmas_usb = devm_kzalloc(&pdev->dev, sizeof(*palmas_usb), GFP_KERNEL); in palmas_usb_probe()
154 if (!palmas_usb) in palmas_usb_probe()
158 palmas_usb->wakeup = of_property_read_bool(node, "ti,wakeup"); in palmas_usb_probe()
159 palmas_usb->enable_id_detection = of_property_read_bool(node, in palmas_usb_probe()
161 palmas_usb->enable_vbus_detection = of_property_read_bool(node, in palmas_usb_probe()
164 palmas_usb->wakeup = true; in palmas_usb_probe()
165 palmas_usb->enable_id_detection = true; in palmas_usb_probe()
166 palmas_usb->enable_vbus_detection = true; in palmas_usb_probe()
169 palmas_usb->wakeup = pdata->wakeup; in palmas_usb_probe()
172 palmas->usb = palmas_usb; in palmas_usb_probe()
173 palmas_usb->palmas = palmas; in palmas_usb_probe()
175 palmas_usb->dev = &pdev->dev; in palmas_usb_probe()
177 palmas_usb->id_otg_irq = regmap_irq_get_virq(palmas->irq_data, in palmas_usb_probe()
179 palmas_usb->id_irq = regmap_irq_get_virq(palmas->irq_data, in palmas_usb_probe()
181 palmas_usb->vbus_otg_irq = regmap_irq_get_virq(palmas->irq_data, in palmas_usb_probe()
183 palmas_usb->vbus_irq = regmap_irq_get_virq(palmas->irq_data, in palmas_usb_probe()
186 palmas_usb_wakeup(palmas, palmas_usb->wakeup); in palmas_usb_probe()
188 platform_set_drvdata(pdev, palmas_usb); in palmas_usb_probe()
190 palmas_usb->edev = devm_extcon_dev_allocate(&pdev->dev, in palmas_usb_probe()
192 if (IS_ERR(palmas_usb->edev)) { in palmas_usb_probe()
196 palmas_usb->edev->name = kstrdup(node->name, GFP_KERNEL); in palmas_usb_probe()
197 palmas_usb->edev->mutually_exclusive = mutually_exclusive; in palmas_usb_probe()
199 status = devm_extcon_dev_register(&pdev->dev, palmas_usb->edev); in palmas_usb_probe()
202 kfree(palmas_usb->edev->name); in palmas_usb_probe()
206 if (palmas_usb->enable_id_detection) { in palmas_usb_probe()
207 status = devm_request_threaded_irq(palmas_usb->dev, in palmas_usb_probe()
208 palmas_usb->id_irq, in palmas_usb_probe()
212 "palmas_usb_id", palmas_usb); in palmas_usb_probe()
215 palmas_usb->id_irq, status); in palmas_usb_probe()
216 kfree(palmas_usb->edev->name); in palmas_usb_probe()
221 if (palmas_usb->enable_vbus_detection) { in palmas_usb_probe()
222 status = devm_request_threaded_irq(palmas_usb->dev, in palmas_usb_probe()
223 palmas_usb->vbus_irq, NULL, in palmas_usb_probe()
227 "palmas_usb_vbus", palmas_usb); in palmas_usb_probe()
230 palmas_usb->vbus_irq, status); in palmas_usb_probe()
231 kfree(palmas_usb->edev->name); in palmas_usb_probe()
236 palmas_enable_irq(palmas_usb); in palmas_usb_probe()
243 struct palmas_usb *palmas_usb = platform_get_drvdata(pdev); in palmas_usb_remove() local
245 kfree(palmas_usb->edev->name); in palmas_usb_remove()
253 struct palmas_usb *palmas_usb = dev_get_drvdata(dev); in palmas_usb_suspend() local
256 if (palmas_usb->enable_vbus_detection) in palmas_usb_suspend()
257 enable_irq_wake(palmas_usb->vbus_irq); in palmas_usb_suspend()
258 if (palmas_usb->enable_id_detection) in palmas_usb_suspend()
259 enable_irq_wake(palmas_usb->id_irq); in palmas_usb_suspend()
266 struct palmas_usb *palmas_usb = dev_get_drvdata(dev); in palmas_usb_resume() local
269 if (palmas_usb->enable_vbus_detection) in palmas_usb_resume()
270 disable_irq_wake(palmas_usb->vbus_irq); in palmas_usb_resume()
271 if (palmas_usb->enable_id_detection) in palmas_usb_resume()
272 disable_irq_wake(palmas_usb->id_irq); in palmas_usb_resume()