Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
pm8xxx-irq.c File Reference
#include <linux/err.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/kernel.h>
#include <linux/mfd/pm8xxx/core.h>
#include <linux/mfd/pm8xxx/irq.h>
#include <linux/platform_device.h>
#include <linux/slab.h>

Go to the source code of this file.

Data Structures

struct  pm_irq_chip
 

Macros

#define pr_fmt(fmt)   "%s: " fmt, __func__
 
#define SSBI_REG_ADDR_IRQ_BASE   0x1BB
 
#define SSBI_REG_ADDR_IRQ_ROOT   (SSBI_REG_ADDR_IRQ_BASE + 0)
 
#define SSBI_REG_ADDR_IRQ_M_STATUS1   (SSBI_REG_ADDR_IRQ_BASE + 1)
 
#define SSBI_REG_ADDR_IRQ_M_STATUS2   (SSBI_REG_ADDR_IRQ_BASE + 2)
 
#define SSBI_REG_ADDR_IRQ_M_STATUS3   (SSBI_REG_ADDR_IRQ_BASE + 3)
 
#define SSBI_REG_ADDR_IRQ_M_STATUS4   (SSBI_REG_ADDR_IRQ_BASE + 4)
 
#define SSBI_REG_ADDR_IRQ_BLK_SEL   (SSBI_REG_ADDR_IRQ_BASE + 5)
 
#define SSBI_REG_ADDR_IRQ_IT_STATUS   (SSBI_REG_ADDR_IRQ_BASE + 6)
 
#define SSBI_REG_ADDR_IRQ_CONFIG   (SSBI_REG_ADDR_IRQ_BASE + 7)
 
#define SSBI_REG_ADDR_IRQ_RT_STATUS   (SSBI_REG_ADDR_IRQ_BASE + 8)
 
#define PM_IRQF_LVL_SEL   0x01 /* level select */
 
#define PM_IRQF_MASK_FE   0x02 /* mask falling edge */
 
#define PM_IRQF_MASK_RE   0x04 /* mask rising edge */
 
#define PM_IRQF_CLR   0x08 /* clear interrupt */
 
#define PM_IRQF_BITS_MASK   0x70
 
#define PM_IRQF_BITS_SHIFT   4
 
#define PM_IRQF_WRITE   0x80
 
#define PM_IRQF_MASK_ALL
 

Functions

int pm8xxx_get_irq_stat (struct pm_irq_chip *chip, int irq)
 
 EXPORT_SYMBOL_GPL (pm8xxx_get_irq_stat)
 
struct pm_irq_chip *__devinit pm8xxx_irq_init (struct device *dev, const struct pm8xxx_irq_platform_data *pdata)
 
int __devexit pm8xxx_irq_exit (struct pm_irq_chip *chip)
 

Macro Definition Documentation

#define PM_IRQF_BITS_MASK   0x70

Definition at line 43 of file pm8xxx-irq.c.

#define PM_IRQF_BITS_SHIFT   4

Definition at line 44 of file pm8xxx-irq.c.

#define PM_IRQF_CLR   0x08 /* clear interrupt */

Definition at line 42 of file pm8xxx-irq.c.

#define PM_IRQF_LVL_SEL   0x01 /* level select */

Definition at line 39 of file pm8xxx-irq.c.

#define PM_IRQF_MASK_ALL
Value:
PM_IRQF_MASK_RE)

Definition at line 47 of file pm8xxx-irq.c.

#define PM_IRQF_MASK_FE   0x02 /* mask falling edge */

Definition at line 40 of file pm8xxx-irq.c.

#define PM_IRQF_MASK_RE   0x04 /* mask rising edge */

Definition at line 41 of file pm8xxx-irq.c.

#define PM_IRQF_WRITE   0x80

Definition at line 45 of file pm8xxx-irq.c.

#define pr_fmt (   fmt)    "%s: " fmt, __func__

Definition at line 14 of file pm8xxx-irq.c.

#define SSBI_REG_ADDR_IRQ_BASE   0x1BB

Definition at line 27 of file pm8xxx-irq.c.

#define SSBI_REG_ADDR_IRQ_BLK_SEL   (SSBI_REG_ADDR_IRQ_BASE + 5)

Definition at line 34 of file pm8xxx-irq.c.

#define SSBI_REG_ADDR_IRQ_CONFIG   (SSBI_REG_ADDR_IRQ_BASE + 7)

Definition at line 36 of file pm8xxx-irq.c.

#define SSBI_REG_ADDR_IRQ_IT_STATUS   (SSBI_REG_ADDR_IRQ_BASE + 6)

Definition at line 35 of file pm8xxx-irq.c.

#define SSBI_REG_ADDR_IRQ_M_STATUS1   (SSBI_REG_ADDR_IRQ_BASE + 1)

Definition at line 30 of file pm8xxx-irq.c.

#define SSBI_REG_ADDR_IRQ_M_STATUS2   (SSBI_REG_ADDR_IRQ_BASE + 2)

Definition at line 31 of file pm8xxx-irq.c.

#define SSBI_REG_ADDR_IRQ_M_STATUS3   (SSBI_REG_ADDR_IRQ_BASE + 3)

Definition at line 32 of file pm8xxx-irq.c.

#define SSBI_REG_ADDR_IRQ_M_STATUS4   (SSBI_REG_ADDR_IRQ_BASE + 4)

Definition at line 33 of file pm8xxx-irq.c.

#define SSBI_REG_ADDR_IRQ_ROOT   (SSBI_REG_ADDR_IRQ_BASE + 0)

Definition at line 29 of file pm8xxx-irq.c.

#define SSBI_REG_ADDR_IRQ_RT_STATUS   (SSBI_REG_ADDR_IRQ_BASE + 8)

Definition at line 37 of file pm8xxx-irq.c.

Function Documentation

EXPORT_SYMBOL_GPL ( pm8xxx_get_irq_stat  )
int pm8xxx_get_irq_stat ( struct pm_irq_chip chip,
int  irq 
)

pm8xxx_get_irq_stat - get the status of the irq line : pointer to identify a pmic irq controller : the irq number

The pm8xxx gpio and mpp rely on the interrupt block to read the values on their pins. This function is to facilitate reading the status of a gpio or an mpp line. The caller has to convert the gpio number to irq number.

RETURNS: an int indicating the value read on that line

Definition at line 272 of file pm8xxx-irq.c.

int __devexit pm8xxx_irq_exit ( struct pm_irq_chip chip)

Definition at line 366 of file pm8xxx-irq.c.

struct pm_irq_chip* __devinit pm8xxx_irq_init ( struct device dev,
const struct pm8xxx_irq_platform_data pdata 
)
read

Definition at line 312 of file pm8xxx-irq.c.