1 .. SPDX-License-Identifier: GPL-2.0 2 3 .. include:: <isonum.txt> 4 5 The Silicon Labs Si4713 FM Radio Transmitter D 6 ============================================== 7 8 Copyright |copy| 2009 Nokia Corporation 9 10 Contact: Eduardo Valentin <eduardo.valentin@nok 11 12 13 Information about the Device 14 ---------------------------- 15 16 This chip is a Silicon Labs product. It is a I 17 Basically, it has transmission and signal nois 18 19 The Si4713 integrates transmit functions for F 20 The chip also allows integrated receive power 21 power FM channels. 22 23 The chip is programmed using commands and resp 24 properties which can change the behavior of th 25 26 Users must comply with local regulations on ra 27 28 Device driver description 29 ------------------------- 30 31 There are two modules to handle this device. O 32 and the other is a platform driver. 33 34 The I2C device driver exports a v4l2-subdev in 35 All properties can also be accessed by v4l2 ex 36 using the v4l2-subdev calls (g_ext_ctrls, s_ex 37 38 The platform device driver exports a v4l2 radi 39 So, it uses the I2C device driver as a sub dev 40 commands to the actual device. Basically it is 41 42 Applications can use v4l2 radio API to specify 43 etc. But mostly of its properties will be pres 44 45 When the v4l2 mute property is set to 1 (true) 46 47 Properties description 48 ---------------------- 49 50 The properties can be accessed using v4l2 exte 51 Here is an output from v4l2-ctl util: 52 53 .. code-block:: none 54 55 / # v4l2-ctl -d /dev/radio0 --all -L 56 Driver Info: 57 Driver name : radio-si4713 58 Card type : Silicon Labs S 59 Bus info : 60 Driver version: 0 61 Capabilities : 0x00080800 62 RDS Output 63 Modulator 64 Audio output: 0 (FM Modulator Audio Ou 65 Frequency: 1408000 (88.000000 MHz) 66 Video Standard = 0x00000000 67 Modulator: 68 Name : FM Modu 69 Capabilities : 62.5 Hz 70 Frequency range : 76.0 MH 71 Subchannel modulation: stereo+ 72 73 User Controls 74 75 mute (bool) : 76 77 FM Radio Modulator Controls 78 79 rds_signal_deviation (int) : 80 rds_program_id (int) 81 rds_program_type (int) : min= 82 rds_ps_name (str) : m 83 rds_radio_text (str) 84 audio_limiter_feature_enabled (bool) : 85 audio_limiter_release_time (int) : mi 86 audio_limiter_deviation (int) 87 audio_compression_feature_enabl (bool) 88 audio_compression_gain (int) 89 audio_compression_threshold (int) : m 90 audio_compression_attack_time (int) : 91 audio_compression_release_time (int) 92 pilot_tone_feature_enabled (bool) : de 93 pilot_tone_deviation (int) : 94 pilot_tone_frequency (int) : 95 pre_emphasis_settings (menu) : 96 tune_power_level (int) : min= 97 tune_antenna_capacitor (int) 98 99 Here is a summary of them: 100 101 * Pilot is an audible tone sent by the device. 102 103 - pilot_frequency - Configures the frequency o 104 - pilot_deviation - Configures pilot tone freq 105 - pilot_enabled - Enables or disables the pilo 106 107 * The si4713 device is capable of applying aud 108 transmitted signal. 109 110 - acomp_enabled - Enables or disables the audi 111 - acomp_gain - Sets the gain for audio dynamic 112 - acomp_threshold - Sets the threshold level f 113 - acomp_attack_time - Sets the attack time for 114 - acomp_release_time - Sets the release time f 115 116 * Limiter setups audio deviation limiter featu 117 it is possible to adjust the front-end gain 118 prevent over deviation. 119 120 - limiter_enabled - Enables or disables the li 121 - limiter_deviation - Configures audio frequen 122 - limiter_release_time - Sets the limiter rele 123 124 * Tuning power 125 126 - power_level - Sets the output power level fo 127 antenna_capacitor - This selects the value o 128 manually or automatically if set to zero. 129 130 * RDS related 131 132 - rds_ps_name - Sets the RDS ps name field for 133 - rds_radio_text - Sets the RDS radio text for 134 - rds_pi - Sets the RDS PI field for transmiss 135 - rds_pty - Sets the RDS PTY field for transmi 136 137 * Region related 138 139 - preemphasis - sets the preemphasis to be app 140 141 RNL 142 --- 143 144 This device also has an interface to measure r 145 ioctl the device node. Here is an code of exam 146 147 .. code-block:: none 148 149 int main (int argc, char *argv[]) 150 { 151 struct si4713_rnl rnl; 152 int fd = open("/dev/radio0", O 153 int rval; 154 155 if (argc < 2) 156 return -EINVAL; 157 158 if (fd < 0) 159 return fd; 160 161 sscanf(argv[1], "%d", &rnl.fre 162 163 rval = ioctl(fd, SI4713_IOC_ME 164 if (rval < 0) 165 return rval; 166 167 printf("received noise level: 168 169 close(fd); 170 } 171 172 The struct si4713_rnl and SI4713_IOC_MEASURE_R 173 include/linux/platform_data/media/si4713.h. 174 175 Stereo/Mono and RDS subchannels 176 ------------------------------- 177 178 The device can also be configured using the av 179 transmission. To do that use S/G_MODULATOR ioc 180 Refer to the V4L2 API specification for proper 181 182 Testing 183 ------- 184 Testing is usually done with v4l2-ctl utility 185 The tool can be found in v4l-dvb repository un 186 187 Example for setting rds ps name: 188 189 .. code-block:: none 190 191 # v4l2-ctl -d /dev/radio0 --set-ctrl=r 192
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.