Lines Matching +full:keystone +full:- +full:dwc3
1 // SPDX-License-Identifier: GPL-2.0
3 * dwc3-keystone.c - Keystone Specific Glue layer
5 * Copyright (C) 2010-2013 Texas Instruments Incorporated - http://www.ti.com
7 * Author: WingMan Kwok <w-kwok2@ti.com>
14 #include <linux/dma-mapping.h>
53 val = kdwc3_readl(kdwc->usbss, USBSS_IRQENABLE_SET_0); in kdwc3_enable_irqs()
55 kdwc3_writel(kdwc->usbss, USBSS_IRQENABLE_SET_0, val); in kdwc3_enable_irqs()
62 val = kdwc3_readl(kdwc->usbss, USBSS_IRQENABLE_SET_0); in kdwc3_disable_irqs()
64 kdwc3_writel(kdwc->usbss, USBSS_IRQENABLE_SET_0, val); in kdwc3_disable_irqs()
71 kdwc3_writel(kdwc->usbss, USBSS_IRQENABLE_CLR_0, USBSS_IRQ_COREIRQ_CLR); in dwc3_keystone_interrupt()
72 kdwc3_writel(kdwc->usbss, USBSS_IRQSTATUS_0, USBSS_IRQ_EVENT_ST); in dwc3_keystone_interrupt()
73 kdwc3_writel(kdwc->usbss, USBSS_IRQENABLE_SET_0, USBSS_IRQ_COREIRQ_EN); in dwc3_keystone_interrupt()
74 kdwc3_writel(kdwc->usbss, USBSS_IRQ_EOI, USBSS_IRQ_EOI_LINE(0)); in dwc3_keystone_interrupt()
81 struct device *dev = &pdev->dev; in kdwc3_probe()
82 struct device_node *node = pdev->dev.of_node; in kdwc3_probe()
89 return -ENOMEM; in kdwc3_probe()
93 kdwc->dev = dev; in kdwc3_probe()
96 kdwc->usbss = devm_ioremap_resource(dev, res); in kdwc3_probe()
97 if (IS_ERR(kdwc->usbss)) in kdwc3_probe()
98 return PTR_ERR(kdwc->usbss); in kdwc3_probe()
100 pm_runtime_enable(kdwc->dev); in kdwc3_probe()
102 error = pm_runtime_get_sync(kdwc->dev); in kdwc3_probe()
104 dev_err(kdwc->dev, "pm_runtime_get_sync failed, error %d\n", in kdwc3_probe()
111 dev_err(&pdev->dev, "missing irq\n"); in kdwc3_probe()
119 dev_err(dev, "failed to request IRQ #%d --> %d\n", in kdwc3_probe()
128 dev_err(&pdev->dev, "failed to create dwc3 core\n"); in kdwc3_probe()
137 pm_runtime_put_sync(kdwc->dev); in kdwc3_probe()
138 pm_runtime_disable(kdwc->dev); in kdwc3_probe()
157 device_for_each_child(&pdev->dev, NULL, kdwc3_remove_core); in kdwc3_remove()
158 pm_runtime_put_sync(kdwc->dev); in kdwc3_remove()
159 pm_runtime_disable(kdwc->dev); in kdwc3_remove()
167 { .compatible = "ti,keystone-dwc3", },
176 .name = "keystone-dwc3",
183 MODULE_ALIAS("platform:keystone-dwc3");
184 MODULE_AUTHOR("WingMan Kwok <w-kwok2@ti.com>");
186 MODULE_DESCRIPTION("DesignWare USB3 KEYSTONE Glue Layer");