drivers/media/platform/ti/am437x/am437x-vpfe.h
Source file repositories/reference/linux-study-clean/drivers/media/platform/ti/am437x/am437x-vpfe.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/platform/ti/am437x/am437x-vpfe.h- Extension
.h- Size
- 7068 bytes
- Lines
- 289
- 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/am437x-vpfe.hlinux/clk.hlinux/completion.hlinux/device.hlinux/io.hlinux/i2c.hlinux/videodev2.hmedia/v4l2-dev.hmedia/v4l2-device.hmedia/v4l2-ioctl.hmedia/videobuf2-v4l2.hmedia/videobuf2-dma-contig.ham437x-vpfe_regs.h
Detected Declarations
struct vpfe_hw_if_paramstruct vpfe_std_infostruct vpfe_routestruct vpfe_subdev_infostruct vpfe_configstruct vpfe_cap_bufferstruct ccdc_params_rawstruct ccdc_params_ycbcrstruct ccdc_configstruct vpfe_ccdcstruct vpfe_fmtstruct vpfe_deviceenum vpfe_pin_polenum vpfe_hw_if_typeenum ccdc_pixfmtenum ccdc_frmfmtenum ccdc_pixorderenum ccdc_buftypefunction ccdc_gamma_width_max_bitfunction ccdc_data_size_max_bit
Annotated Snippet
struct vpfe_hw_if_param {
enum vpfe_hw_if_type if_type;
enum vpfe_pin_pol hdpol;
enum vpfe_pin_pol vdpol;
unsigned int bus_width;
};
#define VPFE_MAX_SUBDEV 1
#define VPFE_MAX_INPUTS 1
struct vpfe_std_info {
int active_pixels;
int active_lines;
/* current frame format */
int frame_format;
};
struct vpfe_route {
u32 input;
u32 output;
};
struct vpfe_subdev_info {
/* Sub device group id */
int grp_id;
/* inputs available at the sub device */
struct v4l2_input inputs[VPFE_MAX_INPUTS];
/* Sub dev routing information for each input */
struct vpfe_route *routes;
/* check if sub dev supports routing */
int can_route;
/* ccdc bus/interface configuration */
struct vpfe_hw_if_param vpfe_param;
struct v4l2_subdev *sd;
};
struct vpfe_config {
/* information about each subdev */
struct vpfe_subdev_info sub_devs[VPFE_MAX_SUBDEV];
/* Flat array, arranged in groups */
struct v4l2_async_connection *asd[VPFE_MAX_SUBDEV];
};
struct vpfe_cap_buffer {
struct vb2_v4l2_buffer vb;
struct list_head list;
};
enum ccdc_pixfmt {
CCDC_PIXFMT_RAW = 0,
CCDC_PIXFMT_YCBCR_16BIT,
CCDC_PIXFMT_YCBCR_8BIT,
};
enum ccdc_frmfmt {
CCDC_FRMFMT_PROGRESSIVE = 0,
CCDC_FRMFMT_INTERLACED,
};
/* PIXEL ORDER IN MEMORY from LSB to MSB */
/* only applicable for 8-bit input mode */
enum ccdc_pixorder {
CCDC_PIXORDER_YCBYCR,
CCDC_PIXORDER_CBYCRY,
};
enum ccdc_buftype {
CCDC_BUFTYPE_FLD_INTERLEAVED,
CCDC_BUFTYPE_FLD_SEPARATED
};
/* returns the highest bit used for the gamma */
static inline u8 ccdc_gamma_width_max_bit(enum vpfe_ccdc_gamma_width width)
{
return 15 - width;
}
/* returns the highest bit used for this data size */
static inline u8 ccdc_data_size_max_bit(enum vpfe_ccdc_data_size sz)
{
return sz == VPFE_CCDC_DATA_8BITS ? 7 : 15 - sz;
}
/* Structure for CCDC configuration parameters for raw capture mode */
struct ccdc_params_raw {
/* pixel format */
enum ccdc_pixfmt pix_fmt;
/* progressive or interlaced frame */
enum ccdc_frmfmt frm_fmt;
Annotation
- Immediate include surface: `linux/am437x-vpfe.h`, `linux/clk.h`, `linux/completion.h`, `linux/device.h`, `linux/io.h`, `linux/i2c.h`, `linux/videodev2.h`, `media/v4l2-dev.h`.
- Detected declarations: `struct vpfe_hw_if_param`, `struct vpfe_std_info`, `struct vpfe_route`, `struct vpfe_subdev_info`, `struct vpfe_config`, `struct vpfe_cap_buffer`, `struct ccdc_params_raw`, `struct ccdc_params_ycbcr`, `struct ccdc_config`, `struct vpfe_ccdc`.
- 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.