aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/timeriomem-rng.h
diff options
context:
space:
mode:
authorAlexander Clouter <alex@digriz.org.uk>2009-02-21 23:03:56 -0500
committerHerbert Xu <herbert@gondor.apana.org.au>2009-02-21 23:03:56 -0500
commit9c3c133b1ed6e6d01bfabb6de29bf3d0f0886354 (patch)
tree2e6b7184477f75820ce0947df0786920880e4d42 /include/linux/timeriomem-rng.h
parent0a2e821d627ad5ced23cf31137625b81cc205e0f (diff)
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>
Diffstat (limited to 'include/linux/timeriomem-rng.h')
-rw-r--r--include/linux/timeriomem-rng.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/include/linux/timeriomem-rng.h b/include/linux/timeriomem-rng.h
new file mode 100644
index 00000000000..dd253177f65
--- /dev/null
+++ b/include/linux/timeriomem-rng.h
@@ -0,0 +1,21 @@
1/*
2 * linux/include/linux/timeriomem-rng.h
3 *
4 * Copyright (c) 2009 Alexander Clouter <alex@digriz.org.uk>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10
11#include <linux/completion.h>
12
13struct timeriomem_rng_data {
14 struct completion completion;
15 unsigned int present:1;
16
17 u32 __iomem *address;
18
19 /* measures in usecs */
20 unsigned int period;
21};