| /* |
| * Raspberry Pi (BCM2835) SD Host Controller |
| * |
| * Copyright (c) 2017 Antfield SAS |
| * |
| * Authors: |
| * Clement Deschamps <clement.deschamps@antfield.fr> |
| * Luc Michel <luc.michel@antfield.fr> |
| * |
| * This work is licensed under the terms of the GNU GPL, version 2 or later. |
| * See the COPYING file in the top-level directory. |
| */ |
| |
| #ifndef BCM2835_SDHOST_H |
| #define BCM2835_SDHOST_H |
| |
| #include "hw/sysbus.h" |
| #include "hw/sd/sd.h" |
| #include "qom/object.h" |
| |
| #define TYPE_BCM2835_SDHOST "bcm2835-sdhost" |
| typedef struct BCM2835SDHostState BCM2835SDHostState; |
| DECLARE_INSTANCE_CHECKER(BCM2835SDHostState, BCM2835_SDHOST, |
| TYPE_BCM2835_SDHOST) |
| |
| #define BCM2835_SDHOST_FIFO_LEN 16 |
| |
| struct BCM2835SDHostState { |
| SysBusDevice busdev; |
| SDBus sdbus; |
| MemoryRegion iomem; |
| |
| uint32_t cmd; |
| uint32_t cmdarg; |
| uint32_t status; |
| uint32_t rsp[4]; |
| uint32_t config; |
| uint32_t edm; |
| uint32_t vdd; |
| uint32_t hbct; |
| uint32_t hblc; |
| int32_t fifo_pos; |
| int32_t fifo_len; |
| uint32_t fifo[BCM2835_SDHOST_FIFO_LEN]; |
| uint32_t datacnt; |
| |
| qemu_irq irq; |
| }; |
| |
| #endif |