| 1 | /* |
| 2 | * Aspeed SD Host Controller |
| 3 | * Eddie James <eajames@linux.ibm.com> |
| 4 | * |
| 5 | * Copyright (C) 2019 IBM Corp |
| 6 | * SPDX-License-Identifier: GPL-2.0-or-later |
| 7 | */ |
| 8 | |
| 9 | #ifndef ASPEED_SDHCI_H |
| 10 | #define ASPEED_SDHCI_H |
| 11 | |
| 12 | #include "hw/sd/sdhci.h" |
| 13 | #include "qom/object.h" |
| 14 | |
| 15 | #define TYPE_ASPEED_SDHCI "aspeed.sdhci" |
| 16 | #define TYPE_ASPEED_2400_SDHCI TYPE_ASPEED_SDHCI "-ast2400" |
| 17 | #define TYPE_ASPEED_2500_SDHCI TYPE_ASPEED_SDHCI "-ast2500" |
| 18 | #define TYPE_ASPEED_2600_SDHCI TYPE_ASPEED_SDHCI "-ast2600" |
| 19 | #define TYPE_ASPEED_2700_SDHCI TYPE_ASPEED_SDHCI "-ast2700" |
| 20 | OBJECT_DECLARE_TYPE(AspeedSDHCIState, AspeedSDHCIClass, ASPEED_SDHCI) |
| 21 | |
| 22 | #define ASPEED_SDHCI_NUM_SLOTS 2 |
| 23 | #define ASPEED_SDHCI_NUM_REGS (ASPEED_SDHCI_REG_SIZE / sizeof(uint32_t)) |
| 24 | #define ASPEED_SDHCI_REG_SIZE 0x100 |
| 25 | |
| 26 | struct AspeedSDHCIState { |
| 27 | SysBusDevice parent; |
| 28 | |
| 29 | SDHCIState slots[ASPEED_SDHCI_NUM_SLOTS]; |
| 30 | uint8_t num_slots; |
| 31 | |
| 32 | MemoryRegion iomem; |
| 33 | qemu_irq irq; |
| 34 | |
| 35 | uint32_t regs[ASPEED_SDHCI_NUM_REGS]; |
| 36 | }; |
| 37 | |
| 38 | struct AspeedSDHCIClass { |
| 39 | SysBusDeviceClass parent_class; |
| 40 | |
| 41 | uint64_t capareg; |
| 42 | }; |
| 43 | |
| 44 | #endif /* ASPEED_SDHCI_H */ |