Skip to content

Commit ff1d5c2

Browse files
Michael Bueschtorvalds
Michael Buesch
authored andcommitted
gpio: add bt8xxgpio driver
This adds the bt8xxgpio driver. The purpose of the bt8xxgpio driver is to export all of the 24 GPIO pins available on Brooktree 8xx chips to the kernel GPIO infrastructure. This makes it possible to use a physically modified BT8xx card as cheap digital GPIO card. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Michael Buesch <mb@bu3sch.de> Cc: David Brownell <david-b@pacbell.net> Cc: Stephen Rothwell <sfr@canb.auug.org.au> Cc: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 8f1cc3b commit ff1d5c2

File tree

5 files changed

+440
-0
lines changed

5 files changed

+440
-0
lines changed

Documentation/bt8xxgpio.txt

+67
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
===============================================================
2+
== BT8XXGPIO driver ==
3+
== ==
4+
== A driver for a selfmade cheap BT8xx based PCI GPIO-card ==
5+
== ==
6+
== For advanced documentation, see ==
7+
== http://www.bu3sch.de/btgpio.php ==
8+
===============================================================
9+
10+
11+
A generic digital 24-port PCI GPIO card can be built out of an ordinary
12+
Brooktree bt848, bt849, bt878 or bt879 based analog TV tuner card. The
13+
Brooktree chip is used in old analog Hauppauge WinTV PCI cards. You can easily
14+
find them used for low prices on the net.
15+
16+
The bt8xx chip does have 24 digital GPIO ports.
17+
These ports are accessible via 24 pins on the SMD chip package.
18+
19+
20+
==============================================
21+
== How to physically access the GPIO pins ==
22+
==============================================
23+
24+
The are several ways to access these pins. One might unsolder the whole chip
25+
and put it on a custom PCI board, or one might only unsolder each individual
26+
GPIO pin and solder that to some tiny wire. As the chip package really is tiny
27+
there are some advanced soldering skills needed in any case.
28+
29+
The physical pinouts are drawn in the following ASCII art.
30+
The GPIO pins are marked with G00-G23
31+
32+
G G G G G G G G G G G G G G G G G G
33+
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
34+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7
35+
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
36+
---------------------------------------------------------------------------
37+
--| ^ ^ |--
38+
--| pin 86 pin 67 |--
39+
--| |--
40+
--| pin 61 > |-- G18
41+
--| |-- G19
42+
--| |-- G20
43+
--| |-- G21
44+
--| |-- G22
45+
--| pin 56 > |-- G23
46+
--| |--
47+
--| Brooktree 878/879 |--
48+
--| |--
49+
--| |--
50+
--| |--
51+
--| |--
52+
--| |--
53+
--| |--
54+
--| |--
55+
--| |--
56+
--| |--
57+
--| |--
58+
--| |--
59+
--| |--
60+
--| |--
61+
--| O |--
62+
--| |--
63+
---------------------------------------------------------------------------
64+
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
65+
^
66+
This is pin 1
67+

MAINTAINERS

+6
Original file line numberDiff line numberDiff line change
@@ -1043,6 +1043,12 @@ M: fujita.tomonori@lab.ntt.co.jp
10431043
L: linux-scsi@vger.kernel.org
10441044
S: Supported
10451045

1046+
BT8XXGPIO DRIVER
1047+
P: Michael Buesch
1048+
M: mb@bu3sch.de
1049+
W: http://bu3sch.de/btgpio.php
1050+
S: Maintained
1051+
10461052
BTTV VIDEO4LINUX DRIVER
10471053
P: Mauro Carvalho Chehab
10481054
M: mchehab@infradead.org

drivers/gpio/Kconfig

+18
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,24 @@ config GPIO_PCF857X
8383
This driver provides an in-kernel interface to those GPIOs using
8484
platform-neutral GPIO calls.
8585

86+
comment "PCI GPIO expanders:"
87+
88+
config GPIO_BT8XX
89+
tristate "BT8XX GPIO abuser"
90+
depends on PCI && VIDEO_BT848=n
91+
help
92+
The BT8xx frame grabber chip has 24 GPIO pins than can be abused
93+
as a cheap PCI GPIO card.
94+
95+
This chip can be found on Miro, Hauppauge and STB TV-cards.
96+
97+
The card needs to be physically altered for using it as a
98+
GPIO card. For more information on how to build a GPIO card
99+
from a BT8xx TV card, see the documentation file at
100+
Documentation/bt8xxgpio.txt
101+
102+
If unsure, say N.
103+
86104
comment "SPI GPIO expanders:"
87105

88106
config GPIO_MAX7301

drivers/gpio/Makefile

+1
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ obj-$(CONFIG_GPIO_MAX7301) += max7301.o
88
obj-$(CONFIG_GPIO_MCP23S08) += mcp23s08.o
99
obj-$(CONFIG_GPIO_PCA953X) += pca953x.o
1010
obj-$(CONFIG_GPIO_PCF857X) += pcf857x.o
11+
obj-$(CONFIG_GPIO_BT8XX) += bt8xxgpio.o

0 commit comments

Comments
 (0)