32. The SI476x Driver

Copyright © 2013 Andrey Smirnov <andrew.smirnov@gmail.com>

32.1. 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.

32.2. 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/<device-name>/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/<device-name>/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/<device-name>/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/<device-name>/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 Signed 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 Adjacent 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/<device-name>/rsq_primary This file contains information about parameters pertaining to RSQ(Received Signal Quality) for primary tuner only. Layout is as the one above.