Lines Matching defs:cdns

26 static int set_phy_power_on(struct cdns *cdns)
30 ret = phy_power_on(cdns->usb2_phy);
34 ret = phy_power_on(cdns->usb3_phy);
36 phy_power_off(cdns->usb2_phy);
41 static void set_phy_power_off(struct cdns *cdns)
43 phy_power_off(cdns->usb3_phy);
44 phy_power_off(cdns->usb2_phy);
57 struct cdns *cdns;
61 cdns = devm_kzalloc(dev, sizeof(*cdns), GFP_KERNEL);
62 if (!cdns)
65 cdns->dev = dev;
66 cdns->pdata = dev_get_platdata(dev);
68 platform_set_drvdata(pdev, cdns);
74 cdns->xhci_res[0].start = ret;
75 cdns->xhci_res[0].end = ret;
76 cdns->xhci_res[0].flags = IORESOURCE_IRQ | irq_get_trigger_type(ret);
77 cdns->xhci_res[0].name = "host";
85 cdns->xhci_res[1] = *res;
87 cdns->dev_irq = platform_get_irq_byname(pdev, "peripheral");
89 if (cdns->dev_irq < 0)
90 return dev_err_probe(dev, cdns->dev_irq,
98 cdns->dev_regs = regs;
100 cdns->otg_irq = platform_get_irq_byname(pdev, "otg");
101 if (cdns->otg_irq < 0)
102 return dev_err_probe(dev, cdns->otg_irq,
111 cdns->phyrst_a_enable = device_property_read_bool(dev, "cdns,phyrst-a-enable");
113 cdns->otg_res = *res;
115 cdns->wakeup_irq = platform_get_irq_byname_optional(pdev, "wakeup");
116 if (cdns->wakeup_irq == -EPROBE_DEFER)
117 return cdns->wakeup_irq;
119 if (cdns->wakeup_irq < 0) {
121 cdns->wakeup_irq = 0x0;
124 cdns->usb2_phy = devm_phy_optional_get(dev, "cdns3,usb2-phy");
125 if (IS_ERR(cdns->usb2_phy))
126 return dev_err_probe(dev, PTR_ERR(cdns->usb2_phy),
129 ret = phy_init(cdns->usb2_phy);
133 cdns->usb3_phy = devm_phy_optional_get(dev, "cdns3,usb3-phy");
134 if (IS_ERR(cdns->usb3_phy))
135 return dev_err_probe(dev, PTR_ERR(cdns->usb3_phy),
138 ret = phy_init(cdns->usb3_phy);
142 ret = set_phy_power_on(cdns);
146 cdns->gadget_init = cdns3_gadget_init;
148 ret = cdns_init(cdns);
155 if (!(cdns->pdata && (cdns->pdata->quirks & CDNS3_DEFAULT_PM_RUNTIME_ALLOW)))
170 set_phy_power_off(cdns);
172 phy_exit(cdns->usb3_phy);
174 phy_exit(cdns->usb2_phy);
187 struct cdns *cdns = platform_get_drvdata(pdev);
188 struct device *dev = cdns->dev;
193 cdns_remove(cdns);
194 set_phy_power_off(cdns);
195 phy_exit(cdns->usb2_phy);
196 phy_exit(cdns->usb3_phy);
204 struct cdns *cdns = dev_get_drvdata(dev);
207 if (cdns->pdata && cdns->pdata->platform_suspend)
208 ret = cdns->pdata->platform_suspend(dev, suspend, wakeup);
215 struct cdns *cdns = dev_get_drvdata(dev);
219 if (cdns->in_lpm)
227 cdns3_set_platform_suspend(cdns->dev, true, wakeup);
228 set_phy_power_off(cdns);
229 spin_lock_irqsave(&cdns->lock, flags);
230 cdns->in_lpm = true;
231 spin_unlock_irqrestore(&cdns->lock, flags);
232 dev_dbg(cdns->dev, "%s ends\n", __func__);
239 struct cdns *cdns = dev_get_drvdata(dev);
243 if (!cdns->in_lpm)
246 if (cdns_power_is_lost(cdns)) {
247 phy_exit(cdns->usb2_phy);
248 ret = phy_init(cdns->usb2_phy);
252 phy_exit(cdns->usb3_phy);
253 ret = phy_init(cdns->usb3_phy);
258 ret = set_phy_power_on(cdns);
262 cdns3_set_platform_suspend(cdns->dev, false, false);
264 spin_lock_irqsave(&cdns->lock, flags);
265 cdns_resume(cdns);
266 cdns->in_lpm = false;
267 spin_unlock_irqrestore(&cdns->lock, flags);
268 cdns_set_active(cdns, !PMSG_IS_AUTO(msg));
269 if (cdns->wakeup_pending) {
270 cdns->wakeup_pending = false;
271 enable_irq(cdns->wakeup_irq);
273 dev_dbg(cdns->dev, "%s ends\n", __func__);
292 struct cdns *cdns = dev_get_drvdata(dev);
295 cdns_suspend(cdns);
301 if (device_may_wakeup(dev) && cdns->wakeup_irq)
302 enable_irq_wake(cdns->wakeup_irq);
322 { .compatible = "cdns,usb3" },
332 .name = "cdns-usb3",