1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * include/media/si476x-platform.h -- Definitions of the data formats
4 * returned by debugfs hooks
5 *
6 * Copyright (C) 2013 Andrey Smirnov
7 *
8 * Author: Andrey Smirnov <andrew.smirnov@gmail.com>
9 */
10
11#ifndef __SI476X_REPORTS_H__
12#define __SI476X_REPORTS_H__
13
14/**
15 * struct si476x_rsq_status - structure containing received signal
16 * quality
17 * @multhint: Multipath Detect High.
18 * true - Indicatedes that the value is below
19 * FM_RSQ_MULTIPATH_HIGH_THRESHOLD
20 * false - Indicatedes that the value is above
21 * FM_RSQ_MULTIPATH_HIGH_THRESHOLD
22 * @multlint: Multipath Detect Low.
23 * true - Indicatedes that the value is below
24 * FM_RSQ_MULTIPATH_LOW_THRESHOLD
25 * false - Indicatedes that the value is above
26 * FM_RSQ_MULTIPATH_LOW_THRESHOLD
27 * @snrhint: SNR Detect High.
28 * true - Indicatedes that the value is below
29 * FM_RSQ_SNR_HIGH_THRESHOLD
30 * false - Indicatedes that the value is above
31 * FM_RSQ_SNR_HIGH_THRESHOLD
32 * @snrlint: SNR Detect Low.
33 * true - Indicatedes that the value is below
34 * FM_RSQ_SNR_LOW_THRESHOLD
35 * false - Indicatedes that the value is above
36 * FM_RSQ_SNR_LOW_THRESHOLD
37 * @rssihint: RSSI Detect High.
38 * true - Indicatedes that the value is below
39 * FM_RSQ_RSSI_HIGH_THRESHOLD
40 * false - Indicatedes that the value is above
41 * FM_RSQ_RSSI_HIGH_THRESHOLD
42 * @rssilint: RSSI Detect Low.
43 * true - Indicatedes that the value is below
44 * FM_RSQ_RSSI_LOW_THRESHOLD
45 * false - Indicatedes that the value is above
46 * FM_RSQ_RSSI_LOW_THRESHOLD
47 * @bltf: Band Limit.
48 * Set if seek command hits the band limit or wrapped to
49 * the original frequency.
50 * @snr_ready: SNR measurement in progress.
51 * @rssiready: RSSI measurement in progress.
52 * @afcrl: Set if FREQOFF >= MAX_TUNE_ERROR
53 * @valid: Set if the channel is valid
54 * rssi < FM_VALID_RSSI_THRESHOLD
55 * snr < FM_VALID_SNR_THRESHOLD
56 * tune_error < FM_VALID_MAX_TUNE_ERROR
57 * @readfreq: Current tuned frequency.
58 * @freqoff: Signed frequency offset.
59 * @rssi: Received Signal Strength Indicator(dBuV).
60 * @snr: RF SNR Indicator(dB).
61 * @lassi:
62 * @hassi: Low/High side Adjacent(100 kHz) Channel Strength Indicator
63 * @mult: Multipath indicator
64 * @dev: Who knows? But values may vary.
65 * @readantcap: Antenna tuning capacity value.
66 * @assi: Adjacent Channel(+/- 200kHz) Strength Indicator
67 * @usn: Ultrasonic Noise Inticator in -DBFS
68 */
69struct si476x_rsq_status_report {
70 __u8 multhint, multlint;
71 __u8 snrhint, snrlint;
72 __u8 rssihint, rssilint;
73 __u8 bltf;
74 __u8 snr_ready;
75 __u8 rssiready;
76 __u8 injside;
77 __u8 afcrl;
78 __u8 valid;
79
80 __u16 readfreq;
81 __s8 freqoff;
82 __s8 rssi;
83 __s8 snr;
84 __s8 issi;
85 __s8 lassi, hassi;
86 __s8 mult;
87 __u8 dev;
88 __u16 readantcap;
89 __s8 assi;
90 __s8 usn;
91
92 __u8 pilotdev;
93 __u8 rdsdev;
94 __u8 assidev;
95 __u8 strongdev;
96 __u16 rdspi;
97} __packed;
98
99/**
100 * si476x_acf_status_report - ACF report results
101 *
102 * @blend_int: If set, indicates that stereo separation has crossed
103 * below the blend threshold as set by FM_ACF_BLEND_THRESHOLD
104 * @hblend_int: If set, indicates that HiBlend cutoff frequency is
105 * lower than threshold as set by FM_ACF_HBLEND_THRESHOLD
106 * @hicut_int: If set, indicates that HiCut cutoff frequency is lower
107 * than the threshold set by ACF_
108
109 */
110struct si476x_acf_status_report {
111 __u8 blend_int;
112 __u8 hblend_int;
113 __u8 hicut_int;
114 __u8 chbw_int;
115 __u8 softmute_int;
116 __u8 smute;
117 __u8 smattn;
118 __u8 chbw;
119 __u8 hicut;
120 __u8 hiblend;
121 __u8 pilot;
122 __u8 stblend;
123} __packed;
124
125enum si476x_fmagc {
126 SI476X_FMAGC_10K_OHM = 0,
127 SI476X_FMAGC_800_OHM = 1,
128 SI476X_FMAGC_400_OHM = 2,
129 SI476X_FMAGC_200_OHM = 4,
130 SI476X_FMAGC_100_OHM = 8,
131 SI476X_FMAGC_50_OHM = 16,
132 SI476X_FMAGC_25_OHM = 32,
133 SI476X_FMAGC_12P5_OHM = 64,
134 SI476X_FMAGC_6P25_OHM = 128,
135};
136
137struct si476x_agc_status_report {
138 __u8 mxhi;
139 __u8 mxlo;
140 __u8 lnahi;
141 __u8 lnalo;
142 __u8 fmagc1;
143 __u8 fmagc2;
144 __u8 pgagain;
145 __u8 fmwblang;
146} __packed;
147
148struct si476x_rds_blockcount_report {
149 __u16 expected;
150 __u16 received;
151 __u16 uncorrectable;
152} __packed;
153
154#endif /* __SI476X_REPORTS_H__ */
155

source code of linux/include/linux/mfd/si476x-reports.h