drivers/media/dvb-frontends/lgdt330x.h
Source file repositories/reference/linux-study-clean/drivers/media/dvb-frontends/lgdt330x.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/dvb-frontends/lgdt330x.h- Extension
.h- Size
- 1693 bytes
- Lines
- 61
- 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.
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/dvb/frontend.h
Detected Declarations
struct lgdt330x_config
Annotated Snippet
#ifndef LGDT330X_H
#define LGDT330X_H
#include <linux/dvb/frontend.h>
typedef enum lg_chip_t {
UNDEFINED,
LGDT3302,
LGDT3303
}lg_chip_type;
/**
* struct lgdt330x_config - contains lgdt330x configuration
*
* @demod_chip: LG demodulator chip LGDT3302 or LGDT3303
* @serial_mpeg: MPEG hardware interface - 0:parallel 1:serial
* @pll_rf_set: Callback function to set PLL interface
* @set_ts_params: Callback function to set device param for start_dma
* @clock_polarity_flip:
* Flip the polarity of the mpeg data transfer clock using alternate
* init data.
* This option applies ONLY to LGDT3303 - 0:disabled (default) 1:enabled
* @get_dvb_frontend:
* returns the frontend associated with this I2C client.
* Filled by the driver.
*/
struct lgdt330x_config
{
lg_chip_type demod_chip;
int serial_mpeg;
int (*pll_rf_set) (struct dvb_frontend* fe, int index);
int (*set_ts_params)(struct dvb_frontend* fe, int is_punctured);
int clock_polarity_flip;
struct dvb_frontend* (*get_dvb_frontend)(struct i2c_client *);
};
#if IS_REACHABLE(CONFIG_DVB_LGDT330X)
struct dvb_frontend *lgdt330x_attach(const struct lgdt330x_config *config,
u8 demod_address,
struct i2c_adapter *i2c);
#else
static inline
struct dvb_frontend *lgdt330x_attach(const struct lgdt330x_config *config,
u8 demod_address,
struct i2c_adapter *i2c)
{
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
return NULL;
}
#endif // CONFIG_DVB_LGDT330X
#endif /* LGDT330X_H */
Annotation
- Immediate include surface: `linux/dvb/frontend.h`.
- Detected declarations: `struct lgdt330x_config`.
- Atlas domain: Driver Families / drivers/media.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.