cregit-Linux how code gets into the kernel

Release 4.11 drivers/media/radio/radio-tea5777.h

#ifndef __RADIO_TEA5777_H

#define __RADIO_TEA5777_H

/*
 *   v4l2 driver for TEA5777 Philips AM/FM radio tuner chips
 *
 *      Copyright (c) 2012 Hans de Goede <hdegoede@redhat.com>
 *
 *   Based on the ALSA driver for TEA5757/5759 Philips AM/FM radio tuner chips:
 *
 *      Copyright (c) 2004 Jaroslav Kysela <perex@perex.cz>
 *      Copyright (c) 2012 Hans de Goede <hdegoede@redhat.com>
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 */

#include <linux/videodev2.h>
#include <media/v4l2-ctrls.h>
#include <media/v4l2-dev.h>
#include <media/v4l2-device.h>


#define TEA575X_FMIF	10700

#define TEA575X_AMIF	  450

struct radio_tea5777;


struct radio_tea5777_ops {
	/*
         * Write the 6 bytes large write register of the tea5777
         *
         * val represents the 6 write registers, with byte 1 from the
         * datasheet being the most significant byte (so byte 5 of the u64),
         * and byte 6 from the datasheet being the least significant byte.
         *
         * returns 0 on success.
         */
	
int (*write_reg)(struct radio_tea5777 *tea, u64 val);
	/*
         * Read the 3 bytes large read register of the tea5777
         *
         * The read value gets returned in val, akin to write_reg, byte 1 from
         * the datasheet is stored as the most significant byte (so byte 2 of
         * the u32), and byte 3 from the datasheet gets stored as the least
         * significant byte (iow byte 0 of the u32).
         *
         * returns 0 on success.
         */
	
int (*read_reg)(struct radio_tea5777 *tea, u32 *val);
};


struct radio_tea5777 {
	
struct v4l2_device *v4l2_dev;
	
struct v4l2_file_operations fops;
	
struct video_device vd;		/* video device */
	
bool has_am;			/* Device can tune to AM freqs */
	
bool write_before_read;		/* must write before read quirk */
	
bool needs_write;		/* for write before read quirk */
	
u32 band;			/* current band */
	
u32 freq;			/* current frequency */
	
u32 audmode;			/* last set audmode */
	
u32 seek_rangelow;		/* current hwseek limits */
	
u32 seek_rangehigh;
	
u32 read_reg;
	
u64 write_reg;
	
struct mutex mutex;
	
const struct radio_tea5777_ops *ops;
	
void *private_data;
	
u8 card[32];
	
u8 bus_info[32];
	
struct v4l2_ctrl_handler ctrl_handler;
};

int radio_tea5777_init(struct radio_tea5777 *tea, struct module *owner);
void radio_tea5777_exit(struct radio_tea5777 *tea);
int radio_tea5777_set_freq(struct radio_tea5777 *tea);

#endif /* __RADIO_TEA5777_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Hans de Goede18798.94%360.00%
Julia Lawall10.53%120.00%
Sakari Ailus10.53%120.00%
Total189100.00%5100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.