]>
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 | ||
5da2aecb | 25 | #include "dvb_usb.h" |
2a79eefa AP |
26 | #include "af9033.h" |
27 | #include "tua9001.h" | |
28 | #include "fc0011.h" | |
29 | #include "mxl5007t.h" | |
30 | #include "tda18218.h" | |
d67ceb33 | 31 | #include "fc2580.h" |
7f882c2e AP |
32 | |
33 | struct reg_val { | |
34 | u32 reg; | |
35 | u8 val; | |
36 | }; | |
37 | ||
38 | struct reg_val_mask { | |
39 | u32 reg; | |
40 | u8 val; | |
41 | u8 mask; | |
42 | }; | |
43 | ||
44 | struct usb_req { | |
45 | u8 cmd; | |
46 | u8 mbox; | |
47 | u8 wlen; | |
48 | u8 *wbuf; | |
49 | u8 rlen; | |
50 | u8 *rbuf; | |
51 | }; | |
52 | ||
2a79eefa | 53 | struct state { |
5da2aecb | 54 | u8 seq; /* packet sequence number */ |
7f882c2e | 55 | bool dual_mode; |
2a79eefa AP |
56 | |
57 | struct af9033_config af9033_config[2]; | |
7f882c2e AP |
58 | }; |
59 | ||
7f882c2e AP |
60 | u32 clock_lut[] = { |
61 | 20480000, /* FPGA */ | |
62 | 16384000, /* 16.38 MHz */ | |
63 | 20480000, /* 20.48 MHz */ | |
64 | 36000000, /* 36.00 MHz */ | |
65 | 30000000, /* 30.00 MHz */ | |
66 | 26000000, /* 26.00 MHz */ | |
67 | 28000000, /* 28.00 MHz */ | |
68 | 32000000, /* 32.00 MHz */ | |
69 | 34000000, /* 34.00 MHz */ | |
70 | 24000000, /* 24.00 MHz */ | |
71 | 22000000, /* 22.00 MHz */ | |
72 | 12000000, /* 12.00 MHz */ | |
73 | }; | |
74 | ||
f2b61d0c AP |
75 | u32 clock_lut_it9135[] = { |
76 | 12000000, /* 12.00 MHz */ | |
77 | 20480000, /* 20.48 MHz */ | |
78 | 36000000, /* 36.00 MHz */ | |
79 | 30000000, /* 30.00 MHz */ | |
80 | 26000000, /* 26.00 MHz */ | |
81 | 28000000, /* 28.00 MHz */ | |
82 | 32000000, /* 32.00 MHz */ | |
83 | 34000000, /* 34.00 MHz */ | |
84 | 24000000, /* 24.00 MHz */ | |
85 | 22000000, /* 22.00 MHz */ | |
86 | }; | |
87 | ||
4395e4b7 AP |
88 | #define AF9035_FIRMWARE_AF9035 "dvb-usb-af9035-02.fw" |
89 | #define AF9035_FIRMWARE_IT9135 "dvb-usb-it9135-01.fw" | |
90 | ||
7f882c2e AP |
91 | /* EEPROM locations */ |
92 | #define EEPROM_IR_MODE 0x430d | |
93 | #define EEPROM_DUAL_MODE 0x4326 | |
94 | #define EEPROM_IR_TYPE 0x4329 | |
95 | #define EEPROM_1_IFFREQ_L 0x432d | |
96 | #define EEPROM_1_IFFREQ_H 0x432e | |
97 | #define EEPROM_1_TUNER_ID 0x4331 | |
98 | #define EEPROM_2_IFFREQ_L 0x433d | |
99 | #define EEPROM_2_IFFREQ_H 0x433e | |
100 | #define EEPROM_2_TUNER_ID 0x4341 | |
101 | ||
102 | /* USB commands */ | |
103 | #define CMD_MEM_RD 0x00 | |
104 | #define CMD_MEM_WR 0x01 | |
105 | #define CMD_I2C_RD 0x02 | |
106 | #define CMD_I2C_WR 0x03 | |
3234bd2f | 107 | #define CMD_IR_GET 0x18 |
7f882c2e AP |
108 | #define CMD_FW_DL 0x21 |
109 | #define CMD_FW_QUERYINFO 0x22 | |
110 | #define CMD_FW_BOOT 0x23 | |
111 | #define CMD_FW_DL_BEGIN 0x24 | |
112 | #define CMD_FW_DL_END 0x25 | |
f2b61d0c | 113 | #define CMD_FW_SCATTER_WR 0x29 |
7f882c2e AP |
114 | |
115 | #endif |