| /* | |
| * 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__ */ |