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

Commit e569e994 authored by Mark A. Greer's avatar Mark A. Greer Committed by Paul Walmsley
Browse files

ARM: OMAP2xxx: hwmod: Convert SHAM crypto device data to hwmod



Convert the device data for the OMAP2 SHAM crypto IP from
explicit platform_data to hwmod.

CC: Paul Walmsley <paul@pwsan.com>
Signed-off-by: default avatarMark A. Greer <mgreer@animalcreek.com>
[paul@pwsan.com: fixed lines causing sparse warnings]
Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
parent 78e52e02
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -1978,6 +1978,7 @@ static struct omap_clk omap2430_clks[] = {
	CLK(NULL,	"sdrc_ick",	&sdrc_ick),
	CLK(NULL,	"des_ick",	&des_ick),
	CLK("omap-sham",	"ick",	&sha_ick),
	CLK(NULL,	"sha_ick",	&sha_ick),
	CLK("omap_rng", "ick",		&rng_ick),
	CLK(NULL,	"rng_ick",	&rng_ick),
	CLK("omap-aes",	"ick",	&aes_ick),
+10 −21
Original line number Diff line number Diff line
@@ -506,24 +506,6 @@ static void omap_init_rng(void)

#if defined(CONFIG_CRYPTO_DEV_OMAP_SHAM) || defined(CONFIG_CRYPTO_DEV_OMAP_SHAM_MODULE)

#ifdef CONFIG_ARCH_OMAP2
static struct resource omap2_sham_resources[] = {
	{
		.start	= OMAP24XX_SEC_SHA1MD5_BASE,
		.end	= OMAP24XX_SEC_SHA1MD5_BASE + 0x64,
		.flags	= IORESOURCE_MEM,
	},
	{
		.start	= 51 + OMAP_INTC_START,
		.flags	= IORESOURCE_IRQ,
	}
};
static int omap2_sham_resources_sz = ARRAY_SIZE(omap2_sham_resources);
#else
#define omap2_sham_resources		NULL
#define omap2_sham_resources_sz		0
#endif

#ifdef CONFIG_ARCH_OMAP3
static struct resource omap3_sham_resources[] = {
	{
@@ -554,16 +536,23 @@ static struct platform_device sham_device = {
static void omap_init_sham(void)
{
	if (cpu_is_omap24xx()) {
		sham_device.resource = omap2_sham_resources;
		sham_device.num_resources = omap2_sham_resources_sz;
		struct omap_hwmod *oh;
		struct platform_device *pdev;

		oh = omap_hwmod_lookup("sham");
		if (!oh)
			return;

		pdev = omap_device_build("omap-sham", -1, oh, NULL, 0);
		WARN(IS_ERR(pdev), "Can't build omap_device for omap-sham\n");
	} else if (cpu_is_omap34xx()) {
		sham_device.resource = omap3_sham_resources;
		sham_device.num_resources = omap3_sham_resources_sz;
		platform_device_register(&sham_device);
	} else {
		pr_err("%s: platform not supported\n", __func__);
		return;
	}
	platform_device_register(&sham_device);
}
#else
static inline void omap_init_sham(void) { }
+1 −0
Original line number Diff line number Diff line
@@ -610,6 +610,7 @@ static struct omap_hwmod_ocp_if *omap2420_hwmod_ocp_ifs[] __initdata = {
	&omap2420_l4_core__mcbsp2,
	&omap2420_l4_core__msdi1,
	&omap2xxx_l4_core__rng,
	&omap2xxx_l4_core__sham,
	&omap2420_l4_core__hdq1w,
	&omap2420_l4_wkup__counter_32k,
	&omap2420_l3__gpmc,
+1 −0
Original line number Diff line number Diff line
@@ -963,6 +963,7 @@ static struct omap_hwmod_ocp_if *omap2430_hwmod_ocp_ifs[] __initdata = {
	&omap2430_l4_core__mcbsp5,
	&omap2430_l4_core__hdq1w,
	&omap2xxx_l4_core__rng,
	&omap2xxx_l4_core__sham,
	&omap2430_l4_wkup__counter_32k,
	&omap2430_l3__gpmc,
	NULL,
+18 −0
Original line number Diff line number Diff line
@@ -138,6 +138,15 @@ static struct omap_hwmod_addr_space omap2_rng_addr_space[] = {
	{ }
};

static struct omap_hwmod_addr_space omap2xxx_sham_addrs[] = {
	{
		.pa_start	= 0x480a4000,
		.pa_end		= 0x480a4000 + 0x64 - 1,
		.flags		= ADDR_TYPE_RT
	},
	{ }
};

/*
 * Common interconnect data
 */
@@ -389,3 +398,12 @@ struct omap_hwmod_ocp_if omap2xxx_l4_core__rng = {
	.addr		= omap2_rng_addr_space,
	.user		= OCP_USER_MPU | OCP_USER_SDMA,
};

/* l4 core -> sham interface */
struct omap_hwmod_ocp_if omap2xxx_l4_core__sham = {
	.master		= &omap2xxx_l4_core_hwmod,
	.slave		= &omap2xxx_sham_hwmod,
	.clk		= "sha_ick",
	.addr		= omap2xxx_sham_addrs,
	.user		= OCP_USER_MPU,
};
Loading