summaryrefslogblamecommitdiff
path: root/Documentation/video4linux/si476x.txt
blob: 616607955aafc4799d97da813e6c94b662596cab (plain) (tree)




















































































































































                                                                      
                                                                     

















                                                                      
                                                      

















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