rtl2832_priv.h 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. /*
  2. * Realtek RTL2832 DVB-T demodulator driver
  3. *
  4. * Copyright (C) 2012 Thomas Mair <thomas.mair86@gmail.com>
  5. *
  6. * This program is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation; either version 2 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * This program is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. * GNU General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License along
  17. * with this program; if not, write to the Free Software Foundation, Inc.,
  18. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  19. */
  20. #ifndef RTL2832_PRIV_H
  21. #define RTL2832_PRIV_H
  22. #include "dvb_frontend.h"
  23. #include "rtl2832.h"
  24. #define LOG_PREFIX "rtl2832"
  25. #undef dbg
  26. #define dbg(f, arg...) \
  27. do { \
  28. if (rtl2832_debug) \
  29. printk(KERN_INFO LOG_PREFIX": " f "\n" , ## arg); \
  30. } while (0)
  31. #undef err
  32. #define err(f, arg...) printk(KERN_ERR LOG_PREFIX": " f "\n" , ## arg)
  33. #undef info
  34. #define info(f, arg...) printk(KERN_INFO LOG_PREFIX": " f "\n" , ## arg)
  35. #undef warn
  36. #define warn(f, arg...) printk(KERN_WARNING LOG_PREFIX": " f "\n" , ## arg)
  37. struct rtl2832_priv {
  38. struct i2c_adapter *i2c;
  39. struct dvb_frontend fe;
  40. struct rtl2832_config cfg;
  41. bool i2c_gate_state;
  42. bool sleeping;
  43. u8 tuner;
  44. u8 page; /* active register page */
  45. };
  46. struct rtl2832_reg_entry {
  47. u8 page;
  48. u8 start_address;
  49. u8 msb;
  50. u8 lsb;
  51. };
  52. struct rtl2832_reg_value {
  53. int reg;
  54. u32 value;
  55. };
  56. /* Demod register bit names */
  57. enum DVBT_REG_BIT_NAME {
  58. DVBT_SOFT_RST,
  59. DVBT_IIC_REPEAT,
  60. DVBT_TR_WAIT_MIN_8K,
  61. DVBT_RSD_BER_FAIL_VAL,
  62. DVBT_EN_BK_TRK,
  63. DVBT_REG_PI,
  64. DVBT_REG_PFREQ_1_0,
  65. DVBT_PD_DA8,
  66. DVBT_LOCK_TH,
  67. DVBT_BER_PASS_SCAL,
  68. DVBT_CE_FFSM_BYPASS,
  69. DVBT_ALPHAIIR_N,
  70. DVBT_ALPHAIIR_DIF,
  71. DVBT_EN_TRK_SPAN,
  72. DVBT_LOCK_TH_LEN,
  73. DVBT_CCI_THRE,
  74. DVBT_CCI_MON_SCAL,
  75. DVBT_CCI_M0,
  76. DVBT_CCI_M1,
  77. DVBT_CCI_M2,
  78. DVBT_CCI_M3,
  79. DVBT_SPEC_INIT_0,
  80. DVBT_SPEC_INIT_1,
  81. DVBT_SPEC_INIT_2,
  82. DVBT_AD_EN_REG,
  83. DVBT_AD_EN_REG1,
  84. DVBT_EN_BBIN,
  85. DVBT_MGD_THD0,
  86. DVBT_MGD_THD1,
  87. DVBT_MGD_THD2,
  88. DVBT_MGD_THD3,
  89. DVBT_MGD_THD4,
  90. DVBT_MGD_THD5,
  91. DVBT_MGD_THD6,
  92. DVBT_MGD_THD7,
  93. DVBT_EN_CACQ_NOTCH,
  94. DVBT_AD_AV_REF,
  95. DVBT_PIP_ON,
  96. DVBT_SCALE1_B92,
  97. DVBT_SCALE1_B93,
  98. DVBT_SCALE1_BA7,
  99. DVBT_SCALE1_BA9,
  100. DVBT_SCALE1_BAA,
  101. DVBT_SCALE1_BAB,
  102. DVBT_SCALE1_BAC,
  103. DVBT_SCALE1_BB0,
  104. DVBT_SCALE1_BB1,
  105. DVBT_KB_P1,
  106. DVBT_KB_P2,
  107. DVBT_KB_P3,
  108. DVBT_OPT_ADC_IQ,
  109. DVBT_AD_AVI,
  110. DVBT_AD_AVQ,
  111. DVBT_K1_CR_STEP12,
  112. DVBT_TRK_KS_P2,
  113. DVBT_TRK_KS_I2,
  114. DVBT_TR_THD_SET2,
  115. DVBT_TRK_KC_P2,
  116. DVBT_TRK_KC_I2,
  117. DVBT_CR_THD_SET2,
  118. DVBT_PSET_IFFREQ,
  119. DVBT_SPEC_INV,
  120. DVBT_BW_INDEX,
  121. DVBT_RSAMP_RATIO,
  122. DVBT_CFREQ_OFF_RATIO,
  123. DVBT_FSM_STAGE,
  124. DVBT_RX_CONSTEL,
  125. DVBT_RX_HIER,
  126. DVBT_RX_C_RATE_LP,
  127. DVBT_RX_C_RATE_HP,
  128. DVBT_GI_IDX,
  129. DVBT_FFT_MODE_IDX,
  130. DVBT_RSD_BER_EST,
  131. DVBT_CE_EST_EVM,
  132. DVBT_RF_AGC_VAL,
  133. DVBT_IF_AGC_VAL,
  134. DVBT_DAGC_VAL,
  135. DVBT_SFREQ_OFF,
  136. DVBT_CFREQ_OFF,
  137. DVBT_POLAR_RF_AGC,
  138. DVBT_POLAR_IF_AGC,
  139. DVBT_AAGC_HOLD,
  140. DVBT_EN_RF_AGC,
  141. DVBT_EN_IF_AGC,
  142. DVBT_IF_AGC_MIN,
  143. DVBT_IF_AGC_MAX,
  144. DVBT_RF_AGC_MIN,
  145. DVBT_RF_AGC_MAX,
  146. DVBT_IF_AGC_MAN,
  147. DVBT_IF_AGC_MAN_VAL,
  148. DVBT_RF_AGC_MAN,
  149. DVBT_RF_AGC_MAN_VAL,
  150. DVBT_DAGC_TRG_VAL,
  151. DVBT_AGC_TARG_VAL,
  152. DVBT_LOOP_GAIN_3_0,
  153. DVBT_LOOP_GAIN_4,
  154. DVBT_VTOP,
  155. DVBT_KRF,
  156. DVBT_AGC_TARG_VAL_0,
  157. DVBT_AGC_TARG_VAL_8_1,
  158. DVBT_AAGC_LOOP_GAIN,
  159. DVBT_LOOP_GAIN2_3_0,
  160. DVBT_LOOP_GAIN2_4,
  161. DVBT_LOOP_GAIN3,
  162. DVBT_VTOP1,
  163. DVBT_VTOP2,
  164. DVBT_VTOP3,
  165. DVBT_KRF1,
  166. DVBT_KRF2,
  167. DVBT_KRF3,
  168. DVBT_KRF4,
  169. DVBT_EN_GI_PGA,
  170. DVBT_THD_LOCK_UP,
  171. DVBT_THD_LOCK_DW,
  172. DVBT_THD_UP1,
  173. DVBT_THD_DW1,
  174. DVBT_INTER_CNT_LEN,
  175. DVBT_GI_PGA_STATE,
  176. DVBT_EN_AGC_PGA,
  177. DVBT_CKOUTPAR,
  178. DVBT_CKOUT_PWR,
  179. DVBT_SYNC_DUR,
  180. DVBT_ERR_DUR,
  181. DVBT_SYNC_LVL,
  182. DVBT_ERR_LVL,
  183. DVBT_VAL_LVL,
  184. DVBT_SERIAL,
  185. DVBT_SER_LSB,
  186. DVBT_CDIV_PH0,
  187. DVBT_CDIV_PH1,
  188. DVBT_MPEG_IO_OPT_2_2,
  189. DVBT_MPEG_IO_OPT_1_0,
  190. DVBT_CKOUTPAR_PIP,
  191. DVBT_CKOUT_PWR_PIP,
  192. DVBT_SYNC_LVL_PIP,
  193. DVBT_ERR_LVL_PIP,
  194. DVBT_VAL_LVL_PIP,
  195. DVBT_CKOUTPAR_PID,
  196. DVBT_CKOUT_PWR_PID,
  197. DVBT_SYNC_LVL_PID,
  198. DVBT_ERR_LVL_PID,
  199. DVBT_VAL_LVL_PID,
  200. DVBT_SM_PASS,
  201. DVBT_UPDATE_REG_2,
  202. DVBT_BTHD_P3,
  203. DVBT_BTHD_D3,
  204. DVBT_FUNC4_REG0,
  205. DVBT_FUNC4_REG1,
  206. DVBT_FUNC4_REG2,
  207. DVBT_FUNC4_REG3,
  208. DVBT_FUNC4_REG4,
  209. DVBT_FUNC4_REG5,
  210. DVBT_FUNC4_REG6,
  211. DVBT_FUNC4_REG7,
  212. DVBT_FUNC4_REG8,
  213. DVBT_FUNC4_REG9,
  214. DVBT_FUNC4_REG10,
  215. DVBT_FUNC5_REG0,
  216. DVBT_FUNC5_REG1,
  217. DVBT_FUNC5_REG2,
  218. DVBT_FUNC5_REG3,
  219. DVBT_FUNC5_REG4,
  220. DVBT_FUNC5_REG5,
  221. DVBT_FUNC5_REG6,
  222. DVBT_FUNC5_REG7,
  223. DVBT_FUNC5_REG8,
  224. DVBT_FUNC5_REG9,
  225. DVBT_FUNC5_REG10,
  226. DVBT_FUNC5_REG11,
  227. DVBT_FUNC5_REG12,
  228. DVBT_FUNC5_REG13,
  229. DVBT_FUNC5_REG14,
  230. DVBT_FUNC5_REG15,
  231. DVBT_FUNC5_REG16,
  232. DVBT_FUNC5_REG17,
  233. DVBT_FUNC5_REG18,
  234. DVBT_AD7_SETTING,
  235. DVBT_RSSI_R,
  236. DVBT_ACI_DET_IND,
  237. DVBT_REG_MON,
  238. DVBT_REG_MONSEL,
  239. DVBT_REG_GPE,
  240. DVBT_REG_GPO,
  241. DVBT_REG_4MSEL,
  242. DVBT_TEST_REG_1,
  243. DVBT_TEST_REG_2,
  244. DVBT_TEST_REG_3,
  245. DVBT_TEST_REG_4,
  246. DVBT_REG_BIT_NAME_ITEM_TERMINATOR,
  247. };
  248. #endif /* RTL2832_PRIV_H */