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