diff options
author | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2015-10-05 09:24:59 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2015-10-05 09:36:16 -0400 |
commit | 65fc64090ed3dc750d40474b07a6f8ad734440cc (patch) | |
tree | 9895c0b734ca872bac451ea1fb30ec4616739c88 /include/media | |
parent | 62e93f090b0903def1d7455c311c50b9e6f38ef2 (diff) |
[media] DocBook: convert struct tuner_parms to doc-nano format
The struct tuner_params is almost fully documented, but
using a non-standard way. Convert it to doc-nano format,
and add descriptions for the parameters that aren't
documented yet.
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'include/media')
-rw-r--r-- | include/media/tuner-types.h | 156 |
1 files changed, 92 insertions, 64 deletions
diff --git a/include/media/tuner-types.h b/include/media/tuner-types.h index ab03c5344209..011b4a20ee22 100644 --- a/include/media/tuner-types.h +++ b/include/media/tuner-types.h | |||
@@ -19,91 +19,119 @@ struct tuner_range { | |||
19 | unsigned char cb; | 19 | unsigned char cb; |
20 | }; | 20 | }; |
21 | 21 | ||
22 | /** | ||
23 | * struct tuner_params - Parameters to be used to setup the tuner. Those | ||
24 | * are used by drivers/media/tuners/tuner-types.c in | ||
25 | * order to specify the tuner properties. Most of | ||
26 | * the parameters are for tuners based on tda9887 IF-PLL | ||
27 | * multi-standard analog TV/Radio demodulator, with is | ||
28 | * very common on legacy analog tuners. | ||
29 | * | ||
30 | * @type: Type of the tuner parameters, as defined at | ||
31 | * enum param_type. If the tuner supports multiple | ||
32 | * standards, an array should be used, with one | ||
33 | * row per different standard. | ||
34 | * @cb_first_if_lower_freq: Many Philips-based tuners have a comment in | ||
35 | * their datasheet like | ||
36 | * "For channel selection involving band | ||
37 | * switching, and to ensure smooth tuning to the | ||
38 | * desired channel without causing unnecessary | ||
39 | * charge pump action, it is recommended to | ||
40 | * consider the difference between wanted channel | ||
41 | * frequency and the current channel frequency. | ||
42 | * Unnecessary charge pump action will result | ||
43 | * in very low tuning voltage which may drive the | ||
44 | * oscillator to extreme conditions". | ||
45 | * Set cb_first_if_lower_freq to 1, if this check | ||
46 | * is required for this tuner. I tested this for | ||
47 | * PAL by first setting the TV frequency to | ||
48 | * 203 MHz and then switching to 96.6 MHz FM | ||
49 | * radio. The result was static unless the | ||
50 | * control byte was sent first. | ||
51 | * @has_tda9887: Set to 1 if this tuner uses a tda9887 | ||
52 | * @port1_fm_high_sensitivity: Many Philips tuners use tda9887 PORT1 to select | ||
53 | * the FM radio sensitivity. If this setting is 1, | ||
54 | * then set PORT1 to 1 to get proper FM reception. | ||
55 | * @port2_fm_high_sensitivity: Some Philips tuners use tda9887 PORT2 to select | ||
56 | * the FM radio sensitivity. If this setting is 1, | ||
57 | * then set PORT2 to 1 to get proper FM reception. | ||
58 | * @fm_gain_normal: Some Philips tuners use tda9887 cGainNormal to | ||
59 | * select the FM radio sensitivity. If this | ||
60 | * setting is 1, e register will use cGainNormal | ||
61 | * instead of cGainLow. | ||
62 | * @intercarrier_mode: Most tuners with a tda9887 use QSS mode. | ||
63 | * Some (cheaper) tuners use Intercarrier mode. | ||
64 | * If this setting is 1, then the tuner needs to | ||
65 | * be set to intercarrier mode. | ||
66 | * @port1_active: This setting sets the default value for PORT1. | ||
67 | * 0 means inactive, 1 means active. Note: the | ||
68 | * actual bit value written to the tda9887 is | ||
69 | * inverted. So a 0 here means a 1 in the B6 bit. | ||
70 | * @port2_active: This setting sets the default value for PORT2. | ||
71 | * 0 means inactive, 1 means active. Note: the | ||
72 | * actual bit value written to the tda9887 is | ||
73 | * inverted. So a 0 here means a 1 in the B7 bit. | ||
74 | * @port1_invert_for_secam_lc: Sometimes PORT1 is inverted when the SECAM-L' | ||
75 | * standard is selected. Set this bit to 1 if this | ||
76 | * is needed. | ||
77 | * @port2_invert_for_secam_lc: Sometimes PORT2 is inverted when the SECAM-L' | ||
78 | * standard is selected. Set this bit to 1 if this | ||
79 | * is needed. | ||
80 | * @port1_set_for_fm_mono: Some cards require PORT1 to be 1 for mono Radio | ||
81 | * FM and 0 for stereo. | ||
82 | * @default_pll_gating_18: Select 18% (or according to datasheet 0%) | ||
83 | * L standard PLL gating, vs the driver default | ||
84 | * of 36%. | ||
85 | * @radio_if: IF to use in radio mode. Tuners with a | ||
86 | * separate radio IF filter seem to use 10.7, | ||
87 | * while those without use 33.3 for PAL/SECAM | ||
88 | * tuners and 41.3 for NTSC tuners. | ||
89 | * 0 = 10.7, 1 = 33.3, 2 = 41.3 | ||
90 | * @default_top_low: Default tda9887 TOP value in dB for the low | ||
91 | * band. Default is 0. Range: -16:+15 | ||
92 | * @default_top_mid: Default tda9887 TOP value in dB for the mid | ||
93 | * band. Default is 0. Range: -16:+15 | ||
94 | * @default_top_high: Default tda9887 TOP value in dB for the high | ||
95 | * band. Default is 0. Range: -16:+15 | ||
96 | * @default_top_secam_low: Default tda9887 TOP value in dB for SECAM-L/L' | ||
97 | * for the low band. Default is 0. Several tuners | ||
98 | * require a different TOP value for the | ||
99 | * SECAM-L/L' standards. Range: -16:+15 | ||
100 | * @default_top_secam_mid: Default tda9887 TOP value in dB for SECAM-L/L' | ||
101 | * for the mid band. Default is 0. Several tuners | ||
102 | * require a different TOP value for the | ||
103 | * SECAM-L/L' standards. Range: -16:+15 | ||
104 | * @default_top_secam_high: Default tda9887 TOP value in dB for SECAM-L/L' | ||
105 | * for the high band. Default is 0. Several tuners | ||
106 | * require a different TOP value for the | ||
107 | * SECAM-L/L' standards. Range: -16:+15 | ||
108 | * @iffreq: Intermediate frequency (IF) used by the tuner | ||
109 | * on digital mode. | ||
110 | * @count: Size of the ranges array. | ||
111 | * @ranges: Array with the frequency ranges supported by | ||
112 | * the tuner. | ||
113 | */ | ||
22 | struct tuner_params { | 114 | struct tuner_params { |
23 | enum param_type type; | 115 | enum param_type type; |
24 | 116 | ||
25 | /* Many Philips based tuners have a comment like this in their | ||
26 | * datasheet: | ||
27 | * | ||
28 | * For channel selection involving band switching, and to ensure | ||
29 | * smooth tuning to the desired channel without causing | ||
30 | * unnecessary charge pump action, it is recommended to consider | ||
31 | * the difference between wanted channel frequency and the | ||
32 | * current channel frequency. Unnecessary charge pump action | ||
33 | * will result in very low tuning voltage which may drive the | ||
34 | * oscillator to extreme conditions. | ||
35 | * | ||
36 | * Set cb_first_if_lower_freq to 1, if this check is | ||
37 | * required for this tuner. | ||
38 | * | ||
39 | * I tested this for PAL by first setting the TV frequency to | ||
40 | * 203 MHz and then switching to 96.6 MHz FM radio. The result was | ||
41 | * static unless the control byte was sent first. | ||
42 | */ | ||
43 | unsigned int cb_first_if_lower_freq:1; | 117 | unsigned int cb_first_if_lower_freq:1; |
44 | /* Set to 1 if this tuner uses a tda9887 */ | ||
45 | unsigned int has_tda9887:1; | 118 | unsigned int has_tda9887:1; |
46 | /* Many Philips tuners use tda9887 PORT1 to select the FM radio | ||
47 | sensitivity. If this setting is 1, then set PORT1 to 1 to | ||
48 | get proper FM reception. */ | ||
49 | unsigned int port1_fm_high_sensitivity:1; | 119 | unsigned int port1_fm_high_sensitivity:1; |
50 | /* Some Philips tuners use tda9887 PORT2 to select the FM radio | ||
51 | sensitivity. If this setting is 1, then set PORT2 to 1 to | ||
52 | get proper FM reception. */ | ||
53 | unsigned int port2_fm_high_sensitivity:1; | 120 | unsigned int port2_fm_high_sensitivity:1; |
54 | /* Some Philips tuners use tda9887 cGainNormal to select the FM radio | ||
55 | sensitivity. If this setting is 1, e register will use cGainNormal | ||
56 | instead of cGainLow. */ | ||
57 | unsigned int fm_gain_normal:1; | 121 | unsigned int fm_gain_normal:1; |
58 | /* Most tuners with a tda9887 use QSS mode. Some (cheaper) tuners | ||
59 | use Intercarrier mode. If this setting is 1, then the tuner | ||
60 | needs to be set to intercarrier mode. */ | ||
61 | unsigned int intercarrier_mode:1; | 122 | unsigned int intercarrier_mode:1; |
62 | /* This setting sets the default value for PORT1. | ||
63 | 0 means inactive, 1 means active. Note: the actual bit | ||
64 | value written to the tda9887 is inverted. So a 0 here | ||
65 | means a 1 in the B6 bit. */ | ||
66 | unsigned int port1_active:1; | 123 | unsigned int port1_active:1; |
67 | /* This setting sets the default value for PORT2. | ||
68 | 0 means inactive, 1 means active. Note: the actual bit | ||
69 | value written to the tda9887 is inverted. So a 0 here | ||
70 | means a 1 in the B7 bit. */ | ||
71 | unsigned int port2_active:1; | 124 | unsigned int port2_active:1; |
72 | /* Sometimes PORT1 is inverted when the SECAM-L' standard is selected. | ||
73 | Set this bit to 1 if this is needed. */ | ||
74 | unsigned int port1_invert_for_secam_lc:1; | 125 | unsigned int port1_invert_for_secam_lc:1; |
75 | /* Sometimes PORT2 is inverted when the SECAM-L' standard is selected. | ||
76 | Set this bit to 1 if this is needed. */ | ||
77 | unsigned int port2_invert_for_secam_lc:1; | 126 | unsigned int port2_invert_for_secam_lc:1; |
78 | /* Some cards require PORT1 to be 1 for mono Radio FM and 0 for stereo. */ | ||
79 | unsigned int port1_set_for_fm_mono:1; | 127 | unsigned int port1_set_for_fm_mono:1; |
80 | /* Select 18% (or according to datasheet 0%) L standard PLL gating, | ||
81 | vs the driver default of 36%. */ | ||
82 | unsigned int default_pll_gating_18:1; | 128 | unsigned int default_pll_gating_18:1; |
83 | /* IF to use in radio mode. Tuners with a separate radio IF filter | ||
84 | seem to use 10.7, while those without use 33.3 for PAL/SECAM tuners | ||
85 | and 41.3 for NTSC tuners. 0 = 10.7, 1 = 33.3, 2 = 41.3 */ | ||
86 | unsigned int radio_if:2; | 129 | unsigned int radio_if:2; |
87 | /* Default tda9887 TOP value in dB for the low band. Default is 0. | ||
88 | Range: -16:+15 */ | ||
89 | signed int default_top_low:5; | 130 | signed int default_top_low:5; |
90 | /* Default tda9887 TOP value in dB for the mid band. Default is 0. | ||
91 | Range: -16:+15 */ | ||
92 | signed int default_top_mid:5; | 131 | signed int default_top_mid:5; |
93 | /* Default tda9887 TOP value in dB for the high band. Default is 0. | ||
94 | Range: -16:+15 */ | ||
95 | signed int default_top_high:5; | 132 | signed int default_top_high:5; |
96 | /* Default tda9887 TOP value in dB for SECAM-L/L' for the low band. | ||
97 | Default is 0. Several tuners require a different TOP value for | ||
98 | the SECAM-L/L' standards. Range: -16:+15 */ | ||
99 | signed int default_top_secam_low:5; | 133 | signed int default_top_secam_low:5; |
100 | /* Default tda9887 TOP value in dB for SECAM-L/L' for the mid band. | ||
101 | Default is 0. Several tuners require a different TOP value for | ||
102 | the SECAM-L/L' standards. Range: -16:+15 */ | ||
103 | signed int default_top_secam_mid:5; | 134 | signed int default_top_secam_mid:5; |
104 | /* Default tda9887 TOP value in dB for SECAM-L/L' for the high band. | ||
105 | Default is 0. Several tuners require a different TOP value for | ||
106 | the SECAM-L/L' standards. Range: -16:+15 */ | ||
107 | signed int default_top_secam_high:5; | 135 | signed int default_top_secam_high:5; |
108 | 136 | ||
109 | u16 iffreq; | 137 | u16 iffreq; |