Kernel-3.10.0-957.el7_si476x

SI476x Driver Readme

Copyright (C) 2013 Andrey Smirnov <andrew.smirnov@gmail.com>

TODO for the driver

  • According to the SiLabs’ datasheet it is possible to update the
    firmware of the radio chip in the run-time, thus bringing it to the
    most recent version. Unfortunately I couldn’t find any mentioning of
    the said firmware update for the old chips that I tested the driver
    against, so for chips like that the driver only exposes the old
    functionality.

Parameters exposed over debugfs

SI476x allow user to get multiple characteristics that can be very
useful for EoL testing/RF performance estimation, parameters that have
very little to do with V4L2 subsystem. Such parameters are exposed via
debugfs and can be accessed via regular file I/O operations.

The drivers exposes following files:

  • /sys/kernel/debug//acf
    This file contains ACF(Automatically Controlled Features) status
    information. The contents of the file is binary data of the
    following layout:

    Offset | Name | Description

    0x00 | blend_int | Flag, set when stereo separation has

        |          | crossed below the blend threshold
    

    0x01 | hblend_int | Flag, set when HiBlend cutoff

        |         | frequency is lower than threshold
    

    0x02 | hicut_int | Flag, set when HiCut cutoff

        |         | frequency is lower than threshold
    

    0x03 | chbw_int | Flag, set when channel filter

        |         | bandwidth is less than threshold
    

    0x04 | softmute_int | Flag indicating that softmute

        |         | attenuation has increased above
      |        | softmute threshold
    

    0x05 | smute | 0 - Audio is not soft muted

        |         | 1 - Audio is soft muted
    

    0x06 | smattn | Soft mute attenuation level in dB

    0x07 | chbw | Channel filter bandwidth in kHz

    0x08 | hicut | HiCut cutoff frequency in units of

        |         | 100Hz
    

    0x09 | hiblend | HiBlend cutoff frequency in units

        |         | of 100 Hz
    

    0x10 | pilot | 0 - Stereo pilot is not present

        |         | 1 - Stereo pilot is present
    

    0x11 | stblend | Stereo blend in %

  • /sys/kernel/debug//rds_blckcnt
    This file contains statistics about RDS receptions. It’s binary data
    has the following layout:

    Offset | Name | Description

    0x00 | expected | Number of expected RDS blocks

    0x02 | received | Number of received RDS blocks

    0x04 | uncorrectable | Number of uncorrectable RDS blocks

  • /sys/kernel/debug//agc
    This file contains information about parameters pertaining to
    AGC(Automatic Gain Control)

    The layout is:

    Offset | Name | Description

    0x00 | mxhi | 0 - FM Mixer PD high threshold is

        |         | not tripped
      |        | 1 - FM Mixer PD high threshold is
      |        | tripped
    

    0x01 | mxlo | ditto for FM Mixer PD low

    0x02 | lnahi | ditto for FM LNA PD high

    0x03 | lnalo | ditto for FM LNA PD low

    0x04 | fmagc1 | FMAGC1 attenuator resistance

        |         | (see datasheet for more detail)
    

    0x05 | fmagc2 | ditto for FMAGC2

    0x06 | pgagain | PGA gain in dB

    0x07 | fmwblang | FM/WB LNA Gain in dB

  • /sys/kernel/debug//rsq
    This file contains information about parameters pertaining to
    RSQ(Received Signal Quality)

    The layout is:

    Offset | Name | Description

    0x00 | multhint | 0 - multipath value has not crossed

        |         | the Multipath high threshold
      |        | 1 - multipath value has crossed
        |         | the Multipath high threshold
    

    0x01 | multlint | ditto for Multipath low threshold

    0x02 | snrhint | 0 - received signal’s SNR has not

        |         | crossed high threshold
      |        | 1 - received signal's SNR has
        |         | crossed high threshold
    

    0x03 | snrlint | ditto for low threshold

    0x04 | rssihint | ditto for RSSI high threshold

    0x05 | rssilint | ditto for RSSI low threshold

    0x06 | bltf | Flag indicating if seek command

        |         | reached/wrapped seek band limit
    

    0x07 | snr_ready | Indicates that SNR metrics is ready

    0x08 | rssiready | ditto for RSSI metrics

    0x09 | injside | 0 - Low-side injection is being used

        |         | 1 - High-side injection is used
    

    0x10 | afcrl | Flag indicating if AFC rails

    0x11 | valid | Flag indicating if channel is valid

    0x12 | readfreq | Current tuned frequency

    0x14 | freqoff | Singed frequency offset in units of

        |         | 2ppm
    

    0x15 | rssi | Signed value of RSSI in dBuV

    0x16 | snr | Signed RF SNR in dB

    0x17 | issi | Signed Image Strength Signal

        |         | indicator
    

    0x18 | lassi | Signed Low side adjacent Channel

        |         | Strength indicator
    

    0x19 | hassi | ditto fpr High side

    0x20 | mult | Multipath indicator

    0x21 | dev | Frequency deviation

    0x24 | assi | Adjascent channel SSI

    0x25 | usn | Ultrasonic noise indicator

    0x26 | pilotdev | Pilot deviation in units of 100 Hz

    0x27 | rdsdev | ditto for RDS

    0x28 | assidev | ditto for ASSI

    0x29 | strongdev | Frequency deviation

    0x30 | rdspi | RDS PI code

  • /sys/kernel/debug//rsq_primary
    This file contains information about parameters pertaining to
    RSQ(Received Signal Quality) for primary tuner only. Layout is as
    the one above.