Skip to content

Commit

Permalink
ARM: at91: at91sam9g45: add trng clock and platform device
Browse files Browse the repository at this point in the history
For the new hw_random driver.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
  • Loading branch information
Peter Korsgaard authored and Nicolas Ferre committed Oct 10, 2011
1 parent 976d167 commit 237a62a
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 0 deletions.
7 changes: 7 additions & 0 deletions arch/arm/mach-at91/at91sam9g45.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,11 @@ static struct clk pioDE_clk = {
.pmc_mask = 1 << AT91SAM9G45_ID_PIODE,
.type = CLK_TYPE_PERIPHERAL,
};
static struct clk trng_clk = {
.name = "trng_clk",
.pmc_mask = 1 << AT91SAM9G45_ID_TRNG,
.type = CLK_TYPE_PERIPHERAL,
};
static struct clk usart0_clk = {
.name = "usart0_clk",
.pmc_mask = 1 << AT91SAM9G45_ID_US0,
Expand Down Expand Up @@ -176,6 +181,7 @@ static struct clk *periph_clocks[] __initdata = {
&pioB_clk,
&pioC_clk,
&pioDE_clk,
&trng_clk,
&usart0_clk,
&usart1_clk,
&usart2_clk,
Expand Down Expand Up @@ -215,6 +221,7 @@ static struct clk_lookup periph_clocks_lookups[] = {
CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.1", &tcb0_clk),
CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc0_clk),
CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk),
CLKDEV_CON_DEV_ID(NULL, "atmel-trng", &trng_clk),
};

static struct clk_lookup usart_clocks_lookups[] = {
Expand Down
29 changes: 29 additions & 0 deletions arch/arm/mach-at91/at91sam9g45_devices.c
Original file line number Diff line number Diff line change
Expand Up @@ -1094,6 +1094,34 @@ static void __init at91_add_device_rtt(void)
}


/* --------------------------------------------------------------------
* TRNG
* -------------------------------------------------------------------- */

#if defined(CONFIG_HW_RANDOM_ATMEL) || defined(CONFIG_HW_RANDOM_ATMEL_MODULE)
static struct resource trng_resources[] = {
{
.start = AT91SAM9G45_BASE_TRNG,
.end = AT91SAM9G45_BASE_TRNG + SZ_16K - 1,
.flags = IORESOURCE_MEM,
},
};

static struct platform_device at91sam9g45_trng_device = {
.name = "atmel-trng",
.id = -1,
.resource = trng_resources,
.num_resources = ARRAY_SIZE(trng_resources),
};

static void __init at91_add_device_trng(void)
{
platform_device_register(&at91sam9g45_trng_device);
}
#else
static void __init at91_add_device_trng(void) {}
#endif

/* --------------------------------------------------------------------
* Watchdog
* -------------------------------------------------------------------- */
Expand Down Expand Up @@ -1583,6 +1611,7 @@ static int __init at91_add_standard_devices(void)
at91_add_device_hdmac();
at91_add_device_rtc();
at91_add_device_rtt();
at91_add_device_trng();
at91_add_device_watchdog();
at91_add_device_tc();
return 0;
Expand Down

0 comments on commit 237a62a

Please sign in to comment.