xref: /openbmc/qemu/include/hw/ide/ahci-sysbus.h (revision fbb5945e)
1*fbb5945eSPhilippe Mathieu-Daudé /*
2*fbb5945eSPhilippe Mathieu-Daudé  * QEMU AHCI Emulation (MMIO-mapped devices)
3*fbb5945eSPhilippe Mathieu-Daudé  *
4*fbb5945eSPhilippe Mathieu-Daudé  * SPDX-License-Identifier: GPL-2.0-or-later
5*fbb5945eSPhilippe Mathieu-Daudé  */
6*fbb5945eSPhilippe Mathieu-Daudé #ifndef HW_IDE_AHCI_SYSBUS_H
7*fbb5945eSPhilippe Mathieu-Daudé #define HW_IDE_AHCI_SYSBUS_H
8*fbb5945eSPhilippe Mathieu-Daudé 
9*fbb5945eSPhilippe Mathieu-Daudé #include "qom/object.h"
10*fbb5945eSPhilippe Mathieu-Daudé #include "hw/sysbus.h"
11*fbb5945eSPhilippe Mathieu-Daudé #include "hw/ide/ahci.h"
12*fbb5945eSPhilippe Mathieu-Daudé 
13*fbb5945eSPhilippe Mathieu-Daudé #define TYPE_SYSBUS_AHCI "sysbus-ahci"
14*fbb5945eSPhilippe Mathieu-Daudé OBJECT_DECLARE_SIMPLE_TYPE(SysbusAHCIState, SYSBUS_AHCI)
15*fbb5945eSPhilippe Mathieu-Daudé 
16*fbb5945eSPhilippe Mathieu-Daudé struct SysbusAHCIState {
17*fbb5945eSPhilippe Mathieu-Daudé     SysBusDevice parent_obj;
18*fbb5945eSPhilippe Mathieu-Daudé 
19*fbb5945eSPhilippe Mathieu-Daudé     AHCIState ahci;
20*fbb5945eSPhilippe Mathieu-Daudé };
21*fbb5945eSPhilippe Mathieu-Daudé 
22*fbb5945eSPhilippe Mathieu-Daudé #define TYPE_ALLWINNER_AHCI "allwinner-ahci"
23*fbb5945eSPhilippe Mathieu-Daudé OBJECT_DECLARE_SIMPLE_TYPE(AllwinnerAHCIState, ALLWINNER_AHCI)
24*fbb5945eSPhilippe Mathieu-Daudé 
25*fbb5945eSPhilippe Mathieu-Daudé #define ALLWINNER_AHCI_MMIO_OFF  0x80
26*fbb5945eSPhilippe Mathieu-Daudé #define ALLWINNER_AHCI_MMIO_SIZE 0x80
27*fbb5945eSPhilippe Mathieu-Daudé 
28*fbb5945eSPhilippe Mathieu-Daudé struct AllwinnerAHCIState {
29*fbb5945eSPhilippe Mathieu-Daudé     SysbusAHCIState parent_obj;
30*fbb5945eSPhilippe Mathieu-Daudé 
31*fbb5945eSPhilippe Mathieu-Daudé     MemoryRegion mmio;
32*fbb5945eSPhilippe Mathieu-Daudé     uint32_t regs[ALLWINNER_AHCI_MMIO_SIZE / 4];
33*fbb5945eSPhilippe Mathieu-Daudé };
34*fbb5945eSPhilippe Mathieu-Daudé 
35*fbb5945eSPhilippe Mathieu-Daudé #endif
36