xref: /openbmc/qemu/include/hw/sd/bcm2835_sdhost.h (revision 2ba60ec1)
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