1*2bea128cSEddie James /* 2*2bea128cSEddie James * Aspeed SD Host Controller 3*2bea128cSEddie James * Eddie James <eajames@linux.ibm.com> 4*2bea128cSEddie James * 5*2bea128cSEddie James * Copyright (C) 2019 IBM Corp 6*2bea128cSEddie James * SPDX-License-Identifer: GPL-2.0-or-later 7*2bea128cSEddie James */ 8*2bea128cSEddie James 9*2bea128cSEddie James #ifndef ASPEED_SDHCI_H 10*2bea128cSEddie James #define ASPEED_SDHCI_H 11*2bea128cSEddie James 12*2bea128cSEddie James #include "hw/sd/sdhci.h" 13*2bea128cSEddie James 14*2bea128cSEddie James #define TYPE_ASPEED_SDHCI "aspeed.sdhci" 15*2bea128cSEddie James #define ASPEED_SDHCI(obj) OBJECT_CHECK(AspeedSDHCIState, (obj), \ 16*2bea128cSEddie James TYPE_ASPEED_SDHCI) 17*2bea128cSEddie James 18*2bea128cSEddie James #define ASPEED_SDHCI_CAPABILITIES 0x01E80080 19*2bea128cSEddie James #define ASPEED_SDHCI_NUM_SLOTS 2 20*2bea128cSEddie James #define ASPEED_SDHCI_NUM_REGS (ASPEED_SDHCI_REG_SIZE / sizeof(uint32_t)) 21*2bea128cSEddie James #define ASPEED_SDHCI_REG_SIZE 0x100 22*2bea128cSEddie James 23*2bea128cSEddie James typedef struct AspeedSDHCIState { 24*2bea128cSEddie James SysBusDevice parent; 25*2bea128cSEddie James 26*2bea128cSEddie James SDHCIState slots[ASPEED_SDHCI_NUM_SLOTS]; 27*2bea128cSEddie James 28*2bea128cSEddie James MemoryRegion iomem; 29*2bea128cSEddie James qemu_irq irq; 30*2bea128cSEddie James 31*2bea128cSEddie James uint32_t regs[ASPEED_SDHCI_NUM_REGS]; 32*2bea128cSEddie James } AspeedSDHCIState; 33*2bea128cSEddie James 34*2bea128cSEddie James #endif /* ASPEED_SDHCI_H */ 35