hwrng: timeriomem - New driver
Some hardware platforms, the TS-7800[1] is one for example, can supply the kernel with an entropy source, albeit a slow one for TS-7800 users, by just reading a particular IO address. This source must not be read above a certain rate otherwise the quality suffers. The driver is then hooked into by calling platform_device_(register|add|del) passing a structure similar to: ------ static struct timeriomem_rng_data ts78xx_ts_rng_data = { .address = (u32 *__iomem) TS_RNG, .period = 1000000, /* one second */ }; static struct platform_device ts78xx_ts_rng_device = { .name = "timeriomem_rng", .id = -1, .dev = { .platform_data = &ts78xx_ts_rng_data, }, .num_resources = 0, }; ------ [1] http://www.embeddedarm.com/products/board-detail.php?product=TS-7800 Signed-off-by: Alexander Clouter <alex@digriz.org.uk> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
committed by
Herbert Xu
parent
0a2e821d62
commit
9c3c133b1e
21
include/linux/timeriomem-rng.h
Normal file
21
include/linux/timeriomem-rng.h
Normal file
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* linux/include/linux/timeriomem-rng.h
|
||||
*
|
||||
* Copyright (c) 2009 Alexander Clouter <alex@digriz.org.uk>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <linux/completion.h>
|
||||
|
||||
struct timeriomem_rng_data {
|
||||
struct completion completion;
|
||||
unsigned int present:1;
|
||||
|
||||
u32 __iomem *address;
|
||||
|
||||
/* measures in usecs */
|
||||
unsigned int period;
|
||||
};
|
Reference in New Issue
Block a user