| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | /* * OMAP4 PRM module functions * * Copyright (C) 2011-2012 Texas Instruments, Inc. * Copyright (C) 2010 Nokia Corporation * Benoît Cousson * Paul Walmsley * Rajendra Nayak <rnayak@ti.com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */#include <linux/kernel.h>#include <linux/delay.h>#include <linux/errno.h>#include <linux/err.h>#include <linux/io.h>#include "soc.h"#include "iomap.h"#include "common.h"#include "vp.h"#include "prm44xx.h"#include "prm-regbits-44xx.h"#include "prcm44xx.h"#include "prminst44xx.h"#include "powerdomain.h"/* Static data */static const struct omap_prcm_irq omap4_prcm_irqs[] = {	OMAP_PRCM_IRQ("wkup",   0,      0),	OMAP_PRCM_IRQ("io",     9,      1),};static struct omap_prcm_irq_setup omap4_prcm_irq_setup = {	.ack			= OMAP4_PRM_IRQSTATUS_MPU_OFFSET,	.mask			= OMAP4_PRM_IRQENABLE_MPU_OFFSET,	.nr_regs		= 2,	.irqs			= omap4_prcm_irqs,	.nr_irqs		= ARRAY_SIZE(omap4_prcm_irqs),	.irq			= 11 + OMAP44XX_IRQ_GIC_START,	.read_pending_irqs	= &omap44xx_prm_read_pending_irqs,	.ocp_barrier		= &omap44xx_prm_ocp_barrier,	.save_and_clear_irqen	= &omap44xx_prm_save_and_clear_irqen,	.restore_irqen		= &omap44xx_prm_restore_irqen,};/* * omap44xx_prm_reset_src_map - map from bits in the PRM_RSTST *   hardware register (which are specific to OMAP44xx SoCs) to reset *   source ID bit shifts (which is an OMAP SoC-independent *   enumeration) */static struct prm_reset_src_map omap44xx_prm_reset_src_map[] = {	{ OMAP4430_GLOBAL_WARM_SW_RST_SHIFT,	  OMAP_GLOBAL_WARM_RST_SRC_ID_SHIFT },	{ OMAP4430_GLOBAL_COLD_RST_SHIFT,	  OMAP_GLOBAL_COLD_RST_SRC_ID_SHIFT },	{ OMAP4430_MPU_SECURITY_VIOL_RST_SHIFT,
 |