cxd2841er.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*
  3. * cxd2841er.h
  4. *
  5. * Sony CXD2441ER digital demodulator driver public definitions
  6. *
  7. * Copyright 2012 Sony Corporation
  8. * Copyright (C) 2014 NetUP Inc.
  9. * Copyright (C) 2014 Sergey Kozlov <[email protected]>
  10. * Copyright (C) 2014 Abylay Ospan <[email protected]>
  11. */
  12. #ifndef CXD2841ER_H
  13. #define CXD2841ER_H
  14. #include <linux/dvb/frontend.h>
  15. #define CXD2841ER_USE_GATECTRL 1 /* bit 0 */
  16. #define CXD2841ER_AUTO_IFHZ 2 /* bit 1 */
  17. #define CXD2841ER_TS_SERIAL 4 /* bit 2 */
  18. #define CXD2841ER_ASCOT 8 /* bit 3 */
  19. #define CXD2841ER_EARLY_TUNE 16 /* bit 4 */
  20. #define CXD2841ER_NO_WAIT_LOCK 32 /* bit 5 */
  21. #define CXD2841ER_NO_AGCNEG 64 /* bit 6 */
  22. #define CXD2841ER_TSBITS 128 /* bit 7 */
  23. enum cxd2841er_xtal {
  24. SONY_XTAL_20500, /* 20.5 MHz */
  25. SONY_XTAL_24000, /* 24 MHz */
  26. SONY_XTAL_41000 /* 41 MHz */
  27. };
  28. struct cxd2841er_config {
  29. u8 i2c_addr;
  30. enum cxd2841er_xtal xtal;
  31. u32 flags;
  32. };
  33. #if IS_REACHABLE(CONFIG_DVB_CXD2841ER)
  34. extern struct dvb_frontend *cxd2841er_attach_s(struct cxd2841er_config *cfg,
  35. struct i2c_adapter *i2c);
  36. extern struct dvb_frontend *cxd2841er_attach_t_c(struct cxd2841er_config *cfg,
  37. struct i2c_adapter *i2c);
  38. #else
  39. static inline struct dvb_frontend *cxd2841er_attach_s(
  40. struct cxd2841er_config *cfg,
  41. struct i2c_adapter *i2c)
  42. {
  43. pr_warn("%s: driver disabled by Kconfig\n", __func__);
  44. return NULL;
  45. }
  46. static inline struct dvb_frontend *cxd2841er_attach_t_c(
  47. struct cxd2841er_config *cfg, struct i2c_adapter *i2c)
  48. {
  49. pr_warn("%s: driver disabled by Kconfig\n", __func__);
  50. return NULL;
  51. }
  52. #endif
  53. #endif