#include <linux/platform_device.h>
 #include <linux/i2c-gpio.h>
 #include <linux/atmel-mci.h>
-#include <linux/platform_data/atmel-aes.h>
+#include <linux/platform_data/crypto-atmel.h>
 
 #include <linux/platform_data/at91_adc.h>
 
  * -------------------------------------------------------------------- */
 
 #if defined(CONFIG_CRYPTO_DEV_ATMEL_AES) || defined(CONFIG_CRYPTO_DEV_ATMEL_AES_MODULE)
-static struct aes_platform_data aes_data;
+static struct crypto_platform_data aes_data;
+static struct crypto_dma_data alt_atslave;
 static u64 aes_dmamask = DMA_BIT_MASK(32);
 
 static struct resource aes_resources[] = {
 static void __init at91_add_device_aes(void)
 {
        struct at_dma_slave     *atslave;
-       struct aes_dma_data     *alt_atslave;
-
-       alt_atslave = kzalloc(sizeof(struct aes_dma_data), GFP_KERNEL);
 
        /* DMA TX slave channel configuration */
-       atslave = &alt_atslave->txdata;
+       atslave = &alt_atslave.txdata;
        atslave->dma_dev = &at_hdmac_device.dev;
        atslave->cfg = ATC_FIFOCFG_ENOUGHSPACE  | ATC_SRC_H2SEL_HW |
                                                ATC_SRC_PER(AT_DMA_ID_AES_RX);
 
        /* DMA RX slave channel configuration */
-       atslave = &alt_atslave->rxdata;
+       atslave = &alt_atslave.rxdata;
        atslave->dma_dev = &at_hdmac_device.dev;
        atslave->cfg = ATC_FIFOCFG_ENOUGHSPACE  | ATC_DST_H2SEL_HW |
                                                ATC_DST_PER(AT_DMA_ID_AES_TX);
 
-       aes_data.dma_slave = alt_atslave;
+       aes_data.dma_slave = &alt_atslave;
        platform_device_register(&at91sam9g45_aes_device);
 }
 #else
 
+++ /dev/null
-#ifndef __LINUX_ATMEL_AES_H
-#define __LINUX_ATMEL_AES_H
-
-#include <linux/platform_data/dma-atmel.h>
-
-/**
- * struct aes_dma_data - DMA data for AES
- */
-struct aes_dma_data {
-       struct at_dma_slave     txdata;
-       struct at_dma_slave     rxdata;
-};
-
-/**
- * struct aes_platform_data - board-specific AES configuration
- * @dma_slave: DMA slave interface to use in data transfers.
- */
-struct aes_platform_data {
-       struct aes_dma_data     *dma_slave;
-};
-
-#endif /* __LINUX_ATMEL_AES_H */
 
--- /dev/null
+#ifndef __LINUX_CRYPTO_ATMEL_H
+#define __LINUX_CRYPTO_ATMEL_H
+
+#include <linux/platform_data/dma-atmel.h>
+
+/**
+ * struct crypto_dma_data - DMA data for AES/TDES/SHA
+ */
+struct crypto_dma_data {
+       struct at_dma_slave     txdata;
+       struct at_dma_slave     rxdata;
+};
+
+/**
+ * struct crypto_platform_data - board-specific AES/TDES/SHA configuration
+ * @dma_slave: DMA slave interface to use in data transfers.
+ */
+struct crypto_platform_data {
+       struct crypto_dma_data  *dma_slave;
+};
+
+#endif /* __LINUX_CRYPTO_ATMEL_H */