Commit 44350061 authored by Andrew Lunn's avatar Andrew Lunn Committed by Nicolas Pitre

ARM: orion: Consolidate setup of the crypto engine.

Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarNicolas Pitre <nico@fluxnic.net>
parent 9e613f8a
...@@ -270,37 +270,11 @@ void __init kirkwood_uart1_init(void) ...@@ -270,37 +270,11 @@ void __init kirkwood_uart1_init(void)
/***************************************************************************** /*****************************************************************************
* Cryptographic Engines and Security Accelerator (CESA) * Cryptographic Engines and Security Accelerator (CESA)
****************************************************************************/ ****************************************************************************/
static struct resource kirkwood_crypto_res[] = {
{
.name = "regs",
.start = CRYPTO_PHYS_BASE,
.end = CRYPTO_PHYS_BASE + 0xffff,
.flags = IORESOURCE_MEM,
}, {
.name = "sram",
.start = KIRKWOOD_SRAM_PHYS_BASE,
.end = KIRKWOOD_SRAM_PHYS_BASE + KIRKWOOD_SRAM_SIZE - 1,
.flags = IORESOURCE_MEM,
}, {
.name = "crypto interrupt",
.start = IRQ_KIRKWOOD_CRYPTO,
.end = IRQ_KIRKWOOD_CRYPTO,
.flags = IORESOURCE_IRQ,
},
};
static struct platform_device kirkwood_crypto_device = {
.name = "mv_crypto",
.id = -1,
.num_resources = ARRAY_SIZE(kirkwood_crypto_res),
.resource = kirkwood_crypto_res,
};
void __init kirkwood_crypto_init(void) void __init kirkwood_crypto_init(void)
{ {
kirkwood_clk_ctrl |= CGC_CRYPTO; kirkwood_clk_ctrl |= CGC_CRYPTO;
platform_device_register(&kirkwood_crypto_device); orion_crypto_init(CRYPTO_PHYS_BASE, KIRKWOOD_SRAM_PHYS_BASE,
KIRKWOOD_SRAM_SIZE, IRQ_KIRKWOOD_CRYPTO);
} }
......
...@@ -164,41 +164,19 @@ void __init orion5x_xor_init(void) ...@@ -164,41 +164,19 @@ void __init orion5x_xor_init(void)
IRQ_ORION5X_XOR0, IRQ_ORION5X_XOR1); IRQ_ORION5X_XOR0, IRQ_ORION5X_XOR1);
} }
static struct resource orion5x_crypto_res[] = { /*****************************************************************************
{ * Cryptographic Engines and Security Accelerator (CESA)
.name = "regs", ****************************************************************************/
.start = ORION5X_CRYPTO_PHYS_BASE, static void __init orion5x_crypto_init(void)
.end = ORION5X_CRYPTO_PHYS_BASE + 0xffff,
.flags = IORESOURCE_MEM,
}, {
.name = "sram",
.start = ORION5X_SRAM_PHYS_BASE,
.end = ORION5X_SRAM_PHYS_BASE + SZ_8K - 1,
.flags = IORESOURCE_MEM,
}, {
.name = "crypto interrupt",
.start = IRQ_ORION5X_CESA,
.end = IRQ_ORION5X_CESA,
.flags = IORESOURCE_IRQ,
},
};
static struct platform_device orion5x_crypto_device = {
.name = "mv_crypto",
.id = -1,
.num_resources = ARRAY_SIZE(orion5x_crypto_res),
.resource = orion5x_crypto_res,
};
static int __init orion5x_crypto_init(void)
{ {
int ret; int ret;
ret = orion5x_setup_sram_win(); ret = orion5x_setup_sram_win();
if (ret) if (ret)
return ret; return;
return platform_device_register(&orion5x_crypto_device); orion_crypto_init(ORION5X_CRYPTO_PHYS_BASE, ORION5X_SRAM_PHYS_BASE,
SZ_8K, IRQ_ORION5X_CESA);
} }
/***************************************************************************** /*****************************************************************************
......
...@@ -923,4 +923,35 @@ void __init orion_sata_init(struct mv_sata_platform_data *sata_data, ...@@ -923,4 +923,35 @@ void __init orion_sata_init(struct mv_sata_platform_data *sata_data,
platform_device_register(&orion_sata); platform_device_register(&orion_sata);
} }
/*****************************************************************************
* Cryptographic Engines and Security Accelerator (CESA)
****************************************************************************/
static struct resource orion_crypto_resources[] = {
{
.name = "regs",
}, {
.name = "crypto interrupt",
}, {
.name = "sram",
.flags = IORESOURCE_MEM,
},
};
static struct platform_device orion_crypto = {
.name = "mv_crypto",
.id = -1,
};
void __init orion_crypto_init(unsigned long mapbase,
unsigned long srambase,
unsigned long sram_size,
unsigned long irq)
{
fill_resources(&orion_crypto, orion_crypto_resources,
mapbase, 0xffff, irq);
orion_crypto.num_resources = 3;
orion_crypto_resources[2].start = srambase;
orion_crypto_resources[2].end = srambase + sram_size - 1;
platform_device_register(&orion_crypto);
}
...@@ -109,4 +109,9 @@ void __init orion_sata_init(struct mv_sata_platform_data *sata_data, ...@@ -109,4 +109,9 @@ void __init orion_sata_init(struct mv_sata_platform_data *sata_data,
struct mbus_dram_target_info *mbus_dram_info, struct mbus_dram_target_info *mbus_dram_info,
unsigned long mapbase, unsigned long mapbase,
unsigned long irq); unsigned long irq);
void __init orion_crypto_init(unsigned long mapbase,
unsigned long srambase,
unsigned long sram_size,
unsigned long irq);
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment