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
drivers
media
pci
bt8xx
bttv-if.c
Go to the documentation of this file.
1
/*
2
3
bttv-if.c -- old gpio interface to other kernel modules
4
don't use in new code, will go away in 2.7
5
have a look at bttv-gpio.c instead.
6
7
bttv - Bt848 frame grabber driver
8
9
Copyright (C) 1996,97,98 Ralph Metzler (
[email protected]
)
10
& Marcus Metzler (
[email protected]
)
11
(c) 1999-2003 Gerd Knorr <
[email protected]
>
12
13
This program is free software; you can redistribute it and/or modify
14
it under the terms of the GNU General Public License as published by
15
the Free Software Foundation; either version 2 of the License, or
16
(at your option) any later version.
17
18
This program is distributed in the hope that it will be useful,
19
but WITHOUT ANY WARRANTY; without even the implied warranty of
20
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
GNU General Public License for more details.
22
23
You should have received a copy of the GNU General Public License
24
along with this program; if not, write to the Free Software
25
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26
27
*/
28
29
#include <linux/module.h>
30
#include <
linux/init.h
>
31
#include <
linux/delay.h
>
32
#include <asm/io.h>
33
34
#include "
bttvp.h
"
35
36
EXPORT_SYMBOL
(
bttv_get_pcidev
);
37
EXPORT_SYMBOL
(
bttv_gpio_enable
);
38
EXPORT_SYMBOL
(
bttv_read_gpio
);
39
EXPORT_SYMBOL
(
bttv_write_gpio
);
40
41
/* ----------------------------------------------------------------------- */
42
/* Exported functions - for other modules which want to access the */
43
/* gpio ports (IR for example) */
44
/* see bttv.h for comments */
45
46
struct
pci_dev
*
bttv_get_pcidev
(
unsigned
int
card
)
47
{
48
if
(card >=
bttv_num
)
49
return
NULL
;
50
if
(!
bttvs
[card])
51
return
NULL
;
52
53
return
bttvs
[
card
]->c.pci;
54
}
55
56
57
int
bttv_gpio_enable
(
unsigned
int
card
,
unsigned
long
mask
,
unsigned
long
data
)
58
{
59
struct
bttv *btv;
60
61
if
(card >=
bttv_num
) {
62
return
-
EINVAL
;
63
}
64
65
btv =
bttvs
[
card
];
66
if
(!btv)
67
return
-
ENODEV
;
68
69
gpio_inout
(mask,data);
70
if
(
bttv_gpio
)
71
bttv_gpio_tracking
(btv,
"extern enable"
);
72
return
0;
73
}
74
75
int
bttv_read_gpio
(
unsigned
int
card
,
unsigned
long
*
data
)
76
{
77
struct
bttv *btv;
78
79
if
(card >=
bttv_num
) {
80
return
-
EINVAL
;
81
}
82
83
btv =
bttvs
[
card
];
84
if
(!btv)
85
return
-
ENODEV
;
86
87
if
(btv->shutdown) {
88
return
-
ENODEV
;
89
}
90
91
/* prior setting BT848_GPIO_REG_INP is (probably) not needed
92
because we set direct input on init */
93
*data =
gpio_read
();
94
return
0;
95
}
96
97
int
bttv_write_gpio
(
unsigned
int
card
,
unsigned
long
mask
,
unsigned
long
data
)
98
{
99
struct
bttv *btv;
100
101
if
(card >=
bttv_num
) {
102
return
-
EINVAL
;
103
}
104
105
btv =
bttvs
[
card
];
106
if
(!btv)
107
return
-
ENODEV
;
108
109
/* prior setting BT848_GPIO_REG_INP is (probably) not needed
110
because direct input is set on init */
111
gpio_bits
(mask,data);
112
if
(
bttv_gpio
)
113
bttv_gpio_tracking
(btv,
"extern write"
);
114
return
0;
115
}
116
117
/*
118
* Local variables:
119
* c-basic-offset: 8
120
* End:
121
*/
Generated on Thu Jan 10 2013 13:47:19 for Linux Kernel by
1.8.2