Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
gpio-tegra.c File Reference
#include <linux/init.h>
#include <linux/irq.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/gpio.h>
#include <linux/of_device.h>
#include <linux/platform_device.h>
#include <linux/module.h>
#include <linux/irqdomain.h>
#include <linux/pinctrl/consumer.h>
#include <asm/mach/irq.h>

Go to the source code of this file.

Data Structures

struct  tegra_gpio_bank
 
struct  tegra_gpio_soc_config
 

Macros

#define GPIO_BANK(x)   ((x) >> 5)
 
#define GPIO_PORT(x)   (((x) >> 3) & 0x3)
 
#define GPIO_BIT(x)   ((x) & 0x7)
 
#define GPIO_REG(x)
 
#define GPIO_CNF(x)   (GPIO_REG(x) + 0x00)
 
#define GPIO_OE(x)   (GPIO_REG(x) + 0x10)
 
#define GPIO_OUT(x)   (GPIO_REG(x) + 0X20)
 
#define GPIO_IN(x)   (GPIO_REG(x) + 0x30)
 
#define GPIO_INT_STA(x)   (GPIO_REG(x) + 0x40)
 
#define GPIO_INT_ENB(x)   (GPIO_REG(x) + 0x50)
 
#define GPIO_INT_LVL(x)   (GPIO_REG(x) + 0x60)
 
#define GPIO_INT_CLR(x)   (GPIO_REG(x) + 0x70)
 
#define GPIO_MSK_CNF(x)   (GPIO_REG(x) + tegra_gpio_upper_offset + 0x00)
 
#define GPIO_MSK_OE(x)   (GPIO_REG(x) + tegra_gpio_upper_offset + 0x10)
 
#define GPIO_MSK_OUT(x)   (GPIO_REG(x) + tegra_gpio_upper_offset + 0X20)
 
#define GPIO_MSK_INT_STA(x)   (GPIO_REG(x) + tegra_gpio_upper_offset + 0x40)
 
#define GPIO_MSK_INT_ENB(x)   (GPIO_REG(x) + tegra_gpio_upper_offset + 0x50)
 
#define GPIO_MSK_INT_LVL(x)   (GPIO_REG(x) + tegra_gpio_upper_offset + 0x60)
 
#define GPIO_INT_LVL_MASK   0x010101
 
#define GPIO_INT_LVL_EDGE_RISING   0x000101
 
#define GPIO_INT_LVL_EDGE_FALLING   0x000100
 
#define GPIO_INT_LVL_EDGE_BOTH   0x010100
 
#define GPIO_INT_LVL_LEVEL_HIGH   0x000001
 
#define GPIO_INT_LVL_LEVEL_LOW   0x000000
 

Functions

 EXPORT_SYMBOL_GPL (tegra_gpio_enable)
 
 EXPORT_SYMBOL_GPL (tegra_gpio_disable)
 
int tegra_gpio_request (struct gpio_chip *chip, unsigned offset)
 
void tegra_gpio_free (struct gpio_chip *chip, unsigned offset)
 
 postcore_initcall (tegra_gpio_init)
 

Macro Definition Documentation

#define GPIO_BANK (   x)    ((x) >> 5)

Definition at line 33 of file gpio-tegra.c.

#define GPIO_BIT (   x)    ((x) & 0x7)

Definition at line 35 of file gpio-tegra.c.

#define GPIO_CNF (   x)    (GPIO_REG(x) + 0x00)

Definition at line 40 of file gpio-tegra.c.

#define GPIO_IN (   x)    (GPIO_REG(x) + 0x30)

Definition at line 43 of file gpio-tegra.c.

#define GPIO_INT_CLR (   x)    (GPIO_REG(x) + 0x70)

Definition at line 47 of file gpio-tegra.c.

#define GPIO_INT_ENB (   x)    (GPIO_REG(x) + 0x50)

Definition at line 45 of file gpio-tegra.c.

#define GPIO_INT_LVL (   x)    (GPIO_REG(x) + 0x60)

Definition at line 46 of file gpio-tegra.c.

#define GPIO_INT_LVL_EDGE_BOTH   0x010100

Definition at line 59 of file gpio-tegra.c.

#define GPIO_INT_LVL_EDGE_FALLING   0x000100

Definition at line 58 of file gpio-tegra.c.

#define GPIO_INT_LVL_EDGE_RISING   0x000101

Definition at line 57 of file gpio-tegra.c.

#define GPIO_INT_LVL_LEVEL_HIGH   0x000001

Definition at line 60 of file gpio-tegra.c.

#define GPIO_INT_LVL_LEVEL_LOW   0x000000

Definition at line 61 of file gpio-tegra.c.

#define GPIO_INT_LVL_MASK   0x010101

Definition at line 56 of file gpio-tegra.c.

#define GPIO_INT_STA (   x)    (GPIO_REG(x) + 0x40)

Definition at line 44 of file gpio-tegra.c.

#define GPIO_MSK_CNF (   x)    (GPIO_REG(x) + tegra_gpio_upper_offset + 0x00)

Definition at line 49 of file gpio-tegra.c.

#define GPIO_MSK_INT_ENB (   x)    (GPIO_REG(x) + tegra_gpio_upper_offset + 0x50)

Definition at line 53 of file gpio-tegra.c.

#define GPIO_MSK_INT_LVL (   x)    (GPIO_REG(x) + tegra_gpio_upper_offset + 0x60)

Definition at line 54 of file gpio-tegra.c.

#define GPIO_MSK_INT_STA (   x)    (GPIO_REG(x) + tegra_gpio_upper_offset + 0x40)

Definition at line 52 of file gpio-tegra.c.

#define GPIO_MSK_OE (   x)    (GPIO_REG(x) + tegra_gpio_upper_offset + 0x10)

Definition at line 50 of file gpio-tegra.c.

#define GPIO_MSK_OUT (   x)    (GPIO_REG(x) + tegra_gpio_upper_offset + 0X20)

Definition at line 51 of file gpio-tegra.c.

#define GPIO_OE (   x)    (GPIO_REG(x) + 0x10)

Definition at line 41 of file gpio-tegra.c.

#define GPIO_OUT (   x)    (GPIO_REG(x) + 0X20)

Definition at line 42 of file gpio-tegra.c.

#define GPIO_PORT (   x)    (((x) >> 3) & 0x3)

Definition at line 34 of file gpio-tegra.c.

#define GPIO_REG (   x)
Value:
(GPIO_BANK(x) * tegra_gpio_bank_stride + \
GPIO_PORT(x) * 4)

Definition at line 37 of file gpio-tegra.c.

Function Documentation

EXPORT_SYMBOL_GPL ( tegra_gpio_enable  )
EXPORT_SYMBOL_GPL ( tegra_gpio_disable  )
postcore_initcall ( tegra_gpio_init  )
void tegra_gpio_free ( struct gpio_chip *  chip,
unsigned  offset 
)

Definition at line 125 of file gpio-tegra.c.

int tegra_gpio_request ( struct gpio_chip *  chip,
unsigned  offset 
)

Definition at line 120 of file gpio-tegra.c.