10c69996eSAndrew Jeffery /* 20c69996eSAndrew Jeffery * ASPEED Interrupt Controller (New) 30c69996eSAndrew Jeffery * 40c69996eSAndrew Jeffery * Andrew Jeffery <andrew@aj.id.au> 50c69996eSAndrew Jeffery * 60c69996eSAndrew Jeffery * Copyright 2016 IBM Corp. 70c69996eSAndrew Jeffery * 80c69996eSAndrew Jeffery * This code is licensed under the GPL version 2 or later. See 90c69996eSAndrew Jeffery * the COPYING file in the top-level directory. 100c69996eSAndrew Jeffery * 110c69996eSAndrew Jeffery * Need to add SVIC and CVIC support 120c69996eSAndrew Jeffery */ 130c69996eSAndrew Jeffery #ifndef ASPEED_VIC_H 140c69996eSAndrew Jeffery #define ASPEED_VIC_H 150c69996eSAndrew Jeffery 160c69996eSAndrew Jeffery #include "hw/sysbus.h" 17db1015e9SEduardo Habkost #include "qom/object.h" 180c69996eSAndrew Jeffery 190c69996eSAndrew Jeffery #define TYPE_ASPEED_VIC "aspeed.vic" 20*8063396bSEduardo Habkost OBJECT_DECLARE_SIMPLE_TYPE(AspeedVICState, ASPEED_VIC) 210c69996eSAndrew Jeffery 220c69996eSAndrew Jeffery #define ASPEED_VIC_NR_IRQS 51 230c69996eSAndrew Jeffery 24db1015e9SEduardo Habkost struct AspeedVICState { 250c69996eSAndrew Jeffery /*< private >*/ 260c69996eSAndrew Jeffery SysBusDevice parent_obj; 270c69996eSAndrew Jeffery 280c69996eSAndrew Jeffery /*< public >*/ 290c69996eSAndrew Jeffery MemoryRegion iomem; 300c69996eSAndrew Jeffery qemu_irq irq; 310c69996eSAndrew Jeffery qemu_irq fiq; 320c69996eSAndrew Jeffery 330c69996eSAndrew Jeffery uint64_t level; 340c69996eSAndrew Jeffery uint64_t raw; 350c69996eSAndrew Jeffery uint64_t select; 360c69996eSAndrew Jeffery uint64_t enable; 370c69996eSAndrew Jeffery uint64_t trigger; 380c69996eSAndrew Jeffery 390c69996eSAndrew Jeffery /* 0=edge, 1=level */ 400c69996eSAndrew Jeffery uint64_t sense; 410c69996eSAndrew Jeffery 420c69996eSAndrew Jeffery /* 0=single-edge, 1=dual-edge */ 430c69996eSAndrew Jeffery uint64_t dual_edge; 440c69996eSAndrew Jeffery 450c69996eSAndrew Jeffery /* 0=low-sensitive/falling-edge, 1=high-sensitive/rising-edge */ 460c69996eSAndrew Jeffery uint64_t event; 47db1015e9SEduardo Habkost }; 480c69996eSAndrew Jeffery 490c69996eSAndrew Jeffery #endif /* ASPEED_VIC_H */ 50