Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+2 −28
Original line number Diff line number Diff line
@@ -270,37 +270,11 @@ void __init kirkwood_uart1_init(void)
/*****************************************************************************
 * 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)
{
	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);
}


+7 −29
Original line number Diff line number Diff line
@@ -164,41 +164,19 @@ void __init orion5x_xor_init(void)
			IRQ_ORION5X_XOR0, IRQ_ORION5X_XOR1);
}

static struct resource orion5x_crypto_res[] = {
	{
		.name   = "regs",
		.start  = ORION5X_CRYPTO_PHYS_BASE,
		.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)
/*****************************************************************************
 * Cryptographic Engines and Security Accelerator (CESA)
 ****************************************************************************/
static void __init orion5x_crypto_init(void)
{
	int ret;

	ret = orion5x_setup_sram_win();
	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);
}

/*****************************************************************************
+31 −0
Original line number Diff line number Diff line
@@ -923,4 +923,35 @@ void __init orion_sata_init(struct mv_sata_platform_data *sata_data,
	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);
}
+5 −0
Original line number Diff line number Diff line
@@ -109,4 +109,9 @@ void __init orion_sata_init(struct mv_sata_platform_data *sata_data,
			    struct mbus_dram_target_info *mbus_dram_info,
			    unsigned long mapbase,
			    unsigned long irq);

void __init orion_crypto_init(unsigned long mapbase,
			      unsigned long srambase,
			      unsigned long sram_size,
			      unsigned long irq);
#endif