linux/include/linux/mfd/si476x-reports.h
<<
>>
Prefs
   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