xref: /qemu/include/hw/sd/aspeed_sdhci.h (revision a5ba0a7e4e150d1350a041f0d0ef9ca6c8d7c307)
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
65054ba10SRyan Finnie  * SPDX-License-Identifier: 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"
13db1015e9SEduardo Habkost #include "qom/object.h"
142bea128cSEddie James 
152bea128cSEddie James #define TYPE_ASPEED_SDHCI "aspeed.sdhci"
166a0238a4SJamin Lin #define TYPE_ASPEED_2400_SDHCI TYPE_ASPEED_SDHCI "-ast2400"
176a0238a4SJamin Lin #define TYPE_ASPEED_2500_SDHCI TYPE_ASPEED_SDHCI "-ast2500"
186a0238a4SJamin Lin #define TYPE_ASPEED_2600_SDHCI TYPE_ASPEED_SDHCI "-ast2600"
19*83991b91SJamin Lin #define TYPE_ASPEED_2700_SDHCI TYPE_ASPEED_SDHCI "-ast2700"
206a0238a4SJamin Lin OBJECT_DECLARE_TYPE(AspeedSDHCIState, AspeedSDHCIClass, ASPEED_SDHCI)
212bea128cSEddie James 
222bea128cSEddie James #define ASPEED_SDHCI_NUM_SLOTS    2
232bea128cSEddie James #define ASPEED_SDHCI_NUM_REGS     (ASPEED_SDHCI_REG_SIZE / sizeof(uint32_t))
242bea128cSEddie James #define ASPEED_SDHCI_REG_SIZE     0x100
252bea128cSEddie James 
26db1015e9SEduardo Habkost struct AspeedSDHCIState {
272bea128cSEddie James     SysBusDevice parent;
282bea128cSEddie James 
292bea128cSEddie James     SDHCIState slots[ASPEED_SDHCI_NUM_SLOTS];
300e2c24c6SAndrew Jeffery     uint8_t num_slots;
312bea128cSEddie James 
322bea128cSEddie James     MemoryRegion iomem;
332bea128cSEddie James     qemu_irq irq;
342bea128cSEddie James 
352bea128cSEddie James     uint32_t regs[ASPEED_SDHCI_NUM_REGS];
36db1015e9SEduardo Habkost };
372bea128cSEddie James 
386a0238a4SJamin Lin struct AspeedSDHCIClass {
396a0238a4SJamin Lin     SysBusDeviceClass parent_class;
406a0238a4SJamin Lin 
416a0238a4SJamin Lin     uint64_t capareg;
426a0238a4SJamin Lin };
436a0238a4SJamin Lin 
442bea128cSEddie James #endif /* ASPEED_SDHCI_H */
45