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