1*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0+ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Copyright (c) 2019, Linaro Limited 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun #if !defined _RNG_H_ 7*4882a593Smuzhiyun #define _RNG_H_ 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun struct udevice; 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun /** 12*4882a593Smuzhiyun * dm_rng_read() - read a random number seed from the rng device 13*4882a593Smuzhiyun * @buffer: input buffer to put the read random seed into 14*4882a593Smuzhiyun * @size: number of bytes of random seed read 15*4882a593Smuzhiyun * 16*4882a593Smuzhiyun * Return: 0 if OK, -ve on error 17*4882a593Smuzhiyun */ 18*4882a593Smuzhiyun int dm_rng_read(struct udevice *dev, void *buffer, size_t size); 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun /* struct dm_rng_ops - Operations for the hwrng uclass */ 21*4882a593Smuzhiyun struct dm_rng_ops { 22*4882a593Smuzhiyun /** 23*4882a593Smuzhiyun * @read() - read a random number seed 24*4882a593Smuzhiyun * 25*4882a593Smuzhiyun * @data: input buffer to read the random seed 26*4882a593Smuzhiyun * @max: total number of bytes to read 27*4882a593Smuzhiyun * 28*4882a593Smuzhiyun * Return: 0 if OK, -ve on error 29*4882a593Smuzhiyun */ 30*4882a593Smuzhiyun int (*read)(struct udevice *dev, void *data, size_t max); 31*4882a593Smuzhiyun }; 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun #endif /* _RNG_H_ */ 34