xref: /qemu/include/hw/misc/aspeed_sdmc.h (revision c6c7cfb01a00be0553f6694bbe71d45fc5e068c8)
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