1 .. SPDX-License-Identifier: GPL-2.0
8 This is a v4l2 device driver for the cx2388x chip.
16 - Overlay isn't supported.
19 - Works. The TV standard detection is made by the driver, as the
20 hardware has bugs to auto-detect.
21 - audio data dma (i.e. recording without loopback cable to the
22 sound card) is supported via cx88-alsa.
28 How to add support for new cards
29 --------------------------------
31 The driver needs some config info for the TV cards. This stuff is in
32 cx88-cards.c. If the driver doesn't work well you likely need a new
33 entry for your card in that file. Check the kernel log (using dmesg)
34 to see whenever the driver knows your card or not. There is a line
39 cx8800[0]: subsystem: 0070:3400, board: Hauppauge WinTV \
40 34xxx models [card=1,autodetected]
42 If your card is listed as "board: UNKNOWN/GENERIC" it is unknown to
43 the driver. What to do then?
45 1) Try upgrading to the latest snapshot, maybe it has been added
47 2) You can try to create a new entry yourself, have a look at
48 cx88-cards.c. If that worked, mail me your changes as unified
50 3) Or you can mail me the config information. We need at least the
51 following information to add the card:
53 - the PCI Subsystem ID ("0070:3400" from the line above,
54 "lspci -v" output is fine too).
55 - the tuner type used by the card. You can try to find one by
56 trial-and-error using the tuner=<n> insmod option. If you
57 know which one the card has you can also have a look at the
58 list in CARDLIST.tuner
60 Documentation missing at the cx88 datasheet
61 -------------------------------------------
63 MO_OUTPUT_FORMAT (0x310164)
67 Previous default from DScaler: 0x1c1f0008
71 Digit 7: 27-24 (0xc = 12 = b1100 )
74 (DScaler apparently set this to 1, resulted in sucky picture)
77 25-16: COMB_RANGE = 0x1f [default] (9 bits -> max 512)
100 0x47 is the sync byte for MPEG-2 transport stream packets.
101 Datasheet incorrectly states to use 47 decimal. 188 is the length.
102 All DVB compliant frontends output packets with this start code.
104 Hauppauge WinTV cx88 IR information
105 -----------------------------------
107 The controls for the mux are GPIO [0,1] for source, and GPIO 2 for muting.
109 ====== ======== =================================================
111 ====== ======== =================================================
115 1 1 Mono tuner bypass or CD passthru (tuner specific)
116 ====== ======== =================================================
118 GPIO 16(I believe) is tied to the IR port (if present).
123 - Register 24'h20004 PCI Interrupt Status
125 - bit [18] IR_SMP_INT Set when 32 input samples have been collected over
126 - gpio[16] pin into GP_SAMPLE register.
128 What's missing from the data sheet:
130 - Setup 4KHz sampling rate (roughly 2x oversampled; good enough for our RC5
132 - set register 0x35C050 to 0xa80a80
134 - set register 0x35C054 to 0x5
135 - enable the IRQ bit 18 in the interrupt mask register (and
136 provide for a handler)
138 GP_SAMPLE register is at 0x35C058
140 Bits are then right shifted into the GP_SAMPLE register at the specified
141 rate; you get an interrupt when a full DWORD is received.
142 You need to recover the actual RC5 bits out of the (oversampled) IR sensor
143 bits. (Hint: look for the 0/1and 1/0 crossings of the RC5 bi-phase data) An
144 actual raw RC5 code will span 2-3 DWORDS, depending on the actual alignment.
146 I'm pretty sure when no IR signal is present the receiver is always in a
147 marking state(1); but stray light, etc can cause intermittent noise values
148 as well. Remember, this is a free running sample of the IR receiver state
149 over time, so don't assume any sample starts at any particular place.
154 This data sheet (google search) seems to have a lovely description of the
156 http://www.atmel.com/dyn/resources/prod_documents/doc2817.pdf
158 This document has more data:
159 http://www.nenya.be/beor/electronics/rc5.htm
161 This document has a how to decode a bi-phase data stream:
162 http://www.ee.washington.edu/circuit_archive/text/ir_decode.txt
164 This document has still more info:
165 http://www.xs4all.nl/~sbp/knowledge/ir/rc5.htm