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