| 123456789101112131415161718192021222324252627282930313233343536373839 |
- // SPDX-License-Identifier: GPL-2.0
- /*
- * xHCI host controller driver for RZ/V2M
- *
- * Copyright (C) 2022 Renesas Electronics Corporation
- */
- #include <linux/usb/rzv2m_usb3drd.h>
- #include "xhci.h"
- #include "xhci-plat.h"
- #include "xhci-rzv2m.h"
- #define RZV2M_USB3_INTEN 0x1044 /* Interrupt Enable */
- #define RZV2M_USB3_INT_XHC_ENA BIT(0)
- #define RZV2M_USB3_INT_HSE_ENA BIT(2)
- #define RZV2M_USB3_INT_ENA_VAL (RZV2M_USB3_INT_XHC_ENA \
- | RZV2M_USB3_INT_HSE_ENA)
- int xhci_rzv2m_init_quirk(struct usb_hcd *hcd)
- {
- struct device *dev = hcd->self.controller;
- rzv2m_usb3drd_reset(dev->parent, true);
- return 0;
- }
- void xhci_rzv2m_start(struct usb_hcd *hcd)
- {
- u32 int_en;
- if (hcd->regs) {
- /* Interrupt Enable */
- int_en = readl(hcd->regs + RZV2M_USB3_INTEN);
- int_en |= RZV2M_USB3_INT_ENA_VAL;
- writel(int_en, hcd->regs + RZV2M_USB3_INTEN);
- }
- }
|