xref: /qemu/include/hw/misc/aspeed_lpc.h (revision ae2b5d8381a73b27f35f19c988d45c78bb4d5768)
12ecf1726SCédric Le Goater /*
22ecf1726SCédric Le Goater  *  ASPEED LPC Controller
32ecf1726SCédric Le Goater  *
42ecf1726SCédric Le Goater  *  Copyright (C) 2017-2018 IBM Corp.
52ecf1726SCédric Le Goater  *
62ecf1726SCédric Le Goater  * This code is licensed under the GPL version 2 or later.  See
72ecf1726SCédric Le Goater  * the COPYING file in the top-level directory.
82ecf1726SCédric Le Goater  */
92ecf1726SCédric Le Goater 
102ecf1726SCédric Le Goater #ifndef ASPEED_LPC_H
112ecf1726SCédric Le Goater #define ASPEED_LPC_H
122ecf1726SCédric Le Goater 
132ecf1726SCédric Le Goater #include "hw/sysbus.h"
142ecf1726SCédric Le Goater 
152ecf1726SCédric Le Goater #define TYPE_ASPEED_LPC "aspeed.lpc"
162ecf1726SCédric Le Goater #define ASPEED_LPC(obj) OBJECT_CHECK(AspeedLPCState, (obj), TYPE_ASPEED_LPC)
172ecf1726SCédric Le Goater 
182ecf1726SCédric Le Goater #define ASPEED_LPC_NR_REGS      (0x260 >> 2)
192ecf1726SCédric Le Goater 
20c59f781eSAndrew Jeffery enum aspeed_lpc_subdevice {
21c59f781eSAndrew Jeffery     aspeed_lpc_kcs_1 = 0,
22c59f781eSAndrew Jeffery     aspeed_lpc_kcs_2,
23c59f781eSAndrew Jeffery     aspeed_lpc_kcs_3,
24c59f781eSAndrew Jeffery     aspeed_lpc_kcs_4,
25c59f781eSAndrew Jeffery     aspeed_lpc_ibt,
26c59f781eSAndrew Jeffery };
27c59f781eSAndrew Jeffery 
28c59f781eSAndrew Jeffery #define ASPEED_LPC_NR_SUBDEVS   5
29c59f781eSAndrew Jeffery 
302ecf1726SCédric Le Goater typedef struct AspeedLPCState {
312ecf1726SCédric Le Goater     /* <private> */
322ecf1726SCédric Le Goater     SysBusDevice parent;
332ecf1726SCédric Le Goater 
342ecf1726SCédric Le Goater     /*< public >*/
352ecf1726SCédric Le Goater     MemoryRegion iomem;
362ecf1726SCédric Le Goater     qemu_irq irq;
372ecf1726SCédric Le Goater 
38c59f781eSAndrew Jeffery     qemu_irq subdevice_irqs[ASPEED_LPC_NR_SUBDEVS];
39c59f781eSAndrew Jeffery     uint32_t subdevice_irqs_pending;
40c59f781eSAndrew Jeffery 
412ecf1726SCédric Le Goater     uint32_t regs[ASPEED_LPC_NR_REGS];
422ecf1726SCédric Le Goater     uint32_t hicr7;
432ecf1726SCédric Le Goater } AspeedLPCState;
442ecf1726SCédric Le Goater 
45*ea9cea93SMarkus Armbruster #endif /* ASPEED_LPC_H */
46