xref: /qemu/include/hw/misc/imx_rngc.h (revision f03965490e4e4223903e79a4ec97139ccdd48e1b)
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