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

Commit 398917ce authored by Sebastian Reichel's avatar Sebastian Reichel Committed by Paul Walmsley
Browse files

ARM: OMAP2+: hwmod data: Add SSI information



This patch adds Synchronous Serial Interface (SSI) hwmod support for
OMAP34xx SoCs.

Signed-off-by: default avatarSebastian Reichel <sre@debian.org>
Acked-by: default avatarTony Lindgren <tony@atomide.com>
Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
parent 6423d6df
Loading
Loading
Loading
Loading
+48 −0
Original line number Diff line number Diff line
@@ -3693,6 +3693,53 @@ static struct omap_hwmod_ocp_if omap3xxx_l4_core__aes = {
	.user		= OCP_USER_MPU | OCP_USER_SDMA,
};

/*
 * 'ssi' class
 * synchronous serial interface (multichannel and full-duplex serial if)
 */

static struct omap_hwmod_class_sysconfig omap34xx_ssi_sysc = {
	.rev_offs	= 0x0000,
	.sysc_offs	= 0x0010,
	.syss_offs	= 0x0014,
	.sysc_flags	= (SYSC_HAS_AUTOIDLE | SYSC_HAS_EMUFREE |
			   SYSC_HAS_MIDLEMODE | SYSC_HAS_SIDLEMODE |
			   SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
			   SIDLE_SMART_WKUP | MSTANDBY_FORCE | MSTANDBY_NO |
			   MSTANDBY_SMART | MSTANDBY_SMART_WKUP),
	.sysc_fields	= &omap_hwmod_sysc_type1,
};

static struct omap_hwmod_class omap34xx_ssi_hwmod_class = {
	.name	= "ssi",
	.sysc	= &omap34xx_ssi_sysc,
};

static struct omap_hwmod omap34xx_ssi_hwmod = {
	.name		= "ssi",
	.class		= &omap34xx_ssi_hwmod_class,
	.clkdm_name	= "core_l4_clkdm",
	.main_clk	= "ssi_ssr_fck",
	.prcm		= {
		.omap2 = {
			.prcm_reg_id		= 1,
			.module_bit		= OMAP3430_EN_SSI_SHIFT,
			.module_offs		= CORE_MOD,
			.idlest_reg_id		= 1,
			.idlest_idle_bit	= OMAP3430ES2_ST_SSI_IDLE_SHIFT,
		},
	},
};

/* L4 CORE -> SSI */
static struct omap_hwmod_ocp_if omap34xx_l4_core__ssi = {
	.master		= &omap3xxx_l4_core_hwmod,
	.slave		= &omap34xx_ssi_hwmod,
	.clk		= "ssi_ick",
	.user		= OCP_USER_MPU | OCP_USER_SDMA,
};

static struct omap_hwmod_ocp_if *omap3xxx_hwmod_ocp_ifs[] __initdata = {
	&omap3xxx_l3_main__l4_core,
	&omap3xxx_l3_main__l4_per,
@@ -3818,6 +3865,7 @@ static struct omap_hwmod_ocp_if *omap34xx_hwmod_ocp_ifs[] __initdata = {
#ifdef CONFIG_OMAP_IOMMU_IVA2
	&omap3xxx_l3_main__mmu_iva,
#endif
	&omap34xx_l4_core__ssi,
	NULL
};