Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
linux
of_gpio.h
Go to the documentation of this file.
1
/*
2
* OF helpers for the GPIO API
3
*
4
* Copyright (c) 2007-2008 MontaVista Software, Inc.
5
*
6
* Author: Anton Vorontsov <avorontsov@ru.mvista.com>
7
*
8
* This program is free software; you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation; either version 2 of the License, or
11
* (at your option) any later version.
12
*/
13
14
#ifndef __LINUX_OF_GPIO_H
15
#define __LINUX_OF_GPIO_H
16
17
#include <linux/compiler.h>
18
#include <linux/kernel.h>
19
#include <linux/errno.h>
20
#include <
linux/gpio.h
>
21
#include <
linux/of.h
>
22
23
struct
device_node
;
24
25
/*
26
* This is Linux-specific flags. By default controllers' and Linux' mapping
27
* match, but GPIO controllers are free to translate their own flags to
28
* Linux-specific in their .xlate callback. Though, 1:1 mapping is recommended.
29
*/
30
enum
of_gpio_flags
{
31
OF_GPIO_ACTIVE_LOW
= 0x1,
32
};
33
34
#ifdef CONFIG_OF_GPIO
35
36
/*
37
* OF GPIO chip for memory mapped banks
38
*/
39
struct
of_mm_gpio_chip {
40
struct
gpio_chip gc;
41
void
(*save_regs)(
struct
of_mm_gpio_chip *mm_gc);
42
void
__iomem
*
regs
;
43
};
44
45
static
inline
struct
of_mm_gpio_chip *to_of_mm_gpio_chip(
struct
gpio_chip *
gc
)
46
{
47
return
container_of
(gc,
struct
of_mm_gpio_chip, gc);
48
}
49
50
extern
int
of_get_named_gpio_flags
(
struct
device_node
*np,
51
const
char
*list_name,
int
index
,
enum
of_gpio_flags
*
flags
);
52
53
extern
unsigned
int
of_gpio_named_count
(
struct
device_node
*np,
54
const
char
* propname);
55
56
extern
int
of_mm_gpiochip_add
(
struct
device_node
*np,
57
struct
of_mm_gpio_chip *mm_gc);
58
59
extern
void
of_gpiochip_add
(
struct
gpio_chip *
gc
);
60
extern
void
of_gpiochip_remove
(
struct
gpio_chip *
gc
);
61
extern
int
of_gpio_simple_xlate
(
struct
gpio_chip *
gc
,
62
const
struct
of_phandle_args
*gpiospec,
63
u32
*
flags
);
64
65
#else
/* CONFIG_OF_GPIO */
66
67
/* Drivers may not strictly depend on the GPIO support, so let them link. */
68
static
inline
int
of_get_named_gpio_flags
(
struct
device_node
*np,
69
const
char
*list_name,
int
index
,
enum
of_gpio_flags
*
flags
)
70
{
71
return
-
ENOSYS
;
72
}
73
74
static
inline
unsigned
int
of_gpio_named_count
(
struct
device_node
*np,
75
const
char
* propname)
76
{
77
return
0;
78
}
79
80
static
inline
int
of_gpio_simple_xlate
(
struct
gpio_chip *
gc
,
81
const
struct
of_phandle_args
*gpiospec,
82
u32
*
flags
)
83
{
84
return
-
ENOSYS
;
85
}
86
87
static
inline
void
of_gpiochip_add
(
struct
gpio_chip *
gc
) { }
88
static
inline
void
of_gpiochip_remove
(
struct
gpio_chip *
gc
) { }
89
90
#endif
/* CONFIG_OF_GPIO */
91
108
static
inline
unsigned
int
of_gpio_count(
struct
device_node
*np)
109
{
110
return
of_gpio_named_count
(np,
"gpios"
);
111
}
112
123
static
inline
int
of_get_gpio_flags(
struct
device_node
*np,
int
index
,
124
enum
of_gpio_flags
*
flags
)
125
{
126
return
of_get_named_gpio_flags
(np,
"gpios"
, index, flags);
127
}
128
138
static
inline
int
of_get_named_gpio(
struct
device_node
*np,
139
const
char
*propname,
int
index
)
140
{
141
return
of_get_named_gpio_flags
(np, propname, index,
NULL
);
142
}
143
152
static
inline
int
of_get_gpio(
struct
device_node
*np,
int
index
)
153
{
154
return
of_get_gpio_flags(np, index,
NULL
);
155
}
156
157
#endif
/* __LINUX_OF_GPIO_H */
Generated on Thu Jan 10 2013 14:52:15 for Linux Kernel by
1.8.2