Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros
pinctrl-sirf.c File Reference
#include <linux/init.h>
#include <linux/module.h>
#include <linux/irq.h>
#include <linux/platform_device.h>
#include <linux/io.h>
#include <linux/slab.h>
#include <linux/err.h>
#include <linux/irqdomain.h>
#include <linux/pinctrl/pinctrl.h>
#include <linux/pinctrl/pinmux.h>
#include <linux/pinctrl/consumer.h>
#include <linux/pinctrl/machine.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/of_device.h>
#include <linux/of_platform.h>
#include <linux/bitops.h>
#include <linux/gpio.h>
#include <linux/of_gpio.h>
#include <asm/mach/irq.h>

Go to the source code of this file.

Data Structures

struct  sirfsoc_gpio_bank
 
struct  sirfsoc_pmx
 
struct  sirfsoc_muxmask
 
struct  sirfsoc_padmux
 
struct  sirfsoc_pin_group
 
struct  sirfsoc_pmx_func
 

Macros

#define DRIVER_NAME   "pinmux-sirf"
 
#define SIRFSOC_NUM_PADS   622
 
#define SIRFSOC_RSC_PIN_MUX   0x4
 
#define SIRFSOC_GPIO_PAD_EN(g)   ((g)*0x100 + 0x84)
 
#define SIRFSOC_GPIO_CTRL(g, i)   ((g)*0x100 + (i)*4)
 
#define SIRFSOC_GPIO_DSP_EN0   (0x80)
 
#define SIRFSOC_GPIO_PAD_EN(g)   ((g)*0x100 + 0x84)
 
#define SIRFSOC_GPIO_INT_STATUS(g)   ((g)*0x100 + 0x8C)
 
#define SIRFSOC_GPIO_CTL_INTR_LOW_MASK   0x1
 
#define SIRFSOC_GPIO_CTL_INTR_HIGH_MASK   0x2
 
#define SIRFSOC_GPIO_CTL_INTR_TYPE_MASK   0x4
 
#define SIRFSOC_GPIO_CTL_INTR_EN_MASK   0x8
 
#define SIRFSOC_GPIO_CTL_INTR_STS_MASK   0x10
 
#define SIRFSOC_GPIO_CTL_OUT_EN_MASK   0x20
 
#define SIRFSOC_GPIO_CTL_DATAOUT_MASK   0x40
 
#define SIRFSOC_GPIO_CTL_DATAIN_MASK   0x80
 
#define SIRFSOC_GPIO_CTL_PULL_MASK   0x100
 
#define SIRFSOC_GPIO_CTL_PULL_HIGH   0x200
 
#define SIRFSOC_GPIO_CTL_DSP_INT   0x400
 
#define SIRFSOC_GPIO_NO_OF_BANKS   5
 
#define SIRFSOC_GPIO_BANK_SIZE   32
 
#define SIRFSOC_GPIO_NUM(bank, index)   (((bank)*(32)) + (index))
 

: the name of this specific pin group

struct sirfsoc_pin_group - describes a SiRFprimaII pin group

: an array of discrete physical pins used in this group, taken from the driver-local pin enumeration space : the number of pins in this group array, i.e. the number of elements in .pins so we can iterate over that array

#define SIRFSOC_PIN_GROUP(n, p)
 
#define SIRFSOC_PMX_FUNCTION(n, g, m)
 
struct irq_domain_ops sirfsoc_gpio_irq_simple_ops
 
 arch_initcall (sirfsoc_pinmux_init)
 
int sirfsoc_gpio_irq_map (struct irq_domain *d, unsigned int irq, irq_hw_number_t hwirq)
 
 subsys_initcall (sirfsoc_gpio_init)
 
 MODULE_AUTHOR ("Rongjun Ying <[email protected]>, ""Yuping Luo <[email protected]>, ""Barry Song <[email protected]>")
 
 MODULE_DESCRIPTION ("SIRFSOC pin control driver")
 
 MODULE_LICENSE ("GPL")
 

Macro Definition Documentation

#define DRIVER_NAME   "pinmux-sirf"

Definition at line 30 of file pinctrl-sirf.c.

#define SIRFSOC_GPIO_BANK_SIZE   32

Definition at line 54 of file pinctrl-sirf.c.

