si2168_priv.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*
  3. * Silicon Labs Si2168 DVB-T/T2/C demodulator driver
  4. *
  5. * Copyright (C) 2014 Antti Palosaari <[email protected]>
  6. */
  7. #ifndef SI2168_PRIV_H
  8. #define SI2168_PRIV_H
  9. #include "si2168.h"
  10. #include <media/dvb_frontend.h>
  11. #include <linux/firmware.h>
  12. #include <linux/i2c-mux.h>
  13. #include <linux/kernel.h>
  14. #define SI2168_A20_FIRMWARE "dvb-demod-si2168-a20-01.fw"
  15. #define SI2168_A30_FIRMWARE "dvb-demod-si2168-a30-01.fw"
  16. #define SI2168_B40_FIRMWARE "dvb-demod-si2168-b40-01.fw"
  17. #define SI2168_D60_FIRMWARE "dvb-demod-si2168-d60-01.fw"
  18. /* state struct */
  19. struct si2168_dev {
  20. struct mutex i2c_mutex;
  21. struct i2c_mux_core *muxc;
  22. struct dvb_frontend fe;
  23. enum fe_delivery_system delivery_system;
  24. enum fe_status fe_status;
  25. #define SI2168_CHIP_ID_A20 ('A' << 24 | 68 << 16 | '2' << 8 | '0' << 0)
  26. #define SI2168_CHIP_ID_A30 ('A' << 24 | 68 << 16 | '3' << 8 | '0' << 0)
  27. #define SI2168_CHIP_ID_B40 ('B' << 24 | 68 << 16 | '4' << 8 | '0' << 0)
  28. #define SI2168_CHIP_ID_D60 ('D' << 24 | 68 << 16 | '6' << 8 | '0' << 0)
  29. unsigned int chip_id;
  30. unsigned int version;
  31. const char *firmware_name;
  32. u8 ts_mode;
  33. unsigned int active:1;
  34. unsigned int warm:1;
  35. unsigned int initialized:1;
  36. unsigned int ts_clock_inv:1;
  37. unsigned int ts_clock_gapped:1;
  38. unsigned int spectral_inversion:1;
  39. };
  40. /* firmware command struct */
  41. #define SI2168_ARGLEN 30
  42. struct si2168_cmd {
  43. u8 args[SI2168_ARGLEN];
  44. unsigned wlen;
  45. unsigned rlen;
  46. };
  47. #endif