1 /* 2 * Raspberry Pi (BCM2835) SD Host Controller 3 * 4 * Copyright (c) 2017 Antfield SAS 5 * 6 * Authors: 7 * Clement Deschamps <clement.deschamps@antfield.fr> 8 * Luc Michel <luc.michel@antfield.fr> 9 * 10 * This work is licensed under the terms of the GNU GPL, version 2 or later. 11 * See the COPYING file in the top-level directory. 12 */ 13 14 #ifndef BCM2835_SDHOST_H 15 #define BCM2835_SDHOST_H 16 17 #include "hw/sysbus.h" 18 #include "hw/sd/sd.h" 19 20 #define TYPE_BCM2835_SDHOST "bcm2835-sdhost" 21 #define BCM2835_SDHOST(obj) \ 22 OBJECT_CHECK(BCM2835SDHostState, (obj), TYPE_BCM2835_SDHOST) 23 24 #define BCM2835_SDHOST_FIFO_LEN 16 25 26 typedef struct { 27 SysBusDevice busdev; 28 SDBus sdbus; 29 MemoryRegion iomem; 30 31 uint32_t cmd; 32 uint32_t cmdarg; 33 uint32_t status; 34 uint32_t rsp[4]; 35 uint32_t config; 36 uint32_t edm; 37 uint32_t vdd; 38 uint32_t hbct; 39 uint32_t hblc; 40 int32_t fifo_pos; 41 int32_t fifo_len; 42 uint32_t fifo[BCM2835_SDHOST_FIFO_LEN]; 43 uint32_t datacnt; 44 45 qemu_irq irq; 46 } BCM2835SDHostState; 47 48 #endif 49