dvb-pll.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /*
  2. * descriptions + helper functions for simple dvb plls.
  3. */
  4. #ifndef __DVB_PLL_H__
  5. #define __DVB_PLL_H__
  6. #include <linux/i2c.h>
  7. #include "dvb_frontend.h"
  8. struct dvb_pll_desc {
  9. char *name;
  10. u32 min;
  11. u32 max;
  12. u32 iffreq;
  13. void (*setbw)(u8 *buf, u32 freq, int bandwidth);
  14. u8 *initdata;
  15. int count;
  16. struct {
  17. u32 limit;
  18. u32 stepsize;
  19. u8 config;
  20. u8 cb;
  21. } entries[12];
  22. };
  23. extern struct dvb_pll_desc dvb_pll_thomson_dtt7579;
  24. extern struct dvb_pll_desc dvb_pll_thomson_dtt759x;
  25. extern struct dvb_pll_desc dvb_pll_thomson_dtt7610;
  26. extern struct dvb_pll_desc dvb_pll_lg_z201;
  27. extern struct dvb_pll_desc dvb_pll_microtune_4042;
  28. extern struct dvb_pll_desc dvb_pll_thomson_dtt761x;
  29. extern struct dvb_pll_desc dvb_pll_unknown_1;
  30. extern struct dvb_pll_desc dvb_pll_tua6010xs;
  31. extern struct dvb_pll_desc dvb_pll_env57h1xd5;
  32. extern struct dvb_pll_desc dvb_pll_tua6034;
  33. extern struct dvb_pll_desc dvb_pll_lg_tdvs_h06xf;
  34. extern struct dvb_pll_desc dvb_pll_tda665x;
  35. extern struct dvb_pll_desc dvb_pll_fmd1216me;
  36. extern struct dvb_pll_desc dvb_pll_tded4;
  37. extern struct dvb_pll_desc dvb_pll_tuv1236d;
  38. extern struct dvb_pll_desc dvb_pll_tdhu2;
  39. extern struct dvb_pll_desc dvb_pll_samsung_tbmv;
  40. extern struct dvb_pll_desc dvb_pll_philips_sd1878_tda8261;
  41. extern struct dvb_pll_desc dvb_pll_philips_td1316;
  42. extern struct dvb_pll_desc dvb_pll_thomson_fe6600;
  43. extern int dvb_pll_configure(struct dvb_pll_desc *desc, u8 *buf,
  44. u32 freq, int bandwidth);
  45. /**
  46. * Attach a dvb-pll to the supplied frontend structure.
  47. *
  48. * @param fe Frontend to attach to.
  49. * @param pll_addr i2c address of the PLL (if used).
  50. * @param i2c i2c adapter to use (set to NULL if not used).
  51. * @param desc dvb_pll_desc to use.
  52. * @return Frontend pointer on success, NULL on failure
  53. */
  54. #if defined(CONFIG_DVB_PLL) || (defined(CONFIG_DVB_PLL_MODULE) && defined(MODULE))
  55. extern struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe,
  56. int pll_addr,
  57. struct i2c_adapter *i2c,
  58. struct dvb_pll_desc *desc);
  59. #else
  60. static inline struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe,
  61. int pll_addr,
  62. struct i2c_adapter *i2c,
  63. struct dvb_pll_desc *desc)
  64. {
  65. printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
  66. return NULL;
  67. }
  68. #endif
  69. #endif