drivers/media/radio/si4713/si4713.h

Source file repositories/reference/linux-study-clean/drivers/media/radio/si4713/si4713.h

File Facts

System
Linux kernel
Corpus path
drivers/media/radio/si4713/si4713.h
Extension
.h
Size
7350 bytes
Lines
255
Domain
Driver Families
Bucket
drivers/media
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct si4713_device {
	/* v4l2_subdev and i2c reference (v4l2_subdev priv data) */
	struct v4l2_subdev sd;
	struct v4l2_ctrl_handler ctrl_handler;
	/* private data structures */
	struct { /* si4713 control cluster */
		/* This is one big cluster since the mute control
		 * powers off the device and after unmuting again all
		 * controls need to be set at once. The only way of doing
		 * that is by making it one big cluster. */
		struct v4l2_ctrl *mute;
		struct v4l2_ctrl *rds_ps_name;
		struct v4l2_ctrl *rds_radio_text;
		struct v4l2_ctrl *rds_pi;
		struct v4l2_ctrl *rds_deviation;
		struct v4l2_ctrl *rds_pty;
		struct v4l2_ctrl *rds_compressed;
		struct v4l2_ctrl *rds_art_head;
		struct v4l2_ctrl *rds_stereo;
		struct v4l2_ctrl *rds_ta;
		struct v4l2_ctrl *rds_tp;
		struct v4l2_ctrl *rds_ms;
		struct v4l2_ctrl *rds_dyn_pty;
		struct v4l2_ctrl *rds_alt_freqs_enable;
		struct v4l2_ctrl *rds_alt_freqs;
		struct v4l2_ctrl *compression_enabled;
		struct v4l2_ctrl *compression_threshold;
		struct v4l2_ctrl *compression_gain;
		struct v4l2_ctrl *compression_attack_time;
		struct v4l2_ctrl *compression_release_time;
		struct v4l2_ctrl *pilot_tone_enabled;
		struct v4l2_ctrl *pilot_tone_freq;
		struct v4l2_ctrl *pilot_tone_deviation;
		struct v4l2_ctrl *limiter_enabled;
		struct v4l2_ctrl *limiter_deviation;
		struct v4l2_ctrl *limiter_release_time;
		struct v4l2_ctrl *tune_preemphasis;
		struct v4l2_ctrl *tune_pwr_level;
		struct v4l2_ctrl *tune_ant_cap;
	};
	struct completion work;
	struct regulator *vdd;
	struct regulator *vio;
	struct gpio_desc *gpio_reset;
	struct platform_device *pd;
	u32 power_state;
	u32 rds_enabled;
	u32 frequency;
	u32 preemphasis;
	u32 stereo;
	u32 tune_rnl;
};

struct radio_si4713_platform_data {
	struct i2c_client *subdev;
};
#endif /* ifndef SI4713_I2C_H */

Annotation

Implementation Notes