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

Commit 82a0c149 authored by Dmitry Kasatkin's avatar Dmitry Kasatkin Committed by Tony Lindgren
Browse files

omap: crypto: updates to enable omap aes



Updates to enable omap aes

Signed-off-by: default avatarDmitry Kasatkin <dmitry.kasatkin@nokia.com>
[tony@atomide.com: updated to use CONFIG_ARCH_OMAP2/3 instead of old 24XX/34XX]
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent afc28bc0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1838,7 +1838,7 @@ static struct omap_clk omap2420_clks[] = {
	CLK(NULL,	"des_ick",	&des_ick,	CK_242X),
	CLK("omap-sham",	"ick",	&sha_ick,	CK_242X),
	CLK("omap_rng",	"ick",		&rng_ick,	CK_242X),
	CLK(NULL,	"aes_ick",	&aes_ick,	CK_242X),
	CLK("omap-aes",	"ick",	&aes_ick,	CK_242X),
	CLK(NULL,	"pka_ick",	&pka_ick,	CK_242X),
	CLK(NULL,	"usb_fck",	&usb_fck,	CK_242X),
	CLK("musb_hdrc",	"fck",	&osc_ck,	CK_242X),
+1 −1
Original line number Diff line number Diff line
@@ -1926,7 +1926,7 @@ static struct omap_clk omap2430_clks[] = {
	CLK(NULL,	"des_ick",	&des_ick,	CK_243X),
	CLK("omap-sham",	"ick",	&sha_ick,	CK_243X),
	CLK("omap_rng",	"ick",		&rng_ick,	CK_243X),
	CLK(NULL,	"aes_ick",	&aes_ick,	CK_243X),
	CLK("omap-aes",	"ick",	&aes_ick,	CK_243X),
	CLK(NULL,	"pka_ick",	&pka_ick,	CK_243X),
	CLK(NULL,	"usb_fck",	&usb_fck,	CK_243X),
	CLK("musb_hdrc",	"ick",	&usbhs_ick,	CK_243X),
+1 −1
Original line number Diff line number Diff line
@@ -3288,7 +3288,7 @@ static struct omap_clk omap3xxx_clks[] = {
	CLK(NULL,	"usbtll_ick",	&usbtll_ick,	CK_3430ES2 | CK_AM35XX),
	CLK("mmci-omap-hs.2",	"ick",	&mmchs3_ick,	CK_3430ES2 | CK_AM35XX),
	CLK(NULL,	"icr_ick",	&icr_ick,	CK_343X),
	CLK(NULL,	"aes2_ick",	&aes2_ick,	CK_343X),
	CLK("omap-aes",	"ick",	&aes2_ick,	CK_343X),
	CLK("omap-sham",	"ick",	&sha12_ick,	CK_343X),
	CLK(NULL,	"des2_ick",	&des2_ick,	CK_343X),
	CLK("mmci-omap-hs.1",	"ick",	&mmchs2_ick,	CK_3XXX),
+71 −0
Original line number Diff line number Diff line
@@ -498,6 +498,76 @@ static void omap_init_sham(void)
static inline void omap_init_sham(void) { }
#endif

#if defined(CONFIG_CRYPTO_DEV_OMAP_AES) || defined(CONFIG_CRYPTO_DEV_OMAP_AES_MODULE)

#ifdef CONFIG_ARCH_OMAP2
static struct resource omap2_aes_resources[] = {
	{
		.start	= OMAP24XX_SEC_AES_BASE,
		.end	= OMAP24XX_SEC_AES_BASE + 0x4C,
		.flags	= IORESOURCE_MEM,
	},
	{
		.start	= OMAP24XX_DMA_AES_TX,
		.flags	= IORESOURCE_DMA,
	},
	{
		.start	= OMAP24XX_DMA_AES_RX,
		.flags	= IORESOURCE_DMA,
	}
};
static int omap2_aes_resources_sz = ARRAY_SIZE(omap2_aes_resources);
#else
#define omap2_aes_resources		NULL
#define omap2_aes_resources_sz		0
#endif

#ifdef CONFIG_ARCH_OMAP3
static struct resource omap3_aes_resources[] = {
	{
		.start	= OMAP34XX_SEC_AES_BASE,
		.end	= OMAP34XX_SEC_AES_BASE + 0x4C,
		.flags	= IORESOURCE_MEM,
	},
	{
		.start	= OMAP34XX_DMA_AES2_TX,
		.flags	= IORESOURCE_DMA,
	},
	{
		.start	= OMAP34XX_DMA_AES2_RX,
		.flags	= IORESOURCE_DMA,
	}
};
static int omap3_aes_resources_sz = ARRAY_SIZE(omap3_aes_resources);
#else
#define omap3_aes_resources		NULL
#define omap3_aes_resources_sz		0
#endif

static struct platform_device aes_device = {
	.name		= "omap-aes",
	.id		= -1,
};

static void omap_init_aes(void)
{
	if (cpu_is_omap24xx()) {
		aes_device.resource = omap2_aes_resources;
		aes_device.num_resources = omap2_aes_resources_sz;
	} else if (cpu_is_omap34xx()) {
		aes_device.resource = omap3_aes_resources;
		aes_device.num_resources = omap3_aes_resources_sz;
	} else {
		pr_err("%s: platform not supported\n", __func__);
		return;
	}
	platform_device_register(&aes_device);
}

#else
static inline void omap_init_aes(void) { }
#endif

/*-------------------------------------------------------------------------*/

#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
@@ -854,6 +924,7 @@ static int __init omap2_init_devices(void)
	omap_hdq_init();
	omap_init_sti();
	omap_init_sham();
	omap_init_aes();
	omap_init_vout();

	return 0;