155 lines
4.5 KiB
C
155 lines
4.5 KiB
C
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||
|
/*
|
||
|
* 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>
|
||
|
*/
|
||
|
|
||
|
#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__ */
|