summaryrefslogtreecommitdiffstats
path: root/Documentation/media/v4l-drivers/si476x.rst
blob: 616607955aafc4799d97da813e6c94b662596cab (plain)
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.