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" 13*db1015e9SEduardo Habkost #include "qom/object.h" 142bea128cSEddie James 152bea128cSEddie James #define TYPE_ASPEED_SDHCI "aspeed.sdhci" 16*db1015e9SEduardo Habkost typedef struct AspeedSDHCIState AspeedSDHCIState; 172bea128cSEddie James #define ASPEED_SDHCI(obj) OBJECT_CHECK(AspeedSDHCIState, (obj), \ 182bea128cSEddie James TYPE_ASPEED_SDHCI) 192bea128cSEddie James 202bea128cSEddie James #define ASPEED_SDHCI_CAPABILITIES 0x01E80080 212bea128cSEddie James #define ASPEED_SDHCI_NUM_SLOTS 2 222bea128cSEddie James #define ASPEED_SDHCI_NUM_REGS (ASPEED_SDHCI_REG_SIZE / sizeof(uint32_t)) 232bea128cSEddie James #define ASPEED_SDHCI_REG_SIZE 0x100 242bea128cSEddie James 25*db1015e9SEduardo Habkost struct AspeedSDHCIState { 262bea128cSEddie James SysBusDevice parent; 272bea128cSEddie James 282bea128cSEddie James SDHCIState slots[ASPEED_SDHCI_NUM_SLOTS]; 290e2c24c6SAndrew Jeffery uint8_t num_slots; 302bea128cSEddie James 312bea128cSEddie James MemoryRegion iomem; 322bea128cSEddie James qemu_irq irq; 332bea128cSEddie James 342bea128cSEddie James uint32_t regs[ASPEED_SDHCI_NUM_REGS]; 35*db1015e9SEduardo Habkost }; 362bea128cSEddie James 372bea128cSEddie James #endif /* ASPEED_SDHCI_H */ 38