tuner-types.h revision de03d21b908bd4c49f1fe7b0c4dc5876551cf819
17b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky/* 27b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky * descriptions for simple tuners. 37b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky */ 47b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky 57b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky#ifndef __TUNER_TYPES_H__ 67b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky#define __TUNER_TYPES_H__ 77b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky 87b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufkyenum param_type { 97b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky TUNER_PARAM_TYPE_RADIO, \ 107b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky TUNER_PARAM_TYPE_PAL, \ 117b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky TUNER_PARAM_TYPE_SECAM, \ 12c943aa859c392eb4cc76d911daa1f261555075b2Michael Krufky TUNER_PARAM_TYPE_NTSC 137b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky}; 147b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky 157b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufkystruct tuner_range { 167b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky unsigned short limit; 177b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky unsigned char cb; 187b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky}; 197b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky 207b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufkystruct tuner_params { 217b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky enum param_type type; 2227487d44712aaa37710cc508d5bd6119f5e9f976Hans Verkuil /* Many Philips based tuners have a comment like this in their 2327487d44712aaa37710cc508d5bd6119f5e9f976Hans Verkuil * datasheet: 2427487d44712aaa37710cc508d5bd6119f5e9f976Hans Verkuil * 2527487d44712aaa37710cc508d5bd6119f5e9f976Hans Verkuil * For channel selection involving band switching, and to ensure 2627487d44712aaa37710cc508d5bd6119f5e9f976Hans Verkuil * smooth tuning to the desired channel without causing 2727487d44712aaa37710cc508d5bd6119f5e9f976Hans Verkuil * unnecessary charge pump action, it is recommended to consider 2827487d44712aaa37710cc508d5bd6119f5e9f976Hans Verkuil * the difference between wanted channel frequency and the 2927487d44712aaa37710cc508d5bd6119f5e9f976Hans Verkuil * current channel frequency. Unnecessary charge pump action 3027487d44712aaa37710cc508d5bd6119f5e9f976Hans Verkuil * will result in very low tuning voltage which may drive the 3127487d44712aaa37710cc508d5bd6119f5e9f976Hans Verkuil * oscillator to extreme conditions. 3227487d44712aaa37710cc508d5bd6119f5e9f976Hans Verkuil * 33de03d21b908bd4c49f1fe7b0c4dc5876551cf819Michael Krufky * Set cb_first_if_lower_freq to 1, if this check is 3401872c5d253298b9f360c7c9b9f33504b6ad5469Michael Krufky * required for this tuner. 3527487d44712aaa37710cc508d5bd6119f5e9f976Hans Verkuil * 3627487d44712aaa37710cc508d5bd6119f5e9f976Hans Verkuil * I tested this for PAL by first setting the TV frequency to 3727487d44712aaa37710cc508d5bd6119f5e9f976Hans Verkuil * 203 MHz and then switching to 96.6 MHz FM radio. The result was 3827487d44712aaa37710cc508d5bd6119f5e9f976Hans Verkuil * static unless the control byte was sent first. 3927487d44712aaa37710cc508d5bd6119f5e9f976Hans Verkuil */ 4027487d44712aaa37710cc508d5bd6119f5e9f976Hans Verkuil unsigned int cb_first_if_lower_freq:1; 417b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky unsigned char config; /* to be moved into struct tuner_range for dvb-pll merge */ 427b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky 437b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky unsigned int count; 447b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky struct tuner_range *ranges; 457b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky}; 467b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky 477b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufkystruct tunertype { 487b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky char *name; 497b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky struct tuner_params *params; 507b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky}; 517b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky 527b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufkyextern struct tunertype tuners[]; 537b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufkyextern unsigned const int tuner_count; 547b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky 557b0ac9cdd42b254ae2ec0f6c1cc6389655e4ba96Michael Krufky#endif 56