drv_tuner_external.h 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845
  1. #ifndef _DRV_TUNER_EXTERNAL_H_
  2. #define _DRV_TUNER_EXTERNAL_H_
  3. #define CMD_STEP 100
  4. // ========= for internal and external usage ========
  5. typedef enum
  6. {
  7. /*------------------------- cmd ------------------------------*/
  8. FRONTEND_CMD_INIT = 0*CMD_STEP,
  9. FRONTEND_CMD_UNINIT,
  10. FRONTEND_CMD_CTRL_ANALOG,
  11. FRONTEND_CMD_CTRL_DIGITAL,
  12. FRONTEND_CMD_QUERY_SETTINGS,
  13. FRONTEND_CMD_GET_CONNECT_TYPE,
  14. FRONTEND_CMD_SET_CONNECT_TYPE,
  15. /*------------------------- ADemod cmd ------------------------------*/
  16. FRONTEND_CMD_SET_ANALOG = 1*CMD_STEP,
  17. FRONTEND_CMD_QUERY_STATUS_ANALOG,
  18. FRONTEND_CMD_SET_SCAN_POSITION,
  19. FRONTEND_CMD_SET_ADEMOD_SIFPOWER, /* for 330 ademod and sifdecoder CLK source*/
  20. FRONTEND_CMD_SET_AFC_Scanning_Flag, /* Set AFC scanning flag for admoed*/
  21. FRONTEND_CMD_SET_Scan_State, /* Set save channel flag for admoed*/
  22. FRONTEND_CMD_SET_Tuner_RFPower_Status,
  23. FRONTEND_CMD_SET_ANALOG_LOWIF,
  24. FRONTEND_CMD_SET_SIF,
  25. FRONTEND_CMD_SET_IF_Target_Gain,
  26. FRONTEND_CMD_SET_HW_AFT_Flag,
  27. FRONTEND_CMD_SET_ADEMOD_RESET_BIT,
  28. FRONTEND_CMD_SET_PQ_FILTER,
  29. FRONTEND_CMD_Shift_PLL_Position,
  30. FRONTEND_CMD_SET_LSG_ENABLE_BIT,
  31. FRONTEND_CMD_SET_AFT_PAUSE,
  32. FRONTEND_CMD_Get_Video_Spectrum,
  33. FRONTEND_CMD_Get_Ademod_Register,
  34. FRONTEND_CMD_SET_ADEMOD_ASAW,
  35. /*------------------------- dvb-t/t2 cmd ------------------------------*/
  36. FRONTEND_CMD_SET_T = 2*CMD_STEP,
  37. FRONTEND_CMD_SET_T2,
  38. FRONTEND_CMD_QUERY_STATUS_DVB_T,
  39. FRONTEND_CMD_QUERY_STATUS_DVB_T2,
  40. FRONTEND_CMD_GET_CELL_ID,
  41. FRONTEND_CMD_GET_PLP_NUMBER,
  42. FRONTEND_CMD_GET_DVBT2_IS_FEF_SIGNAL,
  43. FRONTEND_CMD_INFO_TUNER_DVBT2_FEF_SIGNAL,
  44. FRONTEND_CMD_RESET_DVBT2_FOR_MT,
  45. /*------------------------- dvb-c/c2 cmd ------------------------------*/
  46. FRONTEND_CMD_SET_C = 3*CMD_STEP,
  47. FRONTEND_CMD_SET_C2,
  48. FRONTEND_CMD_QUERY_STATUS_DVB_C,
  49. FRONTEND_CMD_QUERY_STATUS_DVB_C2,
  50. /*------------------------- dvb-s/s2 cmd ------------------------------*/
  51. FRONTEND_CMD_SET_S = 4*CMD_STEP,
  52. FRONTEND_CMD_SET_S2,
  53. FRONTEND_CMD_QUERY_STATUS_DVB_S,
  54. FRONTEND_CMD_QUERY_STATUS_DVB_S2,
  55. FRONTEND_CMD_SET_LNB,
  56. FRONTEND_CMD_SET_LNB_POWER,
  57. FRONTEND_CMD_SET_LNB_POWER_LEVEL,
  58. FRONTEND_CMD_GET_LNB_POWER_LEVEL,
  59. FRONTEND_CMD_SET_22K,
  60. FRONTEND_CMD_GET_DISEQC_22KHZ_CONFIG,
  61. FRONTEND_CMD_SET_DISEQC_22KHZ_CONFIG,
  62. FRONTEND_CMD_SET_POLARITY,
  63. FRONTEND_CMD_SET_TONE_BURST_OFF,
  64. FRONTEND_CMD_SET_TONE_BURST_A,
  65. FRONTEND_CMD_SET_TONE_BURST_B,
  66. FRONTEND_CMD_SET_SEND_DISEQC_CMD,
  67. FRONTEND_CMD_SET_BLINDSEARCH_INIT,
  68. FRONTEND_CMD_SET_BLINDSEARCH,
  69. FRONTEND_CMD_SET_BLINDSEARCH_END,
  70. FRONTEND_CMD_SET_BLINDSEARCH_PAUSE,
  71. FRONTEND_CMD_SET_BLINDSEARCH_DEMOD_CTRL,
  72. FRONTEND_CMD_SET_BLINDSEARCH_TUNER_CTRL,
  73. FRONTEND_CMD_SET_BLINDSEARCH_TUNER_STEP_SIZE,
  74. FRONTEND_CMD_GET_BLINDSEARCH_TUNER_STEP_SIZE,
  75. FRONTEND_CMD_GET_BLINDSEARCH_TUNER_BAND,
  76. FRONTEND_CMD_GET_AUTO_DETECT_DVB_S_S2,
  77. FRONTEND_CMD_GET_AGC_Voltage,
  78. FRONTEND_CMD_GET_BLINDSEARCH_PROGRESS,
  79. FRONTEND_CMD_GET_BLINDSEARCH_CHANNEL_LIST,
  80. FRONTEND_CMD_GET_DEMOD_DEBUG_INFO,
  81. FRONTEND_CMD_GET_AVERAGE_IQ_THRESHOLD_CNT,
  82. FRONTEND_CMD_SET_UNICABLE_MODE,
  83. FRONTEND_CMD_GET_CANDIDATE_TABLE,
  84. FRONTEND_CMD_GET_TSO_RATE,
  85. FRONTEND_CMD_GET_LONG_CFO_SEARCH_MODE,
  86. /*------------------------- atsc cmd ------------------------------*/
  87. FRONTEND_CMD_SET_ATSC = 5*CMD_STEP,
  88. FRONTEND_CMD_QUERY_STATUS_ATSC,
  89. /*------------------------- dtmb cmd ------------------------------*/
  90. FRONTEND_CMD_SET_DTMB = 6*CMD_STEP,
  91. FRONTEND_CMD_QUERY_STATUS_DTMB,
  92. /*------------------------- j83b cmd ------------------------------*/
  93. FRONTEND_CMD_SET_J83B = 7*CMD_STEP,
  94. FRONTEND_CMD_QUERY_STATUS_J83B,
  95. /*------------------------- isdb-t/c/s cmd ------------------------------*/
  96. FRONTEND_CMD_SET_ISDBT = 8*CMD_STEP,
  97. FRONTEND_CMD_SET_ISDBC,
  98. FRONTEND_CMD_SET_ISDBS,
  99. FRONTEND_CMD_QUERY_STATUS_ISDBT,
  100. FRONTEND_CMD_QUERY_STATUS_ISDBC,
  101. FRONTEND_CMD_QUERY_STATUS_ISDBS,
  102. /*------------------------- tuner cmd ------------------------------*/
  103. FRONTEND_CMD_SET_TUNER = 9*CMD_STEP,
  104. FRONTEND_CMD_TUNERDETECT,
  105. FRONTEND_CMD_SET_TUNER_AFC_RANGE,
  106. FRONTEND_CMD_SET_TUNER_PIN_CONFIG,
  107. FRONTEND_CMD_SET_TUNER_PIN_CONFIG_1,
  108. FRONTEND_CMD_SET_TUNER_IF_OUT_PORT,
  109. FRONTEND_CMD_GET_TUNER_RSSI,
  110. FRONTEND_CMD_SET_TUNER_XTAL_OUT,
  111. FRONTEND_CMD_SET_TUNER_WAKE_POWER_DOWN,
  112. FRONTEND_CMD_GET_TUNER_STATUS,
  113. /*------------------------- common cmd ------------------------------*/
  114. FRONTEND_CMD_GET_SIGNAL_QUALITY = 10*CMD_STEP,
  115. FRONTEND_CMD_GET_SIGNAL_STRENGTH,
  116. FRONTEND_CMD_GET_SIGNAL_BER,
  117. FRONTEND_CMD_GET_SIGNAL_SNR,
  118. FRONTEND_CMD_GET_SIGNAL_PER,
  119. FRONTEND_CMD_GET_SIGNAL_UBC,
  120. FRONTEND_CMD_POLLING_TUNER_CONNECT_STATUS,
  121. FRONTEND_CMD_SET_TUNER_SCAN_MODE,
  122. FRONTEND_CMD_GET_TUNER_SCAN_MODE,
  123. FRONTEND_CMD_GET_FRONTEND,
  124. FRONTEND_CMD_GET_INIT_STATUS,
  125. FRONTEND_CMD_GET_FREQUENCY,
  126. FRONTEND_CMD_GET_MODULATION,
  127. FRONTEND_CMD_GET_MODULATION_INFO,
  128. FRONTEND_CMD_GET_FREQUENCY_OFFSET,
  129. FRONTEND_CMD_GET_SYMBOLRATE,
  130. FRONTEND_CMD_SET_TS_OUTPUT_HIZ,
  131. FRONTEND_CMD_TS_THROUGH_CAM_OR_NOT,
  132. FRONTEND_CMD_SET_TS_NULL_PACKET_CONFIG,
  133. FRONTEND_CMD_GET_TS_NULL_PACKET_CONFIG,
  134. FRONTEND_CMD_GET_USED_INTERNAL_DEMOD,
  135. FRONTEND_CMD_GET_MOSAIC_STATUS, /* Get Mosaic status */
  136. FRONTEND_CMD_POWER_DOWN,
  137. FRONTEND_CMD_SET_POWERSAVING, /* for 330 TUNER_power() function*/
  138. FRONTEND_CMD_SET_EXTERNAL_CMD_TARGET,
  139. FRONTEND_CMD_EXTERNAL_SET_GPO_CMD, /*External tuner/Demod GPO Ctrl Command */
  140. FRONTEND_CMD_SET_INTERNAL_FOCUS,
  141. FRONTEND_CMD_SET_CHANGE_SOURCE,
  142. FRONTEND_CMD_GET_DEMOD_LOCK_STATUS,
  143. FRONTEND_CMD_GET_SQI_SSI,
  144. FRONTEND_CMD_GET_SPECTRUM_INVERSION,
  145. FRONTEND_CMD_SET_I2C_BYPASS_MODE,
  146. FRONTEND_CMD_GET_TS_MODE,
  147. FRONTEND_CMD_GET_TS_INPUT,
  148. FRONTEND_CMD_GET_TUNER_ID,
  149. FRONTEND_CMD_SET_DEMOD_PREPROCESSING,
  150. FRONTEND_CMD_SET_DEMOD_POSTPROCESSING,
  151. /*------------------------- spical cmd ------------------------------*/
  152. FRONTEND_CMD_SET_MIRACAST_COPROCESSOR = 11*CMD_STEP,
  153. FRONTEND_CMD_MAX,
  154. } DRV_Frontend_Cmd;
  155. /*!
  156. * @brief Hierarchy Mode.
  157. */
  158. typedef enum
  159. {
  160. FRONTEND_HIERARCHY_NONE,
  161. FRONTEND_HIERARCHY_1,
  162. FRONTEND_HIERARCHY_2,
  163. FRONTEND_HIERARCHY_4,
  164. FRONTEND_HIERARCHY_AUTO,
  165. FRONTEND_HIERARCHY_MAX,
  166. } DRV_Frontend_Hierarchy_t;
  167. /*!
  168. * @brief Frontend Type.
  169. */
  170. typedef enum
  171. {
  172. FRONTEND_CONNECT_TYPE_ANALOG = 0,
  173. FRONTEND_CONNECT_TYPE_DVB_T = 1,
  174. FRONTEND_CONNECT_TYPE_DVB_T2 = 2,
  175. FRONTEND_CONNECT_TYPE_DVB_C = 3,
  176. FRONTEND_CONNECT_TYPE_DVB_C2 = 4,
  177. FRONTEND_CONNECT_TYPE_DVB_S = 5,
  178. FRONTEND_CONNECT_TYPE_DVB_S2 = 6,
  179. FRONTEND_CONNECT_TYPE_ISDB_T = 7,
  180. FRONTEND_CONNECT_TYPE_ISDB_C = 8,
  181. FRONTEND_CONNECT_TYPE_ISDB_S = 9,
  182. FRONTEND_CONNECT_TYPE_ATSC = 10,
  183. FRONTEND_CONNECT_TYPE_J83B = 11,
  184. FRONTEND_CONNECT_TYPE_DTMB = 12,
  185. FRONTEND_CONNECT_TYPE_MIRACAST = 13,
  186. FRONTEND_CONNECT_TYPE_DISABLE = 14,
  187. FRONTEND_CONNECT_TYPE_MAX = 15,
  188. } DRV_Frontend_Connect_Type_t;
  189. /*!
  190. * @brief Frontend Focus & Defocus.
  191. */
  192. typedef enum
  193. {
  194. FRONTEND_CONNECT_DEFOCUS = 0,
  195. FRONTEND_CONNECT_FOCUS = 1,
  196. } DRV_Frontend_Connect_Focus_t;
  197. /*!
  198. * @brief tuner standard
  199. */
  200. typedef enum
  201. {
  202. RFFRONTEND_STD_NULL = 0,
  203. RFFRONTEND_STD_M = 1,/* Analog */
  204. RFFRONTEND_STD_BG = 2,
  205. RFFRONTEND_STD_DK = 3,
  206. RFFRONTEND_STD_I = 4,
  207. RFFRONTEND_STD_L = 5,
  208. RFFRONTEND_STD_L1 = 6,
  209. RFFRONTEND_STD_T = 7,/* Digital */
  210. RFFRONTEND_STD_T2 = 8,
  211. RFFRONTEND_STD_C = 9,
  212. RFFRONTEND_STD_C2 = 10,
  213. RFFRONTEND_STD_S = 11,
  214. RFFRONTEND_STD_S2 = 12,
  215. RFFRONTEND_STD_ISDB_T = 13,
  216. RFFRONTEND_STD_ISDB_C = 14,
  217. RFFRONTEND_STD_ISDB_S = 15,
  218. RFFRONTEND_STD_ATSC = 16,
  219. RFFRONTEND_STD_J83B = 17,
  220. RFFRONTEND_STD_DTMB = 18,
  221. RFFRONTEND_STD_MAX = 19,
  222. } DRV_RfFrontend_Std_t;
  223. /*!
  224. * @brief Code Rate.
  225. */
  226. typedef enum
  227. {
  228. FRONTEND_CODE_RATE_NONE = 0,
  229. FRONTEND_CODE_RATE_1_4,
  230. FRONTEND_CODE_RATE_1_3,
  231. FRONTEND_CODE_RATE_2_5,
  232. FRONTEND_CODE_RATE_1_2,
  233. FRONTEND_CODE_RATE_2_3,
  234. FRONTEND_CODE_RATE_3_4,
  235. FRONTEND_CODE_RATE_3_5,
  236. FRONTEND_CODE_RATE_4_5,
  237. FRONTEND_CODE_RATE_5_6,
  238. FRONTEND_CODE_RATE_6_7,
  239. FRONTEND_CODE_RATE_7_8,
  240. FRONTEND_CODE_RATE_8_9,
  241. FRONTEND_CODE_RATE_9_10,
  242. FRONTEND_CODE_RATE_AUTO,
  243. FRONTEND_CODE_RATE_0_p4, /* For DTMB Code Rate 0.4 */
  244. FRONTEND_CODE_RATE_0_p6, /* For DTMB Code Rate 0.6 */
  245. FRONTEND_CODE_RATE_0_p8, /* For DTMB Code Rate 0.8 */
  246. FRONTEND_CODE_RATE_MAX,
  247. } DRV_Frontend_Code_Rate_t;
  248. /*!
  249. * @brief Frontedn Bandwidth.
  250. */
  251. typedef enum
  252. {
  253. FRONTEND_BANDWIDTH_1_7_MHZ = 1, //DVB-T2 BW 1.7MHz
  254. FRONTEND_BANDWIDTH_5_MHZ = 5,
  255. FRONTEND_BANDWIDTH_6_MHZ = 6,
  256. FRONTEND_BANDWIDTH_7_MHZ = 7,
  257. FRONTEND_BANDWIDTH_8_MHZ = 8,
  258. FRONTEND_BANDWIDTH_9_MHZ,
  259. FRONTEND_BANDWIDTH_10MHZ,
  260. FRONTEND_BANDWIDTH_MAX,
  261. } DRV_Frontend_Bandwidth_t;
  262. /*!
  263. * @brief Transmit Mode.
  264. */
  265. typedef enum
  266. {
  267. FRONTEND_TRANSMISSION_MODE_2K,
  268. FRONTEND_TRANSMISSION_MODE_8K,
  269. FRONTEND_TRANSMISSION_MODE_AUTO,
  270. FRONTEND_TRANSMISSION_MODE_MAX,
  271. } DRV_Frontend_Transmit_Mode_t;
  272. /*!
  273. * @brief Guard Interval.
  274. */
  275. typedef enum
  276. {
  277. FRONTEND_GUARD_INTERVAL_1_32,
  278. FRONTEND_GUARD_INTERVAL_1_16,
  279. FRONTEND_GUARD_INTERVAL_1_8,
  280. FRONTEND_GUARD_INTERVAL_1_4,
  281. FRONTEND_GUARD_INTERVAL_AUTO,
  282. FRONTEND_GUARD_INTERVAL_PN420, /* For DTMB PN420 */
  283. FRONTEND_GUARD_INTERVAL_PN595, /* For DTMB PN595 */
  284. FRONTEND_GUARD_INTERVAL_PN945, /* For DTMB PN945 */
  285. FRONTEND_GUARD_INTERVAL_MAX,
  286. } DRV_Frontend_Guard_Interval_t;
  287. /*!
  288. * @brief Carrier Mode.
  289. */
  290. typedef enum
  291. {
  292. FRONTEND_CARRIER_MODE_SINGLE = 0,
  293. FRONTEND_CARRIER_MODE_MULTI,
  294. FRONTEND_CARRIER_MODE_MAX,
  295. }DRV_Frontend_Carrier_Mode_t;
  296. /*!
  297. * @brief Priority.
  298. */
  299. typedef enum
  300. {
  301. FRONTEND_PRIORITY_HIGH = 0,
  302. FRONTEND_PRIORITY_LOW,
  303. FRONTEND_PRIORITY_MAX,
  304. }DRV_Frontend_Priority_t;
  305. /*!
  306. * @brief Roll Off.
  307. */
  308. typedef enum
  309. {
  310. FRONTEND_ROLLOFF_35, /* Implied value in DVB-S, default for DVB-S2 */
  311. FRONTEND_ROLLOFF_20,
  312. FRONTEND_ROLLOFF_25,
  313. FRONTEND_ROLLOFF_AUTO,
  314. FRONTEND_MAX,
  315. } DRV_Frontend_RollOff_t;
  316. /*!
  317. * @brief Pilot.
  318. */
  319. typedef enum
  320. {
  321. FRONTEND_PILOT_ON,
  322. FRONTEND_PILOT_OFF,
  323. FRONTEND_PILOT_AUTO,
  324. FRONTEND_PILOT_MAX,
  325. } DRV_Frontend_Pilot_t;
  326. /*!
  327. * @brief Time Deinter Leaver.
  328. */
  329. typedef enum
  330. {
  331. FRONTEND_TDI_240,
  332. FRONTEND_TDI_720,
  333. FRONTEND_TDI_BYPASS = 0x11,
  334. FRONTEND_TDI_MAX,
  335. } DRV_Frontend_Time_Deinterleaver_t;
  336. /*!
  337. * @brief QAM Type.
  338. */
  339. typedef enum
  340. {
  341. FRONTEND_MOD_TYPE_QPSK = 0,
  342. FRONTEND_MOD_TYPE_QAM_16 = 1,
  343. FRONTEND_MOD_TYPE_QAM_32 = 2,
  344. FRONTEND_MOD_TYPE_QAM_64 = 3,
  345. FRONTEND_MOD_TYPE_QAM_128 = 4,
  346. FRONTEND_MOD_TYPE_QAM_256 = 5,
  347. FRONTEND_MOD_TYPE_QAM_AUTO = 6,
  348. FRONTEND_MOD_TYPE_VSB_8 = 7, /* ATSC */
  349. FRONTEND_MOD_TYPE_VSB_16 = 8, /* ATSC */
  350. FRONTEND_MOD_TYPE_PSK_8 = 9, /* DVB-S2 */
  351. FRONTEND_MOD_TYPE_APSK_16 = 10, /* DVB-S2 */
  352. FRONTEND_MOD_TYPE_APSK_32 = 11, /* DVB-S2 */
  353. FRONTEND_MOD_TYPE_DQPSK = 12, /* DVB-S2 */
  354. FRONTEND_MOD_TYPE_4_QAM_NR = 13, /* DTMB */
  355. FRONTEND_MOD_TYPE_4_QAM = 14, /* DTMB */
  356. FRONTEND_MOD_TYPE_MAX,
  357. } DRV_Frontend_Modulation_Type_t;
  358. /*!
  359. * @brief Scan Position.
  360. */
  361. typedef enum
  362. {
  363. FRONTEND_SCAN_POSITION_POSITIVE = 0,
  364. FRONTEND_SCAN_POSITION_NEGATIVE,
  365. } DRV_Frontend_Scan_Position_t;
  366. /*!
  367. * @brief Silicon Tuner IF Output Port.
  368. */
  369. typedef enum
  370. {
  371. FRONTEND_IF_OUTPUT_ANALOG_PORT1 = 0,
  372. FRONTEND_IF_OUTPUT_ANALOG_PORT2,
  373. FRONTEND_IF_OUTPUT_DIGITAL_PORT1,
  374. FRONTEND_IF_OUTPUT_DIGITAL_PORT2,
  375. FRONTEND_IF_OUTPUT_MAX,
  376. } DRV_Frontend_IF_Output_Port_t;
  377. /*!
  378. * @brief Frontend Analog IF Type.
  379. */
  380. typedef enum
  381. {
  382. FRONTEND_ANALOG_IF_NORMAL_IF = 0,
  383. FRONTEND_ANALOG_IF_LOW_IF,
  384. FRONTEND_ANALOG_IF_SIF,
  385. FRONTEND_ANALOG_IF_MAX,
  386. } DRV_Frontend_Analog_IF_Type_t;
  387. /*!
  388. * @brief Frontend Analog IF Type.
  389. */
  390. typedef enum
  391. {
  392. ANALOG_SCAN_STATE_SEARCH = 0, // search AFC window
  393. ANALOG_SCAN_STATE_FINETUNE_WITH_AM_L1, // finetune frequency with SECAM L'
  394. ANALOG_SCAN_STATE_CHECK_SIGNAL_WITH_AM_L1,
  395. ANALOG_SCAN_STATE_FINETUNE_WITH_FM, // finetune frequency with FM-standard
  396. ANALOG_SCAN_STATE_CHECK_SIGNAL_WITH_FM,
  397. ANALOG_SCAN_STATE_FINETUNE_WITH_AM, // finetune frequency with AM-standard
  398. ANALOG_SCAN_STATE_CHECK_SIGNAL_WITH_AM,
  399. ANALOG_SCAN_STATE_SAVE_CHANNEL, // save channel
  400. ANALOG_SCAN_STATE_FINISH, // stop and exit
  401. ANALOG_SCAN_STATE_IDLE, // idle.
  402. ANALOG_SCAN_STATE_MAX,
  403. } DRV_Frontend_Analog_ScanState;
  404. /*!
  405. * @brief Frontend internal demod status.
  406. */
  407. typedef struct
  408. {
  409. int InternalDemod_Analog;
  410. int InternalDemod_DVB_T;
  411. int InternalDemod_DVB_T2;
  412. int InternalDemod_DVB_C;
  413. int InternalDemod_DVB_C2;
  414. int InternalDemod_DVB_S;
  415. int InternalDemod_DVB_S2;
  416. int InternalDemod_ISDB_T;
  417. int InternalDemod_ISDB_C;
  418. int InternalDemod_ISDB_S;
  419. int InternalDemod_ATSC;
  420. int InternalDemod_J83B;
  421. int InternalDemod_DTMB;
  422. int InternalDemod_MIRACAST;
  423. } DRV_Frontend_InternalDemodStatus_t;
  424. /*!
  425. * @brief Frontend Diseqc Bank Type.
  426. */
  427. typedef enum
  428. {
  429. FRONTEND_DISEQC_BANK_A_LB_VP = 0, //PositionA, Low Band/ Vertical polarization
  430. FRONTEND_DISEQC_BANK_A_HB_VP, //PositionA, Hight Band/ Vertical polarization
  431. FRONTEND_DISEQC_BANK_A_LB_HP, //PositionA, Low Band/ Horizontal polarization
  432. FRONTEND_DISEQC_BANK_A_HB_HP, //PositionA, Hight Band/ Horizontal polarization
  433. FRONTEND_DISEQC_BANK_B_LB_VP, //PositionB, Low Band/ Vertical polarization
  434. FRONTEND_DISEQC_BANK_B_HB_VP, //PositionB, Hight Band/ Vertical polarization
  435. FRONTEND_DISEQC_BANK_B_LB_HP, //PositionB, Low Band/ Horizontal polarization
  436. FRONTEND_DISEQC_BANK_B_HB_HP, //PositionB, Hight Band/ Horizontal polarization
  437. FRONTEND_DISEQC_BANK_MAX,
  438. } DRV_Frontend_Diseqc_Bank_T;
  439. typedef enum{
  440. FRONTEND_TUNER_STATUS_SEARCH_CHANNEL,
  441. FRONTEND_TUNER_STATUS_CHANGE_CHANNEL,
  442. FRONTEND_TUNER_STATUS_CHANGE_FINISH,
  443. FRONTEND_TUNER_STATUS_MAX
  444. } DRV_Frontend_Tuner_Status;
  445. typedef enum {
  446. TUNER_IdMaxlinearMXL601, //Maxlinear MxL601
  447. TUNER_IdMaxlinearMXL661, //Maxlinear MxL661
  448. TUNER_IdNxpTDA18273, //NXP TDA18273
  449. TUNER_IdNxpTDA18275, //NXP TDA18275
  450. TUNER_IdNxpTDA182I5A, //NXP TDA182I5A
  451. TUNER_IdSiliconLabSI2151, //Silicon lab SI2151
  452. TUNER_IdSiliconLabSI2157, //Silicon lab SI2157
  453. TUNER_IdSiliconLabSI2158, //Silicon lab SI2158
  454. TUNER_IdRafaelMicroR828, //Rafel Micro R828
  455. TUNER_IdRafaelMicroR840, //Rafel Micro R840
  456. TUNER_IdRafaelMicroR842, //Rafel Micro R842
  457. TUNER_IdRda5160, //RDA 5160
  458. TUNER_IdAtbm2040, //ATBM 2040
  459. TUNER_IdAtbm253, //ATBM 253
  460. TUNER_IdMax,
  461. TUNER_IdDefault = TUNER_IdRda5160
  462. } tuner_TypeId, *tuner_pTypeId;
  463. /*!
  464. * @brief Frontend status
  465. */
  466. typedef struct
  467. {
  468. int IsLock;
  469. int FreqOffset;
  470. int AnalogMinFreq;
  471. int AnalogMaxFreq;
  472. int DigitalMinFreq;
  473. int DigitalMaxFreq;
  474. unsigned int Strength;
  475. unsigned int Quality;
  476. unsigned int TunerStep;
  477. unsigned int DemodUnlockOffset;
  478. DRV_Frontend_Analog_IF_Type_t eIFType;
  479. tuner_TypeId TunerID;
  480. INT32 powerLevel_dbm;
  481. } DRV_RfFrontend_Status_t;
  482. /*!
  483. * @brief Analog Control Parameter.
  484. */
  485. typedef struct
  486. {
  487. unsigned int dFreq;
  488. DRV_RfFrontend_Std_t Std;
  489. } DRV_AnalogCtrlParam_t;
  490. typedef struct
  491. {
  492. unsigned int dFreq_MHz;
  493. unsigned int dSymbolRate_KHz;
  494. unsigned int dLPF_KHz;
  495. } DRV_DVBS2TunerCtrlParam_t;
  496. typedef enum
  497. {
  498. FRONTEND_TYPE_QPSK = 0,/*DVB-S */
  499. FRONTEND_TYPE_QAM = 1,/* DVB-C */
  500. FRONTEND_TYPE_OFDM = 2,/* DVB-T */
  501. FRONTEND_TYPE_TDS_OFDM = 3,
  502. FRONTEND_TYPE_ATSC = 4,
  503. FRONTEND_TYPE_DTMB = 5,
  504. FRONTEND_TYPE_DVBS2 = 6,/* DVB-S2 */
  505. FRONTEND_TYPE_DVBT2 = 7,/* DVB-T2 */
  506. FRONTEND_TYPE_MAX,
  507. } DRV_Frontend_Type_t;
  508. /*!
  509. * @brief Spectral Inversion.
  510. */
  511. typedef enum
  512. {
  513. FRONTEND_INVERSION_OFF = 0,
  514. FRONTEND_INVERSION_ON = 1,
  515. FRONTEND_INVERSION_AUTO= 2,
  516. FRONTEND_INVERSION_MAX,
  517. } DRV_Frontend_Spectral_Inversion_t;
  518. /*!
  519. * @brief Zap Control.
  520. */
  521. typedef enum
  522. {
  523. FRONTEND_ZAP_ACQ_ONLY = 901,
  524. FRONTEND_ZAP_NORMAL_ACQ = 902,
  525. FRONTEND_ZAP_MAX,
  526. } DRV_Frontend_ZapCtrl_t;
  527. /*!
  528. * @brief Zap Control.
  529. */
  530. // typedef enum
  531. // {
  532. // FRONTEND_BLLINDSCAN_PROGRESS_UNKOW ,
  533. // FRONTEND_BLLINDSCAN_PROGRESS_N_COMPLETE ,
  534. // FRONTEND_BLLINDSCAN_PROGRESS_COMPLETE ,
  535. // FRONTEND_BLLINDSCAN_PROGRESS_MAX,
  536. // } DRV_Frontend_BLlindScan_Progress_Status_t;
  537. /*!
  538. * @brief Zap Control.
  539. */
  540. typedef struct
  541. {
  542. UINT32 completionPercentage;
  543. BOOL Channel_Found;
  544. } DRV_Frontend_BLlindScan_Progress_t;
  545. typedef struct _SATELLITE_CH_INFO_
  546. {
  547. UINT32 freqKHz;
  548. UINT32 baudrate;
  549. DRV_Frontend_Type_t standard;
  550. DRV_Frontend_Diseqc_Bank_T DiseqcBank;
  551. }DRV_Frontend_Sat_Ch_Info_t;
  552. typedef struct _BS_SATELLITE_CH_INFO_
  553. {
  554. UINT32 freqKHz;
  555. UINT32 baudrate;
  556. DRV_Frontend_Type_t standard;
  557. UINT32 DemodCostTime;
  558. UINT32 TSCostTime;
  559. }DRV_Frontend_BS_Sat_Ch_Info_t;
  560. typedef struct
  561. {
  562. UINT8 nCh;
  563. DRV_Frontend_Sat_Ch_Info_t para[256];
  564. }DRV_Frontend_Sat_Ch_List_t;
  565. typedef struct
  566. {
  567. UINT32 nCh;
  568. DRV_Frontend_BS_Sat_Ch_Info_t para[1000];
  569. }DRV_Frontend_BS_Sat_Ch_List_t;
  570. /*!
  571. * @brief Digital Control Parameter - QPSK.
  572. */
  573. typedef struct
  574. {
  575. unsigned int tuningFrequencyMHz; /* In MHz */
  576. unsigned int imqSign; /* (i,q) or (i,-q) */
  577. unsigned int viterbiCodeRate; /* Viterbi code rate */
  578. unsigned int symbolRateKHz; /* In ksymbols/s */
  579. unsigned int polarization; /* Horizontal or Vertical */
  580. DRV_Frontend_Code_Rate_t efec_inner; /* forward error correction (see above) */
  581. } DRV_Frontend_QPSK_Param_t;
  582. /*!
  583. * @brief Digital Control Parameter - QAM.
  584. */
  585. typedef struct
  586. {
  587. unsigned int symbol_rate; // symbol rate in Symbols per second
  588. DRV_Frontend_Code_Rate_t fec_inner; // forward error correction (see above)
  589. DRV_Frontend_Modulation_Type_t modulation; // modulation type (see above)
  590. DRV_Frontend_Bandwidth_t bandwidth;
  591. } DRV_Frontend_QAM_Param_t;
  592. /*!
  593. * @brief Digital Control Parameter - OFDM.
  594. */
  595. typedef struct
  596. {
  597. DRV_Frontend_Bandwidth_t bandwidth;
  598. DRV_Frontend_Code_Rate_t code_rate_HP; // high priority stream code rate
  599. DRV_Frontend_Code_Rate_t code_rate_LP; // low priority stream code rate
  600. DRV_Frontend_Modulation_Type_t constellation; // modulation type (see above)
  601. DRV_Frontend_Transmit_Mode_t transmission_mode;
  602. DRV_Frontend_Guard_Interval_t guard_interval;
  603. DRV_Frontend_Hierarchy_t hierarchy_information;
  604. DRV_Frontend_Priority_t eHPLP;
  605. int dPLP_ID; // DVB_T2 PLP ID
  606. } DRV_Frontend_OFDM_Param_t;
  607. /*!
  608. * @brief Digital Control Parameter - DVB-S2.
  609. */
  610. typedef struct
  611. {
  612. unsigned int u32symbol_rate; /* symbol rate in Symbols per second */
  613. unsigned int polarization;
  614. DRV_Frontend_Diseqc_Bank_T DiseqcBank;
  615. DRV_Frontend_Type_t eFeType;
  616. DRV_Frontend_Code_Rate_t efec_inner; /* forward error correction (see above) */
  617. DRV_Frontend_RollOff_t erolloff_factor; /* rolloff factor needed for dvb-s2 */
  618. DRV_Frontend_Modulation_Type_t emodulation; /* modulation type (see above) */
  619. DRV_Frontend_Pilot_t eFePilot;
  620. unsigned int u32BS_Start_Freq_kHz; // blind search start frequency, uint: kHz
  621. unsigned int u32BS_Stop_Freq_kHz; //blind search stop frequency , unit: kHz
  622. }DRV_Frontend_DVB_S2_Param_t;
  623. /*!
  624. * @brief Digital Control Parameter - TDSOFDM.
  625. */
  626. typedef struct
  627. {
  628. unsigned int dDemodPara;
  629. DRV_Frontend_Carrier_Mode_t carrier_mode;
  630. DRV_Frontend_Bandwidth_t bandwidth;
  631. DRV_Frontend_Code_Rate_t code_rate; //0.4, 0.6, 0.8
  632. DRV_Frontend_Modulation_Type_t constellation; //QPSK, 16QAM, 64QAM
  633. DRV_Frontend_Guard_Interval_t guard_interval; //pn945, pN420
  634. DRV_Frontend_Time_Deinterleaver_t time_deinterleaver; //240, 720
  635. }DRV_Frontend_TDSOFDM_Param_t;
  636. /*!
  637. * @brief Digital Control Parameter - SBTVD.
  638. */
  639. typedef struct
  640. {
  641. DRV_Frontend_Bandwidth_t bandwidth;
  642. DRV_Frontend_Code_Rate_t code_rate_HP; // high priority stream code rate
  643. DRV_Frontend_Code_Rate_t code_rate_LP; // low priority stream code rate
  644. DRV_Frontend_Modulation_Type_t constellation; // modulation type (see above)
  645. DRV_Frontend_Transmit_Mode_t transmission_mode;
  646. DRV_Frontend_Guard_Interval_t guard_interval;
  647. DRV_Frontend_Hierarchy_t hierarchy_information;
  648. DRV_Frontend_Priority_t eHPLP;
  649. } DRV_Frontend_SBTVD_Param_t;
  650. /*!
  651. * @brief Digital Control Parameter - J83B.
  652. */
  653. typedef struct
  654. {
  655. DRV_Frontend_Bandwidth_t bandwidth;
  656. DRV_Frontend_Modulation_Type_t modulation;
  657. } DRV_Frontend_J83B_Param_t;
  658. /*!
  659. * @brief Digital Control Parameter - ATSC.
  660. */
  661. typedef struct
  662. {
  663. DRV_Frontend_Bandwidth_t bandwidth;
  664. DRV_Frontend_Modulation_Type_t modulation;
  665. } DRV_Frontend_ATSC_Param_t;
  666. /*!
  667. * @brief Query Modulation Info
  668. */
  669. typedef struct
  670. {
  671. DRV_Frontend_QPSK_Param_t QPSK; //DVB-S
  672. DRV_Frontend_QAM_Param_t QAM; //DVB-C
  673. DRV_Frontend_OFDM_Param_t OFDM; //DVB-T
  674. DRV_Frontend_DVB_S2_Param_t DVB_S2;
  675. DRV_Frontend_TDSOFDM_Param_t TDSOFDM;
  676. DRV_Frontend_SBTVD_Param_t SBTVD;
  677. DRV_Frontend_ATSC_Param_t ATSC;
  678. DRV_Frontend_J83B_Param_t J83B;
  679. } DRV_Frontend_Modulation_Info_t;
  680. typedef struct
  681. {
  682. signed char s8HasSignal;
  683. DRV_Frontend_Type_t enFeType;
  684. unsigned int frequency;
  685. unsigned int freqend;
  686. DRV_Frontend_Spectral_Inversion_t inversion;
  687. unsigned int nextfreq;
  688. DRV_Frontend_ZapCtrl_t eZapCtrl;
  689. DRV_Frontend_QPSK_Param_t QPSK; //DVB-S
  690. DRV_Frontend_QAM_Param_t QAM; //DVB-C
  691. DRV_Frontend_OFDM_Param_t OFDM; //DVB-T
  692. DRV_Frontend_DVB_S2_Param_t DVB_S2;
  693. DRV_Frontend_TDSOFDM_Param_t TDSOFDM;
  694. DRV_Frontend_SBTVD_Param_t SBTVD;
  695. DRV_Frontend_ATSC_Param_t ATSC;
  696. DRV_Frontend_J83B_Param_t J83B;
  697. } DRV_FrontendCtrlParam_t;
  698. /*--------------------------------------
  699. * indicate the current input source
  700. */
  701. typedef enum{
  702. Frontend_SourceAtv,
  703. Frontend_SourceDtv,
  704. Frontend_SourceAv,
  705. Frontend_SourceAv2,
  706. Frontend_SourceSv,
  707. Frontend_SourceSv2,
  708. Frontend_SourceComponent,
  709. Frontend_SourceScart1Av,
  710. Frontend_SourceScart1Sv,
  711. Frontend_SourceScart1Auto,
  712. Frontend_SourceScart2Av,
  713. Frontend_SourceScart2Sv,
  714. Frontend_SourceScart2Auto,
  715. Frontend_InputSourceMax
  716. } DRV_Frontend_PowerSaving_Source_Type_e, *DRV_pFrontend_PowerSaving_Source_Type_e;
  717. /*--------------------------------------
  718. * indicate the request to Tuner_Demod power on/off
  719. */
  720. typedef enum{
  721. Frontend_Power_Off,
  722. Frontend_Power_On,
  723. Frontend_Power_On_I_Path,
  724. Frontend_Power_Default = Frontend_Power_Off
  725. } DRV_Frontend_PowerSaving_Power_Type_e, *DRV_pFrontend_PowerSaving_Power_Type_e;
  726. /*--------------------------------------
  727. * indicate the status of Tuner_Demod power on/off
  728. */
  729. typedef enum{
  730. Frontend_PowerSts_Off,
  731. Frontend_PowerSts_On,
  732. Frontend_PowerSts_Default = Frontend_PowerSts_Off
  733. } DRV_Frontend_PowerSaving_Status_e, *DRV_pFrontend_PowerSaving_Status_e;
  734. /*--------------------------------------
  735. * indicate the request connect type for Tuner_Demod
  736. */
  737. typedef enum{
  738. Frontend_Connect_Type_TUNER,
  739. Frontend_Connect_Type_S2_TUNER,
  740. Frontend_Connect_Type_ADEMOD,
  741. Frontend_Connect_Type_DDEMOD,
  742. Frontend_Connect_Type_SIF,
  743. Frontend_Connect_Type_DEMOD_AFE,
  744. Frontend_Connect_Type_Max
  745. } DRV_Frontend_PowerSaving_Connect_Type_e, *DRV_pFrontend_PowerSaving_Connect_Type_e;
  746. /*--------------------------------------
  747. * indicate the request power saving for Tuner_Demod
  748. */
  749. typedef struct {
  750. DRV_Frontend_PowerSaving_Connect_Type_e ptype;
  751. DRV_Frontend_PowerSaving_Source_Type_e inputSrc;
  752. DRV_Frontend_PowerSaving_Power_Type_e power;
  753. DRV_Frontend_PowerSaving_Status_e status;
  754. } DRV_Frontend_PowerSaving_Type_t, *DRV_pFrontend_PowerSaving_Type_t;
  755. /*--------------------------------------
  756. * set tuner xtal setting
  757. */
  758. typedef enum{
  759. DRV_Frontend_Tuner_Xtal_Out_Enable,
  760. DRV_Frontend_Tuner_Xtal_Out_Disable,
  761. DRV_Frontend_Tuner_Xtal_Out_Default = DRV_Frontend_Tuner_Xtal_Out_Disable
  762. }DRV_Frontend_Tuner_Xtal_Out_Type_e, *DRV_pFrontend_Tuner_Xtal_Out_Type_e;
  763. #endif