| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | /* * OMAP2+ common Power & Reset Management (PRM) IP block functions * * Copyright (C) 2011 Texas Instruments, Inc. * Tero Kristo <t-kristo@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. * * * For historical purposes, the API used to configure the PRM * interrupt handler refers to it as the "PRCM interrupt."  The * underlying registers are located in the PRM on OMAP3/4. * * XXX This code should eventually be moved to a PRM driver. */#include <linux/kernel.h>#include <linux/module.h>#include <linux/init.h>#include <linux/io.h>#include <linux/irq.h>#include <linux/interrupt.h>#include <linux/slab.h>#include "prm2xxx_3xxx.h"#include "prm2xxx.h"#include "prm3xxx.h"#include "prm44xx.h"#include "common.h"/* * OMAP_PRCM_MAX_NR_PENDING_REG: maximum number of PRM_IRQ*_MPU regs * XXX this is technically not needed, since * omap_prcm_register_chain_handler() could allocate this based on the * actual amount of memory needed for the SoC */#define OMAP_PRCM_MAX_NR_PENDING_REG		2/* * prcm_irq_chips: an array of all of the "generic IRQ chips" in use * by the PRCM interrupt handler code.  There will be one 'chip' per * PRM_{IRQSTATUS,IRQENABLE}_MPU register pair.  (So OMAP3 will have * one "chip" and OMAP4 will have two.) */static struct irq_chip_generic **prcm_irq_chips;/* * prcm_irq_setup: the PRCM IRQ parameters for the hardware the code * is currently running on.  Defined and passed by initialization code * that calls omap_prcm_register_chain_handler(). */static struct omap_prcm_irq_setup *prcm_irq_setup;
 |