| /* |
| * include/media/si476x-platform.h -- Definitions of the data formats |
| * returned by debugfs hooks |
| * |
| * Copyright (C) 2013 Andrey Smirnov |
| * |
| * Author: Andrey Smirnov <andrew.smirnov@gmail.com> |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation; version 2 of the License. |
| * |
| * This program is distributed in the hope that it will be useful, but |
| * WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * General Public License for more details. |
| * |
| */ |
| |
| #ifndef __SI476X_REPORTS_H__ |
| #define __SI476X_REPORTS_H__ |
| |
| /** |
| * struct si476x_rsq_status - structure containing received signal |
| * quality |
| * @multhint: Multipath Detect High. |
| * true - Indicatedes that the value is below |
| * FM_RSQ_MULTIPATH_HIGH_THRESHOLD |
| * false - Indicatedes that the value is above |
| * FM_RSQ_MULTIPATH_HIGH_THRESHOLD |
| * @multlint: Multipath Detect Low. |
| * true - Indicatedes that the value is below |
| * FM_RSQ_MULTIPATH_LOW_THRESHOLD |
| * false - Indicatedes that the value is above |
| * FM_RSQ_MULTIPATH_LOW_THRESHOLD |
| * @snrhint: SNR Detect High. |
| * true - Indicatedes that the value is below |
| * FM_RSQ_SNR_HIGH_THRESHOLD |
| * false - Indicatedes that the value is above |
| * FM_RSQ_SNR_HIGH_THRESHOLD |
| * @snrlint: SNR Detect Low. |
| * true - Indicatedes that the value is below |
| * FM_RSQ_SNR_LOW_THRESHOLD |
| * false - Indicatedes that the value is above |
| * FM_RSQ_SNR_LOW_THRESHOLD |
| * @rssihint: RSSI Detect High. |
| * true - Indicatedes that the value is below |
| * FM_RSQ_RSSI_HIGH_THRESHOLD |
| * false - Indicatedes that the value is above |
| * FM_RSQ_RSSI_HIGH_THRESHOLD |
| * @rssilint: RSSI Detect Low. |
| * true - Indicatedes that the value is below |
| * FM_RSQ_RSSI_LOW_THRESHOLD |
| * false - Indicatedes that the value is above |
| * FM_RSQ_RSSI_LOW_THRESHOLD |
| * @bltf: Band Limit. |
| * Set if seek command hits the band limit or wrapped to |
| * the original frequency. |
| * @snr_ready: SNR measurement in progress. |
| * @rssiready: RSSI measurement in progress. |
| * @afcrl: Set if FREQOFF >= MAX_TUNE_ERROR |
| * @valid: Set if the channel is valid |
| * rssi < FM_VALID_RSSI_THRESHOLD |
| * snr < FM_VALID_SNR_THRESHOLD |
| * tune_error < FM_VALID_MAX_TUNE_ERROR |
| * @readfreq: Current tuned frequency. |
| * @freqoff: Signed frequency offset. |
| * @rssi: Received Signal Strength Indicator(dBuV). |
| * @snr: RF SNR Indicator(dB). |
| * @lassi: |
| * @hassi: Low/High side Adjacent(100 kHz) Channel Strength Indicator |
| * @mult: Multipath indicator |
| * @dev: Who knows? But values may vary. |
| * @readantcap: Antenna tuning capacity value. |
| * @assi: Adjacent Channel(+/- 200kHz) Strength Indicator |
| * @usn: Ultrasonic Noise Inticator in -DBFS |
| */ |
| struct si476x_rsq_status_report { |
| __u8 multhint, multlint; |
| __u8 snrhint, snrlint; |
| __u8 rssihint, rssilint; |
| __u8 bltf; |
| __u8 snr_ready; |
| __u8 rssiready; |
| __u8 injside; |
| __u8 afcrl; |
| __u8 valid; |
| |
| __u16 readfreq; |
| __s8 freqoff; |
| __s8 rssi; |
| __s8 snr; |
| __s8 issi; |
| __s8 lassi, hassi; |
| __s8 mult; |
| __u8 dev; |
| __u16 readantcap; |
| __s8 assi; |
| __s8 usn; |
| |
| __u8 pilotdev; |
| __u8 rdsdev; |
| __u8 assidev; |
| __u8 strongdev; |
| __u16 rdspi; |
| } __packed; |
| |
| /** |
| * si476x_acf_status_report - ACF report results |
| * |
| * @blend_int: If set, indicates that stereo separation has crossed |
| * below the blend threshold as set by FM_ACF_BLEND_THRESHOLD |
| * @hblend_int: If set, indicates that HiBlend cutoff frequency is |
| * lower than threshold as set by FM_ACF_HBLEND_THRESHOLD |
| * @hicut_int: If set, indicates that HiCut cutoff frequency is lower |
| * than the threshold set by ACF_ |
| |
| */ |
| struct si476x_acf_status_report { |
| __u8 blend_int; |
| __u8 hblend_int; |
| __u8 hicut_int; |
| __u8 chbw_int; |
| __u8 softmute_int; |
| __u8 smute; |
| __u8 smattn; |
| __u8 chbw; |
| __u8 hicut; |
| __u8 hiblend; |
| __u8 pilot; |
| __u8 stblend; |
| } __packed; |
| |
| enum si476x_fmagc { |
| SI476X_FMAGC_10K_OHM = 0, |
| SI476X_FMAGC_800_OHM = 1, |
| SI476X_FMAGC_400_OHM = 2, |
| SI476X_FMAGC_200_OHM = 4, |
| SI476X_FMAGC_100_OHM = 8, |
| SI476X_FMAGC_50_OHM = 16, |
| SI476X_FMAGC_25_OHM = 32, |
| SI476X_FMAGC_12P5_OHM = 64, |
| SI476X_FMAGC_6P25_OHM = 128, |
| }; |
| |
| struct si476x_agc_status_report { |
| __u8 mxhi; |
| __u8 mxlo; |
| __u8 lnahi; |
| __u8 lnalo; |
| __u8 fmagc1; |
| __u8 fmagc2; |
| __u8 pgagain; |
| __u8 fmwblang; |
| } __packed; |
| |
| struct si476x_rds_blockcount_report { |
| __u16 expected; |
| __u16 received; |
| __u16 uncorrectable; |
| } __packed; |
| |
| #endif /* __SI476X_REPORTS_H__ */ |