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