150e76a73SSai Pavan Boddu /* 250e76a73SSai Pavan Boddu * QEMU model of the VersalUsb2CtrlRegs Register control/Status block for 350e76a73SSai Pavan Boddu * USB2.0 controller 450e76a73SSai Pavan Boddu * 550e76a73SSai Pavan Boddu * Copyright (c) 2020 Xilinx Inc. Vikram Garhwal <fnu.vikram@xilinx.com> 650e76a73SSai Pavan Boddu * 750e76a73SSai Pavan Boddu * Permission is hereby granted, free of charge, to any person obtaining a copy 850e76a73SSai Pavan Boddu * of this software and associated documentation files (the "Software"), to deal 950e76a73SSai Pavan Boddu * in the Software without restriction, including without limitation the rights 1050e76a73SSai Pavan Boddu * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1150e76a73SSai Pavan Boddu * copies of the Software, and to permit persons to whom the Software is 1250e76a73SSai Pavan Boddu * furnished to do so, subject to the following conditions: 1350e76a73SSai Pavan Boddu * 1450e76a73SSai Pavan Boddu * The above copyright notice and this permission notice shall be included in 1550e76a73SSai Pavan Boddu * all copies or substantial portions of the Software. 1650e76a73SSai Pavan Boddu * 1750e76a73SSai Pavan Boddu * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1850e76a73SSai Pavan Boddu * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1950e76a73SSai Pavan Boddu * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 2050e76a73SSai Pavan Boddu * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 2150e76a73SSai Pavan Boddu * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 2250e76a73SSai Pavan Boddu * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 2350e76a73SSai Pavan Boddu * THE SOFTWARE. 2450e76a73SSai Pavan Boddu */ 2550e76a73SSai Pavan Boddu 2652581c71SMarkus Armbruster #ifndef XLNX_VERSAL_USB2_CTRL_REGS_H 2752581c71SMarkus Armbruster #define XLNX_VERSAL_USB2_CTRL_REGS_H 2850e76a73SSai Pavan Boddu 297a5951f6SMarkus Armbruster #include "hw/register.h" 307a5951f6SMarkus Armbruster #include "hw/sysbus.h" 317a5951f6SMarkus Armbruster 3250e76a73SSai Pavan Boddu #define TYPE_XILINX_VERSAL_USB2_CTRL_REGS "xlnx.versal-usb2-ctrl-regs" 3350e76a73SSai Pavan Boddu 3450e76a73SSai Pavan Boddu #define XILINX_VERSAL_USB2_CTRL_REGS(obj) \ 3550e76a73SSai Pavan Boddu OBJECT_CHECK(VersalUsb2CtrlRegs, (obj), TYPE_XILINX_VERSAL_USB2_CTRL_REGS) 3650e76a73SSai Pavan Boddu 3750e76a73SSai Pavan Boddu #define USB2_REGS_R_MAX ((0x78 / 4) + 1) 3850e76a73SSai Pavan Boddu 3950e76a73SSai Pavan Boddu typedef struct VersalUsb2CtrlRegs { 4050e76a73SSai Pavan Boddu SysBusDevice parent_obj; 4150e76a73SSai Pavan Boddu MemoryRegion iomem; 4250e76a73SSai Pavan Boddu qemu_irq irq_ir; 4350e76a73SSai Pavan Boddu 4450e76a73SSai Pavan Boddu uint32_t regs[USB2_REGS_R_MAX]; 4550e76a73SSai Pavan Boddu RegisterInfo regs_info[USB2_REGS_R_MAX]; 4650e76a73SSai Pavan Boddu } VersalUsb2CtrlRegs; 4750e76a73SSai Pavan Boddu 4850e76a73SSai Pavan Boddu #endif 49