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