/* * Aspeed SD Host Controller * Eddie James * * Copyright (C) 2019 IBM Corp * SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef ASPEED_SDHCI_H #define ASPEED_SDHCI_H #include "hw/sd/sdhci.h" #include "qom/object.h" #define TYPE_ASPEED_SDHCI "aspeed.sdhci" #define TYPE_ASPEED_2400_SDHCI TYPE_ASPEED_SDHCI "-ast2400" #define TYPE_ASPEED_2500_SDHCI TYPE_ASPEED_SDHCI "-ast2500" #define TYPE_ASPEED_2600_SDHCI TYPE_ASPEED_SDHCI "-ast2600" #define TYPE_ASPEED_2700_SDHCI TYPE_ASPEED_SDHCI "-ast2700" OBJECT_DECLARE_TYPE(AspeedSDHCIState, AspeedSDHCIClass, ASPEED_SDHCI) #define ASPEED_SDHCI_NUM_SLOTS 2 #define ASPEED_SDHCI_NUM_REGS (ASPEED_SDHCI_REG_SIZE / sizeof(uint32_t)) #define ASPEED_SDHCI_REG_SIZE 0x100 struct AspeedSDHCIState { SysBusDevice parent; SDHCIState slots[ASPEED_SDHCI_NUM_SLOTS]; uint8_t num_slots; MemoryRegion iomem; qemu_irq irq; uint32_t regs[ASPEED_SDHCI_NUM_REGS]; }; struct AspeedSDHCIClass { SysBusDeviceClass parent_class; uint64_t capareg; }; #endif /* ASPEED_SDHCI_H */