162306a36Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci.. include:: <isonum.txt>
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciThe SI476x Driver
762306a36Sopenharmony_ci=================
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciCopyright |copy| 2013 Andrey Smirnov <andrew.smirnov@gmail.com>
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ciTODO for the driver
1262306a36Sopenharmony_ci-------------------
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci- According to the SiLabs' datasheet it is possible to update the
1562306a36Sopenharmony_ci  firmware of the radio chip in the run-time, thus bringing it to the
1662306a36Sopenharmony_ci  most recent version. Unfortunately I couldn't find any mentioning of
1762306a36Sopenharmony_ci  the said firmware update for the old chips that I tested the driver
1862306a36Sopenharmony_ci  against, so for chips like that the driver only exposes the old
1962306a36Sopenharmony_ci  functionality.
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciParameters exposed over debugfs
2362306a36Sopenharmony_ci-------------------------------
2462306a36Sopenharmony_ciSI476x allow user to get multiple characteristics that can be very
2562306a36Sopenharmony_ciuseful for EoL testing/RF performance estimation, parameters that have
2662306a36Sopenharmony_civery little to do with V4L2 subsystem. Such parameters are exposed via
2762306a36Sopenharmony_cidebugfs and can be accessed via regular file I/O operations.
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciThe drivers exposes following files:
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci* /sys/kernel/debug/<device-name>/acf
3262306a36Sopenharmony_ci  This file contains ACF(Automatically Controlled Features) status
3362306a36Sopenharmony_ci  information. The contents of the file is binary data of the
3462306a36Sopenharmony_ci  following layout:
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci  .. tabularcolumns:: |p{7ex}|p{12ex}|L|
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci  =============  ==============   ====================================
3962306a36Sopenharmony_ci  Offset	 Name		  Description
4062306a36Sopenharmony_ci  =============  ==============   ====================================
4162306a36Sopenharmony_ci  0x00		 blend_int	  Flag, set when stereo separation has
4262306a36Sopenharmony_ci				  crossed below the blend threshold
4362306a36Sopenharmony_ci  0x01		 hblend_int	  Flag, set when HiBlend cutoff
4462306a36Sopenharmony_ci				  frequency is lower than threshold
4562306a36Sopenharmony_ci  0x02		 hicut_int	  Flag, set when HiCut cutoff
4662306a36Sopenharmony_ci				  frequency is lower than threshold
4762306a36Sopenharmony_ci  0x03		 chbw_int	  Flag, set when channel filter
4862306a36Sopenharmony_ci				  bandwidth is less than threshold
4962306a36Sopenharmony_ci  0x04		 softmute_int	  Flag indicating that softmute
5062306a36Sopenharmony_ci				  attenuation has increased above
5162306a36Sopenharmony_ci				  softmute threshold
5262306a36Sopenharmony_ci  0x05		 smute		  0 - Audio is not soft muted
5362306a36Sopenharmony_ci				  1 - Audio is soft muted
5462306a36Sopenharmony_ci  0x06		 smattn		  Soft mute attenuation level in dB
5562306a36Sopenharmony_ci  0x07		 chbw		  Channel filter bandwidth in kHz
5662306a36Sopenharmony_ci  0x08		 hicut		  HiCut cutoff frequency in units of
5762306a36Sopenharmony_ci				  100Hz
5862306a36Sopenharmony_ci  0x09		 hiblend	  HiBlend cutoff frequency in units
5962306a36Sopenharmony_ci				  of 100 Hz
6062306a36Sopenharmony_ci  0x10		 pilot		  0 - Stereo pilot is not present
6162306a36Sopenharmony_ci				  1 - Stereo pilot is present
6262306a36Sopenharmony_ci  0x11		 stblend	  Stereo blend in %
6362306a36Sopenharmony_ci  =============  ==============   ====================================
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci* /sys/kernel/debug/<device-name>/rds_blckcnt
6762306a36Sopenharmony_ci  This file contains statistics about RDS receptions. It's binary data
6862306a36Sopenharmony_ci  has the following layout:
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci  .. tabularcolumns:: |p{7ex}|p{12ex}|L|
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci  =============  ==============   ====================================
7362306a36Sopenharmony_ci  Offset	 Name		  Description
7462306a36Sopenharmony_ci  =============  ==============   ====================================
7562306a36Sopenharmony_ci  0x00		 expected	  Number of expected RDS blocks
7662306a36Sopenharmony_ci  0x02		 received	  Number of received RDS blocks
7762306a36Sopenharmony_ci  0x04		 uncorrectable	  Number of uncorrectable RDS blocks
7862306a36Sopenharmony_ci  =============  ==============   ====================================
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci* /sys/kernel/debug/<device-name>/agc
8162306a36Sopenharmony_ci  This file contains information about parameters pertaining to
8262306a36Sopenharmony_ci  AGC(Automatic Gain Control)
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci  The layout is:
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci  .. tabularcolumns:: |p{7ex}|p{12ex}|L|
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci  =============  ==============   ====================================
8962306a36Sopenharmony_ci  Offset	 Name		  Description
9062306a36Sopenharmony_ci  =============  ==============   ====================================
9162306a36Sopenharmony_ci  0x00		 mxhi		  0 - FM Mixer PD high threshold is
9262306a36Sopenharmony_ci				  not tripped
9362306a36Sopenharmony_ci				  1 - FM Mixer PD high threshold is
9462306a36Sopenharmony_ci				  tripped
9562306a36Sopenharmony_ci  0x01		 mxlo		  ditto for FM Mixer PD low
9662306a36Sopenharmony_ci  0x02		 lnahi		  ditto for FM LNA PD high
9762306a36Sopenharmony_ci  0x03		 lnalo		  ditto for FM LNA PD low
9862306a36Sopenharmony_ci  0x04		 fmagc1		  FMAGC1 attenuator resistance
9962306a36Sopenharmony_ci				  (see datasheet for more detail)
10062306a36Sopenharmony_ci  0x05		 fmagc2		  ditto for FMAGC2
10162306a36Sopenharmony_ci  0x06		 pgagain	  PGA gain in dB
10262306a36Sopenharmony_ci  0x07		 fmwblang	  FM/WB LNA Gain in dB
10362306a36Sopenharmony_ci  =============  ==============   ====================================
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci* /sys/kernel/debug/<device-name>/rsq
10662306a36Sopenharmony_ci  This file contains information about parameters pertaining to
10762306a36Sopenharmony_ci  RSQ(Received Signal Quality)
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci  The layout is:
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci  .. tabularcolumns:: |p{7ex}|p{12ex}|p{60ex}|
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci  =============  ==============   ====================================
11462306a36Sopenharmony_ci  Offset	 Name		  Description
11562306a36Sopenharmony_ci  =============  ==============   ====================================
11662306a36Sopenharmony_ci  0x00		 multhint	  0 - multipath value has not crossed
11762306a36Sopenharmony_ci				  the Multipath high threshold
11862306a36Sopenharmony_ci				  1 - multipath value has crossed
11962306a36Sopenharmony_ci				  the Multipath high threshold
12062306a36Sopenharmony_ci  0x01		 multlint	  ditto for Multipath low threshold
12162306a36Sopenharmony_ci  0x02		 snrhint	  0 - received signal's SNR has not
12262306a36Sopenharmony_ci				  crossed high threshold
12362306a36Sopenharmony_ci				  1 - received signal's SNR has
12462306a36Sopenharmony_ci				  crossed high threshold
12562306a36Sopenharmony_ci  0x03		 snrlint	  ditto for low threshold
12662306a36Sopenharmony_ci  0x04		 rssihint	  ditto for RSSI high threshold
12762306a36Sopenharmony_ci  0x05		 rssilint	  ditto for RSSI low threshold
12862306a36Sopenharmony_ci  0x06		 bltf		  Flag indicating if seek command
12962306a36Sopenharmony_ci				  reached/wrapped seek band limit
13062306a36Sopenharmony_ci  0x07		 snr_ready	  Indicates that SNR metrics is ready
13162306a36Sopenharmony_ci  0x08		 rssiready	  ditto for RSSI metrics
13262306a36Sopenharmony_ci  0x09		 injside	  0 - Low-side injection is being used
13362306a36Sopenharmony_ci				  1 - High-side injection is used
13462306a36Sopenharmony_ci  0x10		 afcrl		  Flag indicating if AFC rails
13562306a36Sopenharmony_ci  0x11		 valid		  Flag indicating if channel is valid
13662306a36Sopenharmony_ci  0x12		 readfreq	  Current tuned frequency
13762306a36Sopenharmony_ci  0x14		 freqoff	  Signed frequency offset in units of
13862306a36Sopenharmony_ci				  2ppm
13962306a36Sopenharmony_ci  0x15		 rssi		  Signed value of RSSI in dBuV
14062306a36Sopenharmony_ci  0x16		 snr		  Signed RF SNR in dB
14162306a36Sopenharmony_ci  0x17		 issi		  Signed Image Strength Signal
14262306a36Sopenharmony_ci				  indicator
14362306a36Sopenharmony_ci  0x18		 lassi		  Signed Low side adjacent Channel
14462306a36Sopenharmony_ci				  Strength indicator
14562306a36Sopenharmony_ci  0x19		 hassi		  ditto for High side
14662306a36Sopenharmony_ci  0x20		 mult		  Multipath indicator
14762306a36Sopenharmony_ci  0x21		 dev		  Frequency deviation
14862306a36Sopenharmony_ci  0x24		 assi		  Adjacent channel SSI
14962306a36Sopenharmony_ci  0x25		 usn		  Ultrasonic noise indicator
15062306a36Sopenharmony_ci  0x26		 pilotdev	  Pilot deviation in units of 100 Hz
15162306a36Sopenharmony_ci  0x27		 rdsdev		  ditto for RDS
15262306a36Sopenharmony_ci  0x28		 assidev	  ditto for ASSI
15362306a36Sopenharmony_ci  0x29		 strongdev	  Frequency deviation
15462306a36Sopenharmony_ci  0x30		 rdspi		  RDS PI code
15562306a36Sopenharmony_ci  =============  ==============   ====================================
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ci* /sys/kernel/debug/<device-name>/rsq_primary
15862306a36Sopenharmony_ci  This file contains information about parameters pertaining to
15962306a36Sopenharmony_ci  RSQ(Received Signal Quality) for primary tuner only. Layout is as
16062306a36Sopenharmony_ci  the one above.
161