Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal
[platform/adaptation/renesas_rcar/renesas_kernel.git] / arch / arm / mach-ux500 / board-mop500.c
index 4bc0cbc..fba8ade 100644 (file)
@@ -47,6 +47,7 @@
 #include <mach/setup.h>
 #include <mach/devices.h>
 #include <mach/irqs.h>
+#include <mach/crypto-ux500.h>
 
 #include "ste-dma40-db8500.h"
 #include "devices-db8500.h"
@@ -205,7 +206,7 @@ static struct resource ab8500_resources[] = {
 };
 
 struct platform_device ab8500_device = {
-       .name = "ab8500-i2c",
+       .name = "ab8500-core",
        .id = 0,
        .dev = {
                .platform_data = &ab8500_platdata,
@@ -417,6 +418,45 @@ static void mop500_prox_deactivate(struct device *dev)
        regulator_put(prox_regulator);
 }
 
+static struct cryp_platform_data u8500_cryp1_platform_data = {
+               .mem_to_engine = {
+                               .dir = STEDMA40_MEM_TO_PERIPH,
+                               .src_dev_type = STEDMA40_DEV_SRC_MEMORY,
+                               .dst_dev_type = DB8500_DMA_DEV48_CAC1_TX,
+                               .src_info.data_width = STEDMA40_WORD_WIDTH,
+                               .dst_info.data_width = STEDMA40_WORD_WIDTH,
+                               .mode = STEDMA40_MODE_LOGICAL,
+                               .src_info.psize = STEDMA40_PSIZE_LOG_4,
+                               .dst_info.psize = STEDMA40_PSIZE_LOG_4,
+               },
+               .engine_to_mem = {
+                               .dir = STEDMA40_PERIPH_TO_MEM,
+                               .src_dev_type = DB8500_DMA_DEV48_CAC1_RX,
+                               .dst_dev_type = STEDMA40_DEV_DST_MEMORY,
+                               .src_info.data_width = STEDMA40_WORD_WIDTH,
+                               .dst_info.data_width = STEDMA40_WORD_WIDTH,
+                               .mode = STEDMA40_MODE_LOGICAL,
+                               .src_info.psize = STEDMA40_PSIZE_LOG_4,
+                               .dst_info.psize = STEDMA40_PSIZE_LOG_4,
+               }
+};
+
+static struct stedma40_chan_cfg u8500_hash_dma_cfg_tx = {
+               .dir = STEDMA40_MEM_TO_PERIPH,
+               .src_dev_type = STEDMA40_DEV_SRC_MEMORY,
+               .dst_dev_type = DB8500_DMA_DEV50_HAC1_TX,
+               .src_info.data_width = STEDMA40_WORD_WIDTH,
+               .dst_info.data_width = STEDMA40_WORD_WIDTH,
+               .mode = STEDMA40_MODE_LOGICAL,
+               .src_info.psize = STEDMA40_PSIZE_LOG_16,
+               .dst_info.psize = STEDMA40_PSIZE_LOG_16,
+};
+
+static struct hash_platform_data u8500_hash1_platform_data = {
+               .mem_to_engine = &u8500_hash_dma_cfg_tx,
+               .dma_filter = stedma40_filter,
+};
+
 /* add any platform devices here - TODO */
 static struct platform_device *mop500_platform_devs[] __initdata = {
        &mop500_gpio_keys_device,
@@ -624,6 +664,12 @@ static void __init mop500_uart_init(struct device *parent)
        db8500_add_uart2(parent, &uart2_plat);
 }
 
+static void __init u8500_cryp1_hash1_init(struct device *parent)
+{
+       db8500_add_cryp1(parent, &u8500_cryp1_platform_data);
+       db8500_add_hash1(parent, &u8500_hash1_platform_data);
+}
+
 static struct platform_device *snowball_platform_devs[] __initdata = {
        &snowball_led_dev,
        &snowball_key_dev,
@@ -654,6 +700,8 @@ static void __init mop500_init_machine(void)
        mop500_msp_init(parent);
        mop500_uart_init(parent);
 
+       u8500_cryp1_hash1_init(parent);
+
        i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices);
 
        i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs);
@@ -737,6 +785,7 @@ MACHINE_START(U8500, "ST-Ericsson MOP500 platform")
        .timer          = &ux500_timer,
        .handle_irq     = gic_handle_irq,
        .init_machine   = mop500_init_machine,
+       .init_late      = ux500_init_late,
 MACHINE_END
 
 MACHINE_START(HREFV60, "ST-Ericsson U8500 Platform HREFv60+")
@@ -746,6 +795,7 @@ MACHINE_START(HREFV60, "ST-Ericsson U8500 Platform HREFv60+")
        .timer          = &ux500_timer,
        .handle_irq     = gic_handle_irq,
        .init_machine   = hrefv60_init_machine,
+       .init_late      = ux500_init_late,
 MACHINE_END
 
 MACHINE_START(SNOWBALL, "Calao Systems Snowball platform")
@@ -756,6 +806,7 @@ MACHINE_START(SNOWBALL, "Calao Systems Snowball platform")
        .timer          = &ux500_timer,
        .handle_irq     = gic_handle_irq,
        .init_machine   = snowball_init_machine,
+       .init_late      = ux500_init_late,
 MACHINE_END
 
 #ifdef CONFIG_MACH_UX500_DT
@@ -870,6 +921,7 @@ DT_MACHINE_START(U8500_DT, "ST-Ericsson U8500 platform (Device Tree Support)")
        .timer          = &ux500_timer,
        .handle_irq     = gic_handle_irq,
        .init_machine   = u8500_init_machine,
+       .init_late      = ux500_init_late,
        .dt_compat      = u8500_dt_board_compat,
 MACHINE_END
 #endif