isl6405.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*
  3. * isl6405.h - driver for dual lnb supply and control ic ISL6405
  4. *
  5. * Copyright (C) 2008 Hartmut Hackmann
  6. * Copyright (C) 2006 Oliver Endriss
  7. *
  8. * the project's page is at https://linuxtv.org
  9. */
  10. #ifndef _ISL6405_H
  11. #define _ISL6405_H
  12. #include <linux/dvb/frontend.h>
  13. /* system register bits */
  14. /* this bit selects register (control) 1 or 2
  15. note that the bit maps are different */
  16. #define ISL6405_SR 0x80
  17. /* SR = 0 */
  18. #define ISL6405_OLF1 0x01
  19. #define ISL6405_EN1 0x02
  20. #define ISL6405_VSEL1 0x04
  21. #define ISL6405_LLC1 0x08
  22. #define ISL6405_ENT1 0x10
  23. #define ISL6405_ISEL1 0x20
  24. #define ISL6405_DCL 0x40
  25. /* SR = 1 */
  26. #define ISL6405_OLF2 0x01
  27. #define ISL6405_OTF 0x02
  28. #define ISL6405_EN2 0x04
  29. #define ISL6405_VSEL2 0x08
  30. #define ISL6405_LLC2 0x10
  31. #define ISL6405_ENT2 0x20
  32. #define ISL6405_ISEL2 0x40
  33. #if IS_REACHABLE(CONFIG_DVB_ISL6405)
  34. /* override_set and override_clear control which system register bits (above)
  35. * to always set & clear
  36. */
  37. extern struct dvb_frontend *isl6405_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c,
  38. u8 i2c_addr, u8 override_set, u8 override_clear);
  39. #else
  40. static inline struct dvb_frontend *isl6405_attach(struct dvb_frontend *fe,
  41. struct i2c_adapter *i2c, u8 i2c_addr,
  42. u8 override_set, u8 override_clear)
  43. {
  44. printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
  45. return NULL;
  46. }
  47. #endif /* CONFIG_DVB_ISL6405 */
  48. #endif