1*e2fd695eSMark Cave-Ayland /* 2*e2fd695eSMark Cave-Ayland * djMEMC, macintosh memory and interrupt controller 3*e2fd695eSMark Cave-Ayland * (Quadra 610/650/800 & Centris 610/650) 4*e2fd695eSMark Cave-Ayland * 5*e2fd695eSMark Cave-Ayland * SPDX-License-Identifier: GPL-2.0-or-later 6*e2fd695eSMark Cave-Ayland */ 7*e2fd695eSMark Cave-Ayland 8*e2fd695eSMark Cave-Ayland #ifndef HW_MISC_DJMEMC_H 9*e2fd695eSMark Cave-Ayland #define HW_MISC_DJMEMC_H 10*e2fd695eSMark Cave-Ayland 11*e2fd695eSMark Cave-Ayland #include "hw/sysbus.h" 12*e2fd695eSMark Cave-Ayland 13*e2fd695eSMark Cave-Ayland #define DJMEMC_SIZE 0x2000 14*e2fd695eSMark Cave-Ayland #define DJMEMC_NUM_REGS (0x38 / sizeof(uint32_t)) 15*e2fd695eSMark Cave-Ayland 16*e2fd695eSMark Cave-Ayland #define DJMEMC_MAXBANKS 10 17*e2fd695eSMark Cave-Ayland 18*e2fd695eSMark Cave-Ayland struct DJMEMCState { 19*e2fd695eSMark Cave-Ayland SysBusDevice parent_obj; 20*e2fd695eSMark Cave-Ayland 21*e2fd695eSMark Cave-Ayland MemoryRegion mem_regs; 22*e2fd695eSMark Cave-Ayland 23*e2fd695eSMark Cave-Ayland /* Memory controller */ 24*e2fd695eSMark Cave-Ayland uint32_t regs[DJMEMC_NUM_REGS]; 25*e2fd695eSMark Cave-Ayland }; 26*e2fd695eSMark Cave-Ayland 27*e2fd695eSMark Cave-Ayland #define TYPE_DJMEMC "djMEMC" 28*e2fd695eSMark Cave-Ayland OBJECT_DECLARE_SIMPLE_TYPE(DJMEMCState, DJMEMC); 29*e2fd695eSMark Cave-Ayland 30*e2fd695eSMark Cave-Ayland #endif 31