xref: /qemu/include/hw/sd/aspeed_sdhci.h (revision 0e2c24c6267c1874daee71ecd98d1f2108ea7c66)
12bea128cSEddie James /*
22bea128cSEddie James  * Aspeed SD Host Controller
32bea128cSEddie James  * Eddie James <eajames@linux.ibm.com>
42bea128cSEddie James  *
52bea128cSEddie James  * Copyright (C) 2019 IBM Corp
62bea128cSEddie James  * SPDX-License-Identifer: GPL-2.0-or-later
72bea128cSEddie James  */
82bea128cSEddie James 
92bea128cSEddie James #ifndef ASPEED_SDHCI_H
102bea128cSEddie James #define ASPEED_SDHCI_H
112bea128cSEddie James 
122bea128cSEddie James #include "hw/sd/sdhci.h"
132bea128cSEddie James 
142bea128cSEddie James #define TYPE_ASPEED_SDHCI "aspeed.sdhci"
152bea128cSEddie James #define ASPEED_SDHCI(obj) OBJECT_CHECK(AspeedSDHCIState, (obj), \
162bea128cSEddie James                                        TYPE_ASPEED_SDHCI)
172bea128cSEddie James 
182bea128cSEddie James #define ASPEED_SDHCI_CAPABILITIES 0x01E80080
192bea128cSEddie James #define ASPEED_SDHCI_NUM_SLOTS    2
202bea128cSEddie James #define ASPEED_SDHCI_NUM_REGS     (ASPEED_SDHCI_REG_SIZE / sizeof(uint32_t))
212bea128cSEddie James #define ASPEED_SDHCI_REG_SIZE     0x100
222bea128cSEddie James 
232bea128cSEddie James typedef struct AspeedSDHCIState {
242bea128cSEddie James     SysBusDevice parent;
252bea128cSEddie James 
262bea128cSEddie James     SDHCIState slots[ASPEED_SDHCI_NUM_SLOTS];
27*0e2c24c6SAndrew Jeffery     uint8_t num_slots;
282bea128cSEddie James 
292bea128cSEddie James     MemoryRegion iomem;
302bea128cSEddie James     qemu_irq irq;
312bea128cSEddie James 
322bea128cSEddie James     uint32_t regs[ASPEED_SDHCI_NUM_REGS];
332bea128cSEddie James } AspeedSDHCIState;
342bea128cSEddie James 
352bea128cSEddie James #endif /* ASPEED_SDHCI_H */
36