1*326ccfe2SHavard Skinnemoen /* 2*326ccfe2SHavard Skinnemoen * Nuvoton NPCM7xx Random Number Generator. 3*326ccfe2SHavard Skinnemoen * 4*326ccfe2SHavard Skinnemoen * Copyright 2020 Google LLC 5*326ccfe2SHavard Skinnemoen * 6*326ccfe2SHavard Skinnemoen * This program is free software; you can redistribute it and/or modify it 7*326ccfe2SHavard Skinnemoen * under the terms of the GNU General Public License as published by the 8*326ccfe2SHavard Skinnemoen * Free Software Foundation; either version 2 of the License, or 9*326ccfe2SHavard Skinnemoen * (at your option) any later version. 10*326ccfe2SHavard Skinnemoen * 11*326ccfe2SHavard Skinnemoen * This program is distributed in the hope that it will be useful, but WITHOUT 12*326ccfe2SHavard Skinnemoen * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13*326ccfe2SHavard Skinnemoen * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14*326ccfe2SHavard Skinnemoen * for more details. 15*326ccfe2SHavard Skinnemoen */ 16*326ccfe2SHavard Skinnemoen #ifndef NPCM7XX_RNG_H 17*326ccfe2SHavard Skinnemoen #define NPCM7XX_RNG_H 18*326ccfe2SHavard Skinnemoen 19*326ccfe2SHavard Skinnemoen #include "hw/sysbus.h" 20*326ccfe2SHavard Skinnemoen 21*326ccfe2SHavard Skinnemoen typedef struct NPCM7xxRNGState { 22*326ccfe2SHavard Skinnemoen SysBusDevice parent; 23*326ccfe2SHavard Skinnemoen 24*326ccfe2SHavard Skinnemoen MemoryRegion iomem; 25*326ccfe2SHavard Skinnemoen 26*326ccfe2SHavard Skinnemoen uint8_t rngcs; 27*326ccfe2SHavard Skinnemoen uint8_t rngd; 28*326ccfe2SHavard Skinnemoen uint8_t rngmode; 29*326ccfe2SHavard Skinnemoen } NPCM7xxRNGState; 30*326ccfe2SHavard Skinnemoen 31*326ccfe2SHavard Skinnemoen #define TYPE_NPCM7XX_RNG "npcm7xx-rng" 32*326ccfe2SHavard Skinnemoen #define NPCM7XX_RNG(obj) OBJECT_CHECK(NPCM7xxRNGState, (obj), TYPE_NPCM7XX_RNG) 33*326ccfe2SHavard Skinnemoen 34*326ccfe2SHavard Skinnemoen #endif /* NPCM7XX_RNG_H */ 35