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