Lines Matching refs:kdwc
52 static void kdwc3_enable_irqs(struct dwc3_keystone *kdwc)
56 val = kdwc3_readl(kdwc->usbss, USBSS_IRQENABLE_SET_0);
58 kdwc3_writel(kdwc->usbss, USBSS_IRQENABLE_SET_0, val);
61 static void kdwc3_disable_irqs(struct dwc3_keystone *kdwc)
65 val = kdwc3_readl(kdwc->usbss, USBSS_IRQENABLE_SET_0);
67 kdwc3_writel(kdwc->usbss, USBSS_IRQENABLE_SET_0, val);
72 struct dwc3_keystone *kdwc = _kdwc;
74 kdwc3_writel(kdwc->usbss, USBSS_IRQENABLE_CLR_0, USBSS_IRQ_COREIRQ_CLR);
75 kdwc3_writel(kdwc->usbss, USBSS_IRQSTATUS_0, USBSS_IRQ_EVENT_ST);
76 kdwc3_writel(kdwc->usbss, USBSS_IRQENABLE_SET_0, USBSS_IRQ_COREIRQ_EN);
77 kdwc3_writel(kdwc->usbss, USBSS_IRQ_EOI, USBSS_IRQ_EOI_LINE(0));
86 struct dwc3_keystone *kdwc;
89 kdwc = devm_kzalloc(dev, sizeof(*kdwc), GFP_KERNEL);
90 if (!kdwc)
93 platform_set_drvdata(pdev, kdwc);
95 kdwc->dev = dev;
97 kdwc->usbss = devm_platform_ioremap_resource(pdev, 0);
98 if (IS_ERR(kdwc->usbss))
99 return PTR_ERR(kdwc->usbss);
102 kdwc->usb3_phy = devm_phy_optional_get(dev, "usb3-phy");
103 if (IS_ERR(kdwc->usb3_phy))
104 return dev_err_probe(dev, PTR_ERR(kdwc->usb3_phy), "couldn't get usb3 phy\n");
106 phy_pm_runtime_get_sync(kdwc->usb3_phy);
108 error = phy_reset(kdwc->usb3_phy);
114 error = phy_init(kdwc->usb3_phy);
120 error = phy_power_on(kdwc->usb3_phy);
123 phy_exit(kdwc->usb3_phy);
127 pm_runtime_enable(kdwc->dev);
128 error = pm_runtime_get_sync(kdwc->dev);
130 dev_err(kdwc->dev, "pm_runtime_get_sync failed, error %d\n",
146 dev_name(dev), kdwc);
153 kdwc3_enable_irqs(kdwc);
165 kdwc3_disable_irqs(kdwc);
167 pm_runtime_put_sync(kdwc->dev);
168 pm_runtime_disable(kdwc->dev);
169 phy_power_off(kdwc->usb3_phy);
170 phy_exit(kdwc->usb3_phy);
171 phy_pm_runtime_put_sync(kdwc->usb3_phy);
187 struct dwc3_keystone *kdwc = platform_get_drvdata(pdev);
191 kdwc3_disable_irqs(kdwc);
194 pm_runtime_put_sync(kdwc->dev);
195 pm_runtime_disable(kdwc->dev);
197 phy_power_off(kdwc->usb3_phy);
198 phy_exit(kdwc->usb3_phy);
199 phy_pm_runtime_put_sync(kdwc->usb3_phy);