1a937b302SBin Meng /* 2a937b302SBin Meng * Microchip PolarFire SoC IOSCB module emulation 3a937b302SBin Meng * 4a937b302SBin Meng * Copyright (c) 2020 Wind River Systems, Inc. 5a937b302SBin Meng * 6a937b302SBin Meng * Author: 7a937b302SBin Meng * Bin Meng <bin.meng@windriver.com> 8a937b302SBin Meng * 9a937b302SBin Meng * This program is free software; you can redistribute it and/or 10a937b302SBin Meng * modify it under the terms of the GNU General Public License as 11a937b302SBin Meng * published by the Free Software Foundation; either version 2 or 12a937b302SBin Meng * (at your option) version 3 of the License. 13a937b302SBin Meng * 14a937b302SBin Meng * This program is distributed in the hope that it will be useful, 15a937b302SBin Meng * but WITHOUT ANY WARRANTY; without even the implied warranty of 16a937b302SBin Meng * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17a937b302SBin Meng * GNU General Public License for more details. 18a937b302SBin Meng * 19a937b302SBin Meng * You should have received a copy of the GNU General Public License along 20a937b302SBin Meng * with this program; if not, see <http://www.gnu.org/licenses/>. 21a937b302SBin Meng */ 22a937b302SBin Meng 23a937b302SBin Meng #ifndef MCHP_PFSOC_IOSCB_H 24a937b302SBin Meng #define MCHP_PFSOC_IOSCB_H 25a937b302SBin Meng 267a5951f6SMarkus Armbruster #include "hw/sysbus.h" 277a5951f6SMarkus Armbruster 28a937b302SBin Meng typedef struct MchpPfSoCIoscbState { 29a937b302SBin Meng SysBusDevice parent; 30a937b302SBin Meng MemoryRegion container; 31a937b302SBin Meng MemoryRegion lane01; 32a937b302SBin Meng MemoryRegion lane23; 33a937b302SBin Meng MemoryRegion ctrl; 34592f0a94SConor Dooley MemoryRegion qspixip; 35592f0a94SConor Dooley MemoryRegion mailbox; 36a937b302SBin Meng MemoryRegion cfg; 3713cd1d6eSConor Dooley MemoryRegion ccc; 38a937b302SBin Meng MemoryRegion pll_mss; 39a937b302SBin Meng MemoryRegion cfm_mss; 40a937b302SBin Meng MemoryRegion pll_ddr; 41a937b302SBin Meng MemoryRegion bc_ddr; 42a937b302SBin Meng MemoryRegion io_calib_ddr; 43a937b302SBin Meng MemoryRegion pll_sgmii; 44a937b302SBin Meng MemoryRegion dll_sgmii; 45a937b302SBin Meng MemoryRegion cfm_sgmii; 46a937b302SBin Meng MemoryRegion bc_sgmii; 47a937b302SBin Meng MemoryRegion io_calib_sgmii; 48592f0a94SConor Dooley qemu_irq irq; 49a937b302SBin Meng } MchpPfSoCIoscbState; 50a937b302SBin Meng 51a937b302SBin Meng #define TYPE_MCHP_PFSOC_IOSCB "mchp.pfsoc.ioscb" 52a937b302SBin Meng 53a937b302SBin Meng #define MCHP_PFSOC_IOSCB(obj) \ 54a937b302SBin Meng OBJECT_CHECK(MchpPfSoCIoscbState, (obj), TYPE_MCHP_PFSOC_IOSCB) 55a937b302SBin Meng 56a937b302SBin Meng #endif /* MCHP_PFSOC_IOSCB_H */ 57