root/include/linux/mfd/si476x-reports.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


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

/* [<][>][^][v][top][bottom][index][help] */