blob: f7119ee3977b22541cb5faa8d0282d62b435fe2c [file] [log] [blame]
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -07001/*
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -07002 */
3
Hans Verkuil33001012013-05-29 06:59:45 -03004enum tveeprom_audio_processor {
5 /* No audio processor present */
6 TVEEPROM_AUDPROC_NONE,
7 /* The audio processor is internal to the video processor */
8 TVEEPROM_AUDPROC_INTERNAL,
9 /* The audio processor is a MSPXXXX device */
10 TVEEPROM_AUDPROC_MSP,
11 /* The audio processor is another device */
12 TVEEPROM_AUDPROC_OTHER,
13};
14
Joe Perches574e2af2013-08-01 16:17:48 -070015#include <linux/if_ether.h>
16
Linus Torvalds1da177e2005-04-16 15:20:36 -070017struct tveeprom {
18 u32 has_radio;
Hans Verkuilb654fcdc2008-07-22 15:50:31 -030019 /* If has_ir == 0, then it is unknown what the IR capabilities are,
20 otherwise:
21 bit 0: 1 (= IR capabilities are known)
22 bit 1: IR receiver present
23 bit 2: IR transmitter (blaster) present */
24 u32 has_ir;
Steven Toth3ca0ea92005-12-01 00:51:27 -080025 u32 has_MAC_address; /* 0: no MAC, 1: MAC present, 2: unknown */
Linus Torvalds1da177e2005-04-16 15:20:36 -070026
27 u32 tuner_type;
28 u32 tuner_formats;
Hans Verkuilf95006f2005-12-01 00:51:42 -080029 u32 tuner_hauppauge_model;
Linus Torvalds1da177e2005-04-16 15:20:36 -070030
Mauro Carvalho Chehab0f97a932005-09-09 13:04:05 -070031 u32 tuner2_type;
32 u32 tuner2_formats;
Hans Verkuilf95006f2005-12-01 00:51:42 -080033 u32 tuner2_hauppauge_model;
Mauro Carvalho Chehab0f97a932005-09-09 13:04:05 -070034
Linus Torvalds1da177e2005-04-16 15:20:36 -070035 u32 digitizer;
36 u32 digitizer_formats;
37
38 u32 audio_processor;
Mauro Carvalho Chehab0f97a932005-09-09 13:04:05 -070039 u32 decoder_processor;
Linus Torvalds1da177e2005-04-16 15:20:36 -070040
41 u32 model;
42 u32 revision;
43 u32 serial_number;
44 char rev_str[5];
Joe Perches574e2af2013-08-01 16:17:48 -070045 u8 MAC_address[ETH_ALEN];
Linus Torvalds1da177e2005-04-16 15:20:36 -070046};
47
Mauro Carvalho Chehab0f97a932005-09-09 13:04:05 -070048void tveeprom_hauppauge_analog(struct i2c_client *c, struct tveeprom *tvee,
Linus Torvalds1da177e2005-04-16 15:20:36 -070049 unsigned char *eeprom_data);
50
51int tveeprom_read(struct i2c_client *c, unsigned char *eedata, int len);