To get the current tuner or modulator radio frequency
applications set the tuner field of a
struct v4l2_frequency to the respective tuner or modulator number (only
input devices have tuners, only output devices have modulators), zero
out the reserved array and
call the VIDIOC_G_FREQUENCY ioctl with a pointer
to this structure. The driver stores the current frequency in the
frequency field.
To change the current tuner or modulator radio frequency
applications initialize the tuner,
type and
frequency fields, and the
reserved array of a struct v4l2_frequency and
call the VIDIOC_S_FREQUENCY ioctl with a pointer
to this structure. When the requested frequency is not possible the
driver assumes the closest possible value. However
VIDIOC_S_FREQUENCY is a write-only ioctl, it does
not return the actual new frequency.
Table 1. struct v4l2_frequency
| __u32 | tuner | The tuner or modulator index number. This is the
same value as in the struct v4l2_input tunerfield and the struct v4l2_tunerindexfield, or
the struct v4l2_outputmodulatorfield and the
struct v4l2_modulatorindexfield. | 
| enum v4l2_tuner_type | type | The tuner type. This is the same value as in the
struct v4l2_tuner typefield. The field is not
applicable to modulators, i. e. ignored by drivers. | 
| __u32 | frequency | Tuning frequency in units of 62.5 kHz, or if the
struct v4l2_tuner or struct v4l2_modulator capabilitiesflagV4L2_TUNER_CAP_LOWis set, in units of 62.5
Hz. | 
| __u32 | reserved[8]; | Reserved for future extensions. Drivers and applications must set the array to zero. |