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 15*c59f781eSAndrew Jeffery #include <stdint.h> 16*c59f781eSAndrew Jeffery 172ecf1726SCédric Le Goater #define TYPE_ASPEED_LPC "aspeed.lpc" 182ecf1726SCédric Le Goater #define ASPEED_LPC(obj) OBJECT_CHECK(AspeedLPCState, (obj), TYPE_ASPEED_LPC) 192ecf1726SCédric Le Goater 202ecf1726SCédric Le Goater #define ASPEED_LPC_NR_REGS (0x260 >> 2) 212ecf1726SCédric Le Goater 22*c59f781eSAndrew Jeffery enum aspeed_lpc_subdevice { 23*c59f781eSAndrew Jeffery aspeed_lpc_kcs_1 = 0, 24*c59f781eSAndrew Jeffery aspeed_lpc_kcs_2, 25*c59f781eSAndrew Jeffery aspeed_lpc_kcs_3, 26*c59f781eSAndrew Jeffery aspeed_lpc_kcs_4, 27*c59f781eSAndrew Jeffery aspeed_lpc_ibt, 28*c59f781eSAndrew Jeffery }; 29*c59f781eSAndrew Jeffery 30*c59f781eSAndrew Jeffery #define ASPEED_LPC_NR_SUBDEVS 5 31*c59f781eSAndrew Jeffery 322ecf1726SCédric Le Goater typedef struct AspeedLPCState { 332ecf1726SCédric Le Goater /* <private> */ 342ecf1726SCédric Le Goater SysBusDevice parent; 352ecf1726SCédric Le Goater 362ecf1726SCédric Le Goater /*< public >*/ 372ecf1726SCédric Le Goater MemoryRegion iomem; 382ecf1726SCédric Le Goater qemu_irq irq; 392ecf1726SCédric Le Goater 40*c59f781eSAndrew Jeffery qemu_irq subdevice_irqs[ASPEED_LPC_NR_SUBDEVS]; 41*c59f781eSAndrew Jeffery uint32_t subdevice_irqs_pending; 42*c59f781eSAndrew Jeffery 432ecf1726SCédric Le Goater uint32_t regs[ASPEED_LPC_NR_REGS]; 442ecf1726SCédric Le Goater uint32_t hicr7; 452ecf1726SCédric Le Goater } AspeedLPCState; 462ecf1726SCédric Le Goater 472ecf1726SCédric Le Goater #endif /* _ASPEED_LPC_H_ */ 48