xref: /OK3568_Linux_fs/kernel/Documentation/driver-api/gpio/bt8xxgpio.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun===================================================================
2*4882a593SmuzhiyunA driver for a selfmade cheap BT8xx based PCI GPIO-card (bt8xxgpio)
3*4882a593Smuzhiyun===================================================================
4*4882a593Smuzhiyun
5*4882a593SmuzhiyunFor advanced documentation, see https://bues.ch/cms/unmaintained/btgpio.html
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunA generic digital 24-port PCI GPIO card can be built out of an ordinary
8*4882a593SmuzhiyunBrooktree bt848, bt849, bt878 or bt879 based analog TV tuner card. The
9*4882a593SmuzhiyunBrooktree chip is used in old analog Hauppauge WinTV PCI cards. You can easily
10*4882a593Smuzhiyunfind them used for low prices on the net.
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunThe bt8xx chip does have 24 digital GPIO ports.
13*4882a593SmuzhiyunThese ports are accessible via 24 pins on the SMD chip package.
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunHow to physically access the GPIO pins
17*4882a593Smuzhiyun======================================
18*4882a593Smuzhiyun
19*4882a593SmuzhiyunThe are several ways to access these pins. One might unsolder the whole chip
20*4882a593Smuzhiyunand put it on a custom PCI board, or one might only unsolder each individual
21*4882a593SmuzhiyunGPIO pin and solder that to some tiny wire. As the chip package really is tiny
22*4882a593Smuzhiyunthere are some advanced soldering skills needed in any case.
23*4882a593Smuzhiyun
24*4882a593SmuzhiyunThe physical pinouts are drawn in the following ASCII art.
25*4882a593SmuzhiyunThe GPIO pins are marked with G00-G23::
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun                                           G G G G G G G G G G G G     G G G G G G
28*4882a593Smuzhiyun                                           0 0 0 0 0 0 0 0 0 0 1 1     1 1 1 1 1 1
29*4882a593Smuzhiyun                                           0 1 2 3 4 5 6 7 8 9 0 1     2 3 4 5 6 7
30*4882a593Smuzhiyun           | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
31*4882a593Smuzhiyun           ---------------------------------------------------------------------------
32*4882a593Smuzhiyun         --|                               ^                                     ^   |--
33*4882a593Smuzhiyun         --|                               pin 86                           pin 67   |--
34*4882a593Smuzhiyun         --|                                                                         |--
35*4882a593Smuzhiyun         --|                                                               pin 61 >  |-- G18
36*4882a593Smuzhiyun         --|                                                                         |-- G19
37*4882a593Smuzhiyun         --|                                                                         |-- G20
38*4882a593Smuzhiyun         --|                                                                         |-- G21
39*4882a593Smuzhiyun         --|                                                                         |-- G22
40*4882a593Smuzhiyun         --|                                                               pin 56 >  |-- G23
41*4882a593Smuzhiyun         --|                                                                         |--
42*4882a593Smuzhiyun         --|                           Brooktree 878/879                             |--
43*4882a593Smuzhiyun         --|                                                                         |--
44*4882a593Smuzhiyun         --|                                                                         |--
45*4882a593Smuzhiyun         --|                                                                         |--
46*4882a593Smuzhiyun         --|                                                                         |--
47*4882a593Smuzhiyun         --|                                                                         |--
48*4882a593Smuzhiyun         --|                                                                         |--
49*4882a593Smuzhiyun         --|                                                                         |--
50*4882a593Smuzhiyun         --|                                                                         |--
51*4882a593Smuzhiyun         --|                                                                         |--
52*4882a593Smuzhiyun         --|                                                                         |--
53*4882a593Smuzhiyun         --|                                                                         |--
54*4882a593Smuzhiyun         --|                                                                         |--
55*4882a593Smuzhiyun         --|                                                                         |--
56*4882a593Smuzhiyun         --|   O                                                                     |--
57*4882a593Smuzhiyun         --|                                                                         |--
58*4882a593Smuzhiyun           ---------------------------------------------------------------------------
59*4882a593Smuzhiyun           | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
60*4882a593Smuzhiyun           ^
61*4882a593Smuzhiyun           This is pin 1
62*4882a593Smuzhiyun
63