1c2da8a8bSCédric Le Goater /* 2c2da8a8bSCédric Le Goater * ASPEED SDRAM Memory Controller 3c2da8a8bSCédric Le Goater * 4c2da8a8bSCédric Le Goater * Copyright (C) 2016 IBM Corp. 5c2da8a8bSCédric Le Goater * 6c2da8a8bSCédric Le Goater * This code is licensed under the GPL version 2 or later. See the 7c2da8a8bSCédric Le Goater * COPYING file in the top-level directory. 8c2da8a8bSCédric Le Goater */ 9c2da8a8bSCédric Le Goater #ifndef ASPEED_SDMC_H 10c2da8a8bSCédric Le Goater #define ASPEED_SDMC_H 11c2da8a8bSCédric Le Goater 12c2da8a8bSCédric Le Goater #include "hw/sysbus.h" 13c2da8a8bSCédric Le Goater 14c2da8a8bSCédric Le Goater #define TYPE_ASPEED_SDMC "aspeed.sdmc" 15c2da8a8bSCédric Le Goater #define ASPEED_SDMC(obj) OBJECT_CHECK(AspeedSDMCState, (obj), TYPE_ASPEED_SDMC) 16c2da8a8bSCédric Le Goater 17c2da8a8bSCédric Le Goater #define ASPEED_SDMC_NR_REGS (0x8 >> 2) 18c2da8a8bSCédric Le Goater 19c2da8a8bSCédric Le Goater typedef struct AspeedSDMCState { 20c2da8a8bSCédric Le Goater /*< private >*/ 21c2da8a8bSCédric Le Goater SysBusDevice parent_obj; 22c2da8a8bSCédric Le Goater 23c2da8a8bSCédric Le Goater /*< public >*/ 24c2da8a8bSCédric Le Goater MemoryRegion iomem; 25c2da8a8bSCédric Le Goater 26c2da8a8bSCédric Le Goater uint32_t regs[ASPEED_SDMC_NR_REGS]; 27c2da8a8bSCédric Le Goater uint32_t silicon_rev; 283755f9e3SCédric Le Goater uint32_t ram_bits; 29*c6c7cfb0SCédric Le Goater uint64_t ram_size; 30c2da8a8bSCédric Le Goater 31c2da8a8bSCédric Le Goater } AspeedSDMCState; 32c2da8a8bSCédric Le Goater 33c2da8a8bSCédric Le Goater #endif /* ASPEED_SDMC_H */ 34