diff options
Diffstat (limited to 'arch/arm/mach-ux500/board-mop500.c')
-rw-r--r-- | arch/arm/mach-ux500/board-mop500.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c index 4bc0cbc5f071..f943687acaf0 100644 --- a/arch/arm/mach-ux500/board-mop500.c +++ b/arch/arm/mach-ux500/board-mop500.c | |||
@@ -47,6 +47,7 @@ | |||
47 | #include <mach/setup.h> | 47 | #include <mach/setup.h> |
48 | #include <mach/devices.h> | 48 | #include <mach/devices.h> |
49 | #include <mach/irqs.h> | 49 | #include <mach/irqs.h> |
50 | #include <mach/crypto-ux500.h> | ||
50 | 51 | ||
51 | #include "ste-dma40-db8500.h" | 52 | #include "ste-dma40-db8500.h" |
52 | #include "devices-db8500.h" | 53 | #include "devices-db8500.h" |
@@ -417,6 +418,45 @@ static void mop500_prox_deactivate(struct device *dev) | |||
417 | regulator_put(prox_regulator); | 418 | regulator_put(prox_regulator); |
418 | } | 419 | } |
419 | 420 | ||
421 | static struct cryp_platform_data u8500_cryp1_platform_data = { | ||
422 | .mem_to_engine = { | ||
423 | .dir = STEDMA40_MEM_TO_PERIPH, | ||
424 | .src_dev_type = STEDMA40_DEV_SRC_MEMORY, | ||
425 | .dst_dev_type = DB8500_DMA_DEV48_CAC1_TX, | ||
426 | .src_info.data_width = STEDMA40_WORD_WIDTH, | ||
427 | .dst_info.data_width = STEDMA40_WORD_WIDTH, | ||
428 | .mode = STEDMA40_MODE_LOGICAL, | ||
429 | .src_info.psize = STEDMA40_PSIZE_LOG_4, | ||
430 | .dst_info.psize = STEDMA40_PSIZE_LOG_4, | ||
431 | }, | ||
432 | .engine_to_mem = { | ||
433 | .dir = STEDMA40_PERIPH_TO_MEM, | ||
434 | .src_dev_type = DB8500_DMA_DEV48_CAC1_RX, | ||
435 | .dst_dev_type = STEDMA40_DEV_DST_MEMORY, | ||
436 | .src_info.data_width = STEDMA40_WORD_WIDTH, | ||
437 | .dst_info.data_width = STEDMA40_WORD_WIDTH, | ||
438 | .mode = STEDMA40_MODE_LOGICAL, | ||
439 | .src_info.psize = STEDMA40_PSIZE_LOG_4, | ||
440 | .dst_info.psize = STEDMA40_PSIZE_LOG_4, | ||
441 | } | ||
442 | }; | ||
443 | |||
444 | static struct stedma40_chan_cfg u8500_hash_dma_cfg_tx = { | ||
445 | .dir = STEDMA40_MEM_TO_PERIPH, | ||
446 | .src_dev_type = STEDMA40_DEV_SRC_MEMORY, | ||
447 | .dst_dev_type = DB8500_DMA_DEV50_HAC1_TX, | ||
448 | .src_info.data_width = STEDMA40_WORD_WIDTH, | ||
449 | .dst_info.data_width = STEDMA40_WORD_WIDTH, | ||
450 | .mode = STEDMA40_MODE_LOGICAL, | ||
451 | .src_info.psize = STEDMA40_PSIZE_LOG_16, | ||
452 | .dst_info.psize = STEDMA40_PSIZE_LOG_16, | ||
453 | }; | ||
454 | |||
455 | static struct hash_platform_data u8500_hash1_platform_data = { | ||
456 | .mem_to_engine = &u8500_hash_dma_cfg_tx, | ||
457 | .dma_filter = stedma40_filter, | ||
458 | }; | ||
459 | |||
420 | /* add any platform devices here - TODO */ | 460 | /* add any platform devices here - TODO */ |
421 | static struct platform_device *mop500_platform_devs[] __initdata = { | 461 | static struct platform_device *mop500_platform_devs[] __initdata = { |
422 | &mop500_gpio_keys_device, | 462 | &mop500_gpio_keys_device, |
@@ -624,6 +664,12 @@ static void __init mop500_uart_init(struct device *parent) | |||
624 | db8500_add_uart2(parent, &uart2_plat); | 664 | db8500_add_uart2(parent, &uart2_plat); |
625 | } | 665 | } |
626 | 666 | ||
667 | static void __init u8500_cryp1_hash1_init(struct device *parent) | ||
668 | { | ||
669 | db8500_add_cryp1(parent, &u8500_cryp1_platform_data); | ||
670 | db8500_add_hash1(parent, &u8500_hash1_platform_data); | ||
671 | } | ||
672 | |||
627 | static struct platform_device *snowball_platform_devs[] __initdata = { | 673 | static struct platform_device *snowball_platform_devs[] __initdata = { |
628 | &snowball_led_dev, | 674 | &snowball_led_dev, |
629 | &snowball_key_dev, | 675 | &snowball_key_dev, |
@@ -654,6 +700,8 @@ static void __init mop500_init_machine(void) | |||
654 | mop500_msp_init(parent); | 700 | mop500_msp_init(parent); |
655 | mop500_uart_init(parent); | 701 | mop500_uart_init(parent); |
656 | 702 | ||
703 | u8500_cryp1_hash1_init(parent); | ||
704 | |||
657 | i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices); | 705 | i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices); |
658 | 706 | ||
659 | i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs); | 707 | i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs); |