dvb-pll.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. u8 *sleepdata;
  16. int count;
  17. struct {
  18. u32 limit;
  19. u32 stepsize;
  20. u8 config;
  21. u8 cb;
  22. } entries[12];
  23. };
  24. extern struct dvb_pll_desc dvb_pll_thomson_dtt7579;
  25. extern struct dvb_pll_desc dvb_pll_thomson_dtt759x;
  26. extern struct dvb_pll_desc dvb_pll_thomson_dtt7610;
  27. extern struct dvb_pll_desc dvb_pll_lg_z201;
  28. extern struct dvb_pll_desc dvb_pll_microtune_4042;
  29. extern struct dvb_pll_desc dvb_pll_thomson_dtt761x;
  30. extern struct dvb_pll_desc dvb_pll_unknown_1;
  31. extern struct dvb_pll_desc dvb_pll_tua6010xs;
  32. extern struct dvb_pll_desc dvb_pll_env57h1xd5;
  33. extern struct dvb_pll_desc dvb_pll_tua6034;
  34. extern struct dvb_pll_desc dvb_pll_lg_tdvs_h06xf;
  35. extern struct dvb_pll_desc dvb_pll_tda665x;
  36. extern struct dvb_pll_desc dvb_pll_fmd1216me;
  37. extern struct dvb_pll_desc dvb_pll_tded4;
  38. extern struct dvb_pll_desc dvb_pll_tuv1236d;
  39. extern struct dvb_pll_desc dvb_pll_tdhu2;
  40. extern struct dvb_pll_desc dvb_pll_samsung_tbmv;
  41. extern struct dvb_pll_desc dvb_pll_philips_sd1878_tda8261;
  42. extern struct dvb_pll_desc dvb_pll_philips_td1316;
  43. extern struct dvb_pll_desc dvb_pll_thomson_fe6600;
  44. extern struct dvb_pll_desc dvb_pll_opera1;
  45. extern int dvb_pll_configure(struct dvb_pll_desc *desc, u8 *buf,
  46. u32 freq, int bandwidth);
  47. /**
  48. * Attach a dvb-pll to the supplied frontend structure.
  49. *
  50. * @param fe Frontend to attach to.
  51. * @param pll_addr i2c address of the PLL (if used).
  52. * @param i2c i2c adapter to use (set to NULL if not used).
  53. * @param desc dvb_pll_desc to use.
  54. * @return Frontend pointer on success, NULL on failure
  55. */
  56. #if defined(CONFIG_DVB_PLL) || (defined(CONFIG_DVB_PLL_MODULE) && defined(MODULE))
  57. extern struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe,
  58. int pll_addr,
  59. struct i2c_adapter *i2c,
  60. struct dvb_pll_desc *desc);
  61. #else
  62. static inline struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe,
  63. int pll_addr,
  64. struct i2c_adapter *i2c,
  65. struct dvb_pll_desc *desc)
  66. {
  67. printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
  68. return NULL;
  69. }
  70. #endif
  71. #endif