Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/mips/bcm63xx/dev-rng.c
26444 views
1
/*
2
* This file is subject to the terms and conditions of the GNU General Public
3
* License. See the file "COPYING" in the main directory of this archive
4
* for more details.
5
*
6
* Copyright (C) 2011 Florian Fainelli <[email protected]>
7
*/
8
9
#include <linux/init.h>
10
#include <linux/kernel.h>
11
#include <linux/platform_device.h>
12
#include <bcm63xx_cpu.h>
13
14
static struct resource rng_resources[] = {
15
{
16
.start = -1, /* filled at runtime */
17
.end = -1, /* filled at runtime */
18
.flags = IORESOURCE_MEM,
19
},
20
};
21
22
static struct platform_device bcm63xx_rng_device = {
23
.name = "bcm63xx-rng",
24
.id = -1,
25
.num_resources = ARRAY_SIZE(rng_resources),
26
.resource = rng_resources,
27
};
28
29
static int __init bcm63xx_rng_register(void)
30
{
31
if (!BCMCPU_IS_6368())
32
return -ENODEV;
33
34
rng_resources[0].start = bcm63xx_regset_address(RSET_RNG);
35
rng_resources[0].end = rng_resources[0].start;
36
rng_resources[0].end += RSET_RNG_SIZE - 1;
37
38
return platform_device_register(&bcm63xx_rng_device);
39
}
40
arch_initcall(bcm63xx_rng_register);
41
42