#include <linux/platform_device.h>
  #include <linux/dma-mapping.h>
  #include <linux/sys_soc.h>
 +#include <linux/amba/bus.h>
  #include <plat/i2c.h>
+ #include <mach/crypto-ux500.h>
  
 -extern struct amba_device *
 -dbx500_add_amba_device(struct device *parent, const char *name,
 -                     resource_size_t base, int irq, void *pdata,
 -                     unsigned int periphid);
 -
 -extern struct platform_device *
 -dbx500_add_platform_device_noirq(const char *name, int id,
 -              resource_size_t base, void *pdata);
 -
  struct spi_master_cntlr;
  
  static inline struct amba_device *
  static inline struct amba_device *
  dbx500_add_rtc(struct device *parent, resource_size_t base, int irq)
  {
 -      return dbx500_add_amba_device(parent, "rtc-pl031", base, irq, NULL, 0);
 +      return amba_apb_device_add(parent, "rtc-pl031", base, SZ_4K, irq,
 +                              0, NULL, 0);
  }
  
+ struct cryp_platform_data;
+ 
+ static inline struct platform_device *
+ dbx500_add_cryp1(struct device *parent, int id, resource_size_t base, int irq,
+               struct cryp_platform_data *pdata)
+ {
+       struct resource res[] = {
+                       DEFINE_RES_MEM(base, SZ_4K),
+                       DEFINE_RES_IRQ(irq),
+       };
+ 
+       struct platform_device_info pdevinfo = {
+                       .parent = parent,
+                       .name = "cryp1",
+                       .id = id,
+                       .res = res,
+                       .num_res = ARRAY_SIZE(res),
+                       .data = pdata,
+                       .size_data = sizeof(*pdata),
+                       .dma_mask = DMA_BIT_MASK(32),
+       };
+ 
+       return platform_device_register_full(&pdevinfo);
+ }
+ 
+ struct hash_platform_data;
+ 
+ static inline struct platform_device *
+ dbx500_add_hash1(struct device *parent, int id, resource_size_t base,
+               struct hash_platform_data *pdata)
+ {
+       struct resource res[] = {
+                       DEFINE_RES_MEM(base, SZ_4K),
+       };
+ 
+       struct platform_device_info pdevinfo = {
+                       .parent = parent,
+                       .name = "hash1",
+                       .id = id,
+                       .res = res,
+                       .num_res = ARRAY_SIZE(res),
+                       .data = pdata,
+                       .size_data = sizeof(*pdata),
+                       .dma_mask = DMA_BIT_MASK(32),
+       };
+ 
+       return platform_device_register_full(&pdevinfo);
+ }
+ 
  struct nmk_gpio_platform_data;
  
  void dbx500_add_gpios(struct device *parent, resource_size_t *base, int num,
 
          To compile this driver as a module, choose M here: the module
          will be called tegra-aes.
  
 +config CRYPTO_DEV_NX
 +      tristate "Support for Power7+ in-Nest cryptographic accleration"
 +      depends on PPC64 && IBMVIO
 +      select CRYPTO_AES
 +      select CRYPTO_CBC
 +      select CRYPTO_ECB
 +      select CRYPTO_CCM
 +      select CRYPTO_GCM
 +      select CRYPTO_AUTHENC
 +      select CRYPTO_XCBC
 +      select CRYPTO_SHA256
 +      select CRYPTO_SHA512
 +      help
 +        Support for Power7+ in-Nest cryptographic acceleration. This
 +        module supports acceleration for AES and SHA2 algorithms. If you
 +        choose 'M' here, this module will be called nx_crypto.
 +
+ config CRYPTO_DEV_UX500
+       tristate "Driver for ST-Ericsson UX500 crypto hardware acceleration"
+       depends on ARCH_U8500
+       select CRYPTO_ALGAPI
+       help
+         Driver for ST-Ericsson UX500 crypto engine.
+ 
+ if CRYPTO_DEV_UX500
+       source "drivers/crypto/ux500/Kconfig"
+ endif # if CRYPTO_DEV_UX500
+ 
  endif # CRYPTO_HW