aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/devices.c
diff options
context:
space:
mode:
authorDmitry Kasatkin <dmitry.kasatkin@nokia.com>2010-05-02 23:10:03 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2010-05-02 23:10:03 -0400
commitee5500c45c4860a84bba502c6d9ef5af6395dad6 (patch)
treef83297e838f8fea3cc02ba2583850ddf219abb95 /arch/arm/mach-omap2/devices.c
parentc614e109c184edd7900d9ff4d6de9ef94bc4d85b (diff)
crypto: omap - Updates omap sham device related platform code
- registration with multi OMAP kernels support - clocks Signed-off-by: Dmitry Kasatkin <dmitry.kasatkin@nokia.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'arch/arm/mach-omap2/devices.c')
-rw-r--r--arch/arm/mach-omap2/devices.c58
1 files changed, 48 insertions, 10 deletions
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
index 23e4d7733610..7e7acc19bed0 100644
--- a/arch/arm/mach-omap2/devices.c
+++ b/arch/arm/mach-omap2/devices.c
@@ -26,6 +26,7 @@
26#include <plat/mux.h> 26#include <plat/mux.h>
27#include <mach/gpio.h> 27#include <mach/gpio.h>
28#include <plat/mmc.h> 28#include <plat/mmc.h>
29#include <plat/dma.h>
29 30
30#include "mux.h" 31#include "mux.h"
31 32
@@ -453,8 +454,10 @@ static void omap_init_mcspi(void)
453static inline void omap_init_mcspi(void) {} 454static inline void omap_init_mcspi(void) {}
454#endif 455#endif
455 456
456#ifdef CONFIG_OMAP_SHA1_MD5 457#if defined(CONFIG_CRYPTO_DEV_OMAP_SHAM) || defined(CONFIG_CRYPTO_DEV_OMAP_SHAM_MODULE)
457static struct resource sha1_md5_resources[] = { 458
459#ifdef CONFIG_ARCH_OMAP24XX
460static struct resource omap2_sham_resources[] = {
458 { 461 {
459 .start = OMAP24XX_SEC_SHA1MD5_BASE, 462 .start = OMAP24XX_SEC_SHA1MD5_BASE,
460 .end = OMAP24XX_SEC_SHA1MD5_BASE + 0x64, 463 .end = OMAP24XX_SEC_SHA1MD5_BASE + 0x64,
@@ -465,20 +468,55 @@ static struct resource sha1_md5_resources[] = {
465 .flags = IORESOURCE_IRQ, 468 .flags = IORESOURCE_IRQ,
466 } 469 }
467}; 470};
471static int omap2_sham_resources_sz = ARRAY_SIZE(omap2_sham_resources);
472#else
473#define omap2_sham_resources NULL
474#define omap2_sham_resources_sz 0
475#endif
468 476
469static struct platform_device sha1_md5_device = { 477#ifdef CONFIG_ARCH_OMAP34XX
470 .name = "OMAP SHA1/MD5", 478static struct resource omap3_sham_resources[] = {
479 {
480 .start = OMAP34XX_SEC_SHA1MD5_BASE,
481 .end = OMAP34XX_SEC_SHA1MD5_BASE + 0x64,
482 .flags = IORESOURCE_MEM,
483 },
484 {
485 .start = INT_34XX_SHA1MD52_IRQ,
486 .flags = IORESOURCE_IRQ,
487 },
488 {
489 .start = OMAP34XX_DMA_SHA1MD5_RX,
490 .flags = IORESOURCE_DMA,
491 }
492};
493static int omap3_sham_resources_sz = ARRAY_SIZE(omap3_sham_resources);
494#else
495#define omap3_sham_resources NULL
496#define omap3_sham_resources_sz 0
497#endif
498
499static struct platform_device sham_device = {
500 .name = "omap-sham",
471 .id = -1, 501 .id = -1,
472 .num_resources = ARRAY_SIZE(sha1_md5_resources),
473 .resource = sha1_md5_resources,
474}; 502};
475 503
476static void omap_init_sha1_md5(void) 504static void omap_init_sham(void)
477{ 505{
478 platform_device_register(&sha1_md5_device); 506 if (cpu_is_omap24xx()) {
507 sham_device.resource = omap2_sham_resources;
508 sham_device.num_resources = omap2_sham_resources_sz;
509 } else if (cpu_is_omap34xx()) {
510 sham_device.resource = omap3_sham_resources;
511 sham_device.num_resources = omap3_sham_resources_sz;
512 } else {
513 pr_err("%s: platform not supported\n", __func__);
514 return;
515 }
516 platform_device_register(&sham_device);
479} 517}
480#else 518#else
481static inline void omap_init_sha1_md5(void) { } 519static inline void omap_init_sham(void) { }
482#endif 520#endif
483 521
484/*-------------------------------------------------------------------------*/ 522/*-------------------------------------------------------------------------*/
@@ -799,7 +837,7 @@ static int __init omap2_init_devices(void)
799 omap_init_mcspi(); 837 omap_init_mcspi();
800 omap_hdq_init(); 838 omap_hdq_init();
801 omap_init_sti(); 839 omap_init_sti();
802 omap_init_sha1_md5(); 840 omap_init_sham();
803 841
804 return 0; 842 return 0;
805} 843}