si476x.txt 8.84 KB
Newer Older
Abhijith PA's avatar
Abhijith PA committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187
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.