#define SIRFSOC_GPIO_CTL_DATAIN_MASK   0x80

Definition at line 48 of file pinctrl-sirf.c.

#define SIRFSOC_GPIO_CTL_DATAOUT_MASK   0x40

Definition at line 47 of file pinctrl-sirf.c.

#define SIRFSOC_GPIO_CTL_DSP_INT   0x400

Definition at line 51 of file pinctrl-sirf.c.

#define SIRFSOC_GPIO_CTL_INTR_EN_MASK   0x8

Definition at line 44 of file pinctrl-sirf.c.

#define SIRFSOC_GPIO_CTL_INTR_HIGH_MASK   0x2

Definition at line 42 of file pinctrl-sirf.c.

#define SIRFSOC_GPIO_CTL_INTR_LOW_MASK   0x1

Definition at line 41 of file pinctrl-sirf.c.

#define SIRFSOC_GPIO_CTL_INTR_STS_MASK   0x10

Definition at line 45 of file pinctrl-sirf.c.

#define SIRFSOC_GPIO_CTL_INTR_TYPE_MASK   0x4

Definition at line 43 of file pinctrl-sirf.c.

#define SIRFSOC_GPIO_CTL_OUT_EN_MASK   0x20

Definition at line 46 of file pinctrl-sirf.c.

#define SIRFSOC_GPIO_CTL_PULL_HIGH   0x200

Definition at line 50 of file pinctrl-sirf.c.

#define SIRFSOC_GPIO_CTL_PULL_MASK   0x100

Definition at line 49 of file pinctrl-sirf.c.

#define SIRFSOC_GPIO_CTRL (   g,
  i 
)    ((g)*0x100 + (i)*4)

Definition at line 36 of file pinctrl-sirf.c.

#define SIRFSOC_GPIO_DSP_EN0   (0x80)

Definition at line 37 of file pinctrl-sirf.c.

#define SIRFSOC_GPIO_INT_STATUS (   g)    ((g)*0x100 + 0x8C)

Definition at line 39 of file pinctrl-sirf.c.

#define SIRFSOC_GPIO_NO_OF_BANKS   5

Definition at line 53 of file pinctrl-sirf.c.

#define SIRFSOC_GPIO_NUM (   bank,
  index 
)    (((bank)*(32)) + (index))

Definition at line 55 of file pinctrl-sirf.c.

#define SIRFSOC_GPIO_PAD_EN (   g)    ((g)*0x100 + 0x84)

Definition at line 38 of file pinctrl-sirf.c.

#define SIRFSOC_GPIO_PAD_EN (   g)    ((g)*0x100 + 0x84)

Definition at line 38 of file pinctrl-sirf.c.

#define SIRFSOC_NUM_PADS   622

Definition at line 32 of file pinctrl-sirf.c.

#define SIRFSOC_PIN_GROUP (   n,
  p 
)
Value:
{ \
.name = n, \
.pins = p, \
.num_pins = ARRAY_SIZE(p), \
}

Definition at line 854 of file pinctrl-sirf.c.

#define SIRFSOC_PMX_FUNCTION (   n,
  g,
  m 
)
Value:
{ \
.name = n, \
.groups = g, \
.num_groups = ARRAY_SIZE(g), \
.padmux = &m, \
}

Definition at line 1034 of file pinctrl-sirf.c.

#define SIRFSOC_RSC_PIN_MUX   0x4

Definition at line 33 of file pinctrl-sirf.c.

Function Documentation

arch_initcall ( sirfsoc_pinmux_init  )
MODULE_AUTHOR ( "Rongjun Ying <[email protected] ,
""Yuping Luo< yuping.luo @csr.com >  ,
""Barry Song< baohua.song @csr.com >"   
)
MODULE_DESCRIPTION ( "SIRFSOC pin control driver )
MODULE_LICENSE ( "GPL"  )
int sirfsoc_gpio_irq_map ( struct irq_domain d,
unsigned int  irq,
irq_hw_number_t  hwirq 
)

Definition at line 1624 of file pinctrl-sirf.c.

subsys_initcall ( sirfsoc_gpio_init  )

Variable Documentation

struct irq_domain_ops sirfsoc_gpio_irq_simple_ops
Initial value:

Definition at line 1640 of file pinctrl-sirf.c.