]>
Commit | Line | Data |
---|---|---|
7f882c2e AP |
1 | /* |
2 | * Afatech AF9035 DVB USB driver | |
3 | * | |
4 | * Copyright (C) 2009 Antti Palosaari <crope@iki.fi> | |
5 | * Copyright (C) 2012 Antti Palosaari <crope@iki.fi> | |
6 | * | |
7 | * This program is free software; you can redistribute it and/or modify | |
8 | * it under the terms of the GNU General Public License as published by | |
9 | * the Free Software Foundation; either version 2 of the License, or | |
10 | * (at your option) any later version. | |
11 | * | |
12 | * This program is distributed in the hope that it will be useful, | |
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | * GNU General Public License for more details. | |
16 | * | |
17 | * You should have received a copy of the GNU General Public License along | |
18 | * with this program; if not, write to the Free Software Foundation, Inc., | |
19 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
20 | */ | |
21 | ||
22 | #ifndef AF9035_H | |
23 | #define AF9035_H | |
24 | ||
5a9abae4 AP |
25 | /* prefix for dvb-usb log writings */ |
26 | #define DVB_USB_LOG_PREFIX "af9035" | |
27 | ||
7f882c2e | 28 | #include "dvb-usb.h" |
2a79eefa AP |
29 | #include "af9033.h" |
30 | #include "tua9001.h" | |
31 | #include "fc0011.h" | |
32 | #include "mxl5007t.h" | |
33 | #include "tda18218.h" | |
7f882c2e AP |
34 | |
35 | struct reg_val { | |
36 | u32 reg; | |
37 | u8 val; | |
38 | }; | |
39 | ||
40 | struct reg_val_mask { | |
41 | u32 reg; | |
42 | u8 val; | |
43 | u8 mask; | |
44 | }; | |
45 | ||
46 | struct usb_req { | |
47 | u8 cmd; | |
48 | u8 mbox; | |
49 | u8 wlen; | |
50 | u8 *wbuf; | |
51 | u8 rlen; | |
52 | u8 *rbuf; | |
53 | }; | |
54 | ||
2a79eefa | 55 | struct state { |
7f882c2e | 56 | bool dual_mode; |
2a79eefa AP |
57 | |
58 | struct af9033_config af9033_config[2]; | |
7f882c2e AP |
59 | }; |
60 | ||
7f882c2e AP |
61 | u32 clock_lut[] = { |
62 | 20480000, /* FPGA */ | |
63 | 16384000, /* 16.38 MHz */ | |
64 | 20480000, /* 20.48 MHz */ | |
65 | 36000000, /* 36.00 MHz */ | |
66 | 30000000, /* 30.00 MHz */ | |
67 | 26000000, /* 26.00 MHz */ | |
68 | 28000000, /* 28.00 MHz */ | |
69 | 32000000, /* 32.00 MHz */ | |
70 | 34000000, /* 34.00 MHz */ | |
71 | 24000000, /* 24.00 MHz */ | |
72 | 22000000, /* 22.00 MHz */ | |
73 | 12000000, /* 12.00 MHz */ | |
74 | }; | |
75 | ||
f2b61d0c AP |
76 | u32 clock_lut_it9135[] = { |
77 | 12000000, /* 12.00 MHz */ | |
78 | 20480000, /* 20.48 MHz */ | |
79 | 36000000, /* 36.00 MHz */ | |
80 | 30000000, /* 30.00 MHz */ | |
81 | 26000000, /* 26.00 MHz */ | |
82 | 28000000, /* 28.00 MHz */ | |
83 | 32000000, /* 32.00 MHz */ | |
84 | 34000000, /* 34.00 MHz */ | |
85 | 24000000, /* 24.00 MHz */ | |
86 | 22000000, /* 22.00 MHz */ | |
87 | }; | |
88 | ||
7f882c2e AP |
89 | /* EEPROM locations */ |
90 | #define EEPROM_IR_MODE 0x430d | |
91 | #define EEPROM_DUAL_MODE 0x4326 | |
92 | #define EEPROM_IR_TYPE 0x4329 | |
93 | #define EEPROM_1_IFFREQ_L 0x432d | |
94 | #define EEPROM_1_IFFREQ_H 0x432e | |
95 | #define EEPROM_1_TUNER_ID 0x4331 | |
96 | #define EEPROM_2_IFFREQ_L 0x433d | |
97 | #define EEPROM_2_IFFREQ_H 0x433e | |
98 | #define EEPROM_2_TUNER_ID 0x4341 | |
99 | ||
100 | /* USB commands */ | |
101 | #define CMD_MEM_RD 0x00 | |
102 | #define CMD_MEM_WR 0x01 | |
103 | #define CMD_I2C_RD 0x02 | |
104 | #define CMD_I2C_WR 0x03 | |
3234bd2f | 105 | #define CMD_IR_GET 0x18 |
7f882c2e AP |
106 | #define CMD_FW_DL 0x21 |
107 | #define CMD_FW_QUERYINFO 0x22 | |
108 | #define CMD_FW_BOOT 0x23 | |
109 | #define CMD_FW_DL_BEGIN 0x24 | |
110 | #define CMD_FW_DL_END 0x25 | |
f2b61d0c | 111 | #define CMD_FW_SCATTER_WR 0x29 |
7f882c2e AP |
112 | |
113 | #endif |