1f0396549SMartin Kaiser /* 2f0396549SMartin Kaiser * Freescale i.MX RNGC emulation 3f0396549SMartin Kaiser * 4f0396549SMartin Kaiser * Copyright (C) 2020 Martin Kaiser <martin@kaiser.cx> 5f0396549SMartin Kaiser * 6f0396549SMartin Kaiser * This work is licensed under the terms of the GNU GPL, version 2 or later. 7f0396549SMartin Kaiser * See the COPYING file in the top-level directory. 8f0396549SMartin Kaiser */ 9f0396549SMartin Kaiser 10f0396549SMartin Kaiser #ifndef IMX_RNGC_H 11f0396549SMartin Kaiser #define IMX_RNGC_H 12f0396549SMartin Kaiser 13f0396549SMartin Kaiser #include "hw/sysbus.h" 14db1015e9SEduardo Habkost #include "qom/object.h" 15f0396549SMartin Kaiser 16f0396549SMartin Kaiser #define TYPE_IMX_RNGC "imx.rngc" 17*8063396bSEduardo Habkost OBJECT_DECLARE_SIMPLE_TYPE(IMXRNGCState, IMX_RNGC) 18f0396549SMartin Kaiser 19db1015e9SEduardo Habkost struct IMXRNGCState { 20f0396549SMartin Kaiser /*< private >*/ 21f0396549SMartin Kaiser SysBusDevice parent_obj; 22f0396549SMartin Kaiser 23f0396549SMartin Kaiser /*< public >*/ 24f0396549SMartin Kaiser MemoryRegion iomem; 25f0396549SMartin Kaiser 26f0396549SMartin Kaiser uint8_t op_self_test; 27f0396549SMartin Kaiser uint8_t op_seed; 28f0396549SMartin Kaiser uint8_t mask; 29f0396549SMartin Kaiser bool auto_seed; 30f0396549SMartin Kaiser 31f0396549SMartin Kaiser QEMUBH *self_test_bh; 32f0396549SMartin Kaiser QEMUBH *seed_bh; 33f0396549SMartin Kaiser qemu_irq irq; 34db1015e9SEduardo Habkost }; 35f0396549SMartin Kaiser 36f0396549SMartin Kaiser #endif /* IMX_RNGC_H */ 37