1*e29c7db1SSai Pavan Boddu /* 2*e29c7db1SSai Pavan Boddu * QEMU model of the Xilinx usb subsystem 3*e29c7db1SSai Pavan Boddu * 4*e29c7db1SSai Pavan Boddu * Copyright (c) 2020 Xilinx Inc. Sai Pavan Boddu <sai.pavan.boddu@xilinx.com> 5*e29c7db1SSai Pavan Boddu * 6*e29c7db1SSai Pavan Boddu * Permission is hereby granted, free of charge, to any person obtaining a copy 7*e29c7db1SSai Pavan Boddu * of this software and associated documentation files (the "Software"), to deal 8*e29c7db1SSai Pavan Boddu * in the Software without restriction, including without limitation the rights 9*e29c7db1SSai Pavan Boddu * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10*e29c7db1SSai Pavan Boddu * copies of the Software, and to permit persons to whom the Software is 11*e29c7db1SSai Pavan Boddu * furnished to do so, subject to the following conditions: 12*e29c7db1SSai Pavan Boddu * 13*e29c7db1SSai Pavan Boddu * The above copyright notice and this permission notice shall be included in 14*e29c7db1SSai Pavan Boddu * all copies or substantial portions of the Software. 15*e29c7db1SSai Pavan Boddu * 16*e29c7db1SSai Pavan Boddu * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17*e29c7db1SSai Pavan Boddu * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18*e29c7db1SSai Pavan Boddu * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19*e29c7db1SSai Pavan Boddu * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20*e29c7db1SSai Pavan Boddu * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21*e29c7db1SSai Pavan Boddu * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22*e29c7db1SSai Pavan Boddu * THE SOFTWARE. 23*e29c7db1SSai Pavan Boddu */ 24*e29c7db1SSai Pavan Boddu 25*e29c7db1SSai Pavan Boddu #ifndef _XLNX_VERSAL_USB_SUBSYSTEM_H_ 26*e29c7db1SSai Pavan Boddu #define _XLNX_VERSAL_USB_SUBSYSTEM_H_ 27*e29c7db1SSai Pavan Boddu 28*e29c7db1SSai Pavan Boddu #include "hw/usb/xlnx-versal-usb2-ctrl-regs.h" 29*e29c7db1SSai Pavan Boddu #include "hw/usb/hcd-dwc3.h" 30*e29c7db1SSai Pavan Boddu 31*e29c7db1SSai Pavan Boddu #define TYPE_XILINX_VERSAL_USB2 "xlnx.versal-usb2" 32*e29c7db1SSai Pavan Boddu 33*e29c7db1SSai Pavan Boddu #define VERSAL_USB2(obj) \ 34*e29c7db1SSai Pavan Boddu OBJECT_CHECK(VersalUsb2, (obj), TYPE_XILINX_VERSAL_USB2) 35*e29c7db1SSai Pavan Boddu 36*e29c7db1SSai Pavan Boddu typedef struct VersalUsb2 { 37*e29c7db1SSai Pavan Boddu SysBusDevice parent_obj; 38*e29c7db1SSai Pavan Boddu MemoryRegion dwc3_mr; 39*e29c7db1SSai Pavan Boddu MemoryRegion usb2Ctrl_mr; 40*e29c7db1SSai Pavan Boddu 41*e29c7db1SSai Pavan Boddu VersalUsb2CtrlRegs usb2Ctrl; 42*e29c7db1SSai Pavan Boddu USBDWC3 dwc3; 43*e29c7db1SSai Pavan Boddu } VersalUsb2; 44*e29c7db1SSai Pavan Boddu 45*e29c7db1SSai Pavan Boddu #endif 46