1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * cxd2880_tnrdmd_dvbt2_mon.h
4  * Sony CXD2880 DVB-T2/T tuner + demodulator driver
5  * DVB-T2 monitor interface
6  *
7  * Copyright (C) 2016, 2017, 2018 Sony Semiconductor Solutions Corporation
8  */
9 
10 #ifndef CXD2880_TNRDMD_DVBT2_MON_H
11 #define CXD2880_TNRDMD_DVBT2_MON_H
12 
13 #include "cxd2880_tnrdmd.h"
14 #include "cxd2880_dvbt2.h"
15 
16 int cxd2880_tnrdmd_dvbt2_mon_sync_stat(struct cxd2880_tnrdmd
17 				       *tnr_dmd, u8 *sync_stat,
18 				       u8 *ts_lock_stat,
19 				       u8 *unlock_detected);
20 
21 int cxd2880_tnrdmd_dvbt2_mon_sync_stat_sub(struct cxd2880_tnrdmd
22 					   *tnr_dmd,
23 					   u8 *sync_stat,
24 					   u8 *unlock_detected);
25 
26 int cxd2880_tnrdmd_dvbt2_mon_carrier_offset(struct cxd2880_tnrdmd
27 					    *tnr_dmd, int *offset);
28 
29 int cxd2880_tnrdmd_dvbt2_mon_carrier_offset_sub(struct
30 						cxd2880_tnrdmd
31 						*tnr_dmd,
32 						int *offset);
33 
34 int cxd2880_tnrdmd_dvbt2_mon_l1_pre(struct cxd2880_tnrdmd *tnr_dmd,
35 				    struct cxd2880_dvbt2_l1pre
36 				    *l1_pre);
37 
38 int cxd2880_tnrdmd_dvbt2_mon_version(struct cxd2880_tnrdmd
39 				     *tnr_dmd,
40 				     enum cxd2880_dvbt2_version
41 				     *ver);
42 
43 int cxd2880_tnrdmd_dvbt2_mon_ofdm(struct cxd2880_tnrdmd *tnr_dmd,
44 				  struct cxd2880_dvbt2_ofdm *ofdm);
45 
46 int cxd2880_tnrdmd_dvbt2_mon_data_plps(struct cxd2880_tnrdmd
47 				       *tnr_dmd, u8 *plp_ids,
48 				       u8 *num_plps);
49 
50 int cxd2880_tnrdmd_dvbt2_mon_active_plp(struct cxd2880_tnrdmd
51 					*tnr_dmd,
52 					enum
53 					cxd2880_dvbt2_plp_btype
54 					type,
55 					struct cxd2880_dvbt2_plp
56 					*plp_info);
57 
58 int cxd2880_tnrdmd_dvbt2_mon_data_plp_error(struct cxd2880_tnrdmd
59 					    *tnr_dmd,
60 					    u8 *plp_error);
61 
62 int cxd2880_tnrdmd_dvbt2_mon_l1_change(struct cxd2880_tnrdmd
63 				       *tnr_dmd, u8 *l1_change);
64 
65 int cxd2880_tnrdmd_dvbt2_mon_l1_post(struct cxd2880_tnrdmd
66 				     *tnr_dmd,
67 				     struct cxd2880_dvbt2_l1post
68 				     *l1_post);
69 
70 int cxd2880_tnrdmd_dvbt2_mon_bbheader(struct cxd2880_tnrdmd
71 				      *tnr_dmd,
72 				      enum cxd2880_dvbt2_plp_btype
73 				      type,
74 				      struct cxd2880_dvbt2_bbheader
75 				      *bbheader);
76 
77 int cxd2880_tnrdmd_dvbt2_mon_in_bandb_ts_rate(struct cxd2880_tnrdmd
78 					      *tnr_dmd,
79 					      enum
80 					      cxd2880_dvbt2_plp_btype
81 					      type,
82 					      u32 *ts_rate_bps);
83 
84 int cxd2880_tnrdmd_dvbt2_mon_spectrum_sense(struct cxd2880_tnrdmd
85 					    *tnr_dmd,
86 					    enum
87 					    cxd2880_tnrdmd_spectrum_sense
88 					    *sense);
89 
90 int cxd2880_tnrdmd_dvbt2_mon_snr(struct cxd2880_tnrdmd *tnr_dmd,
91 				 int *snr);
92 
93 int cxd2880_tnrdmd_dvbt2_mon_snr_diver(struct cxd2880_tnrdmd
94 				       *tnr_dmd, int *snr,
95 				       int *snr_main,
96 				       int *snr_sub);
97 
98 int cxd2880_tnrdmd_dvbt2_mon_packet_error_number(struct
99 						 cxd2880_tnrdmd
100 						 *tnr_dmd,
101 						 u32 *pen);
102 
103 int cxd2880_tnrdmd_dvbt2_mon_sampling_offset(struct cxd2880_tnrdmd
104 					     *tnr_dmd, int *ppm);
105 
106 int cxd2880_tnrdmd_dvbt2_mon_sampling_offset_sub(struct
107 						 cxd2880_tnrdmd
108 						 *tnr_dmd,
109 						 int *ppm);
110 
111 int cxd2880_tnrdmd_dvbt2_mon_qam(struct cxd2880_tnrdmd *tnr_dmd,
112 				 enum cxd2880_dvbt2_plp_btype type,
113 				 enum cxd2880_dvbt2_plp_constell
114 				 *qam);
115 
116 int cxd2880_tnrdmd_dvbt2_mon_code_rate(struct cxd2880_tnrdmd
117 				       *tnr_dmd,
118 				       enum cxd2880_dvbt2_plp_btype
119 				       type,
120 				       enum
121 				       cxd2880_dvbt2_plp_code_rate
122 				       *code_rate);
123 
124 int cxd2880_tnrdmd_dvbt2_mon_profile(struct cxd2880_tnrdmd
125 				     *tnr_dmd,
126 				     enum cxd2880_dvbt2_profile
127 				     *profile);
128 
129 int cxd2880_tnrdmd_dvbt2_mon_ssi(struct cxd2880_tnrdmd *tnr_dmd,
130 				 u8 *ssi);
131 
132 int cxd2880_tnrdmd_dvbt2_mon_ssi_sub(struct cxd2880_tnrdmd
133 				     *tnr_dmd, u8 *ssi);
134 
135 #endif
136