2.20. V4L2 媒体总线功能和数据结构¶
-
struct v4l2_mbus_config_mipi_csi2¶
MIPI CSI-2 数据总线配置
定义:
struct v4l2_mbus_config_mipi_csi2 {
unsigned int flags;
unsigned char data_lanes[V4L2_MBUS_CSI2_MAX_DATA_LANES];
unsigned char clock_lane;
unsigned char num_data_lanes;
bool lane_polarities[1 + V4L2_MBUS_CSI2_MAX_DATA_LANES];
};
成员
flags
媒体总线 (V4L2_MBUS_*) 标志
data_lanes
物理数据通道索引的数组
clock_lane
时钟通道的物理通道索引
num_data_lanes
数据通道数
lane_polarities
通道的极性。顺序与物理通道相同。
-
struct v4l2_mbus_config_parallel¶
并行数据总线配置
定义:
struct v4l2_mbus_config_parallel {
unsigned int flags;
unsigned char bus_width;
unsigned char data_shift;
};
成员
flags
媒体总线 (V4L2_MBUS_*) 标志
bus_width
总线宽度,以位为单位
data_shift
数据偏移,以位为单位
-
struct v4l2_mbus_config_mipi_csi1¶
CSI-1/CCP2 数据总线配置
定义:
struct v4l2_mbus_config_mipi_csi1 {
unsigned char clock_inv:1;
unsigned char strobe:1;
bool lane_polarity[2];
unsigned char data_lane;
unsigned char clock_lane;
};
成员
clock_inv
时钟/选通信号的极性,false - 不反转,true - 反转
strobe
false - 数据/时钟,true - 数据/选通
lane_polarity
时钟(索引 0)和数据通道索引 (1) 的极性
data_lane
数据通道的编号
clock_lane
时钟通道的编号
-
enum v4l2_mbus_type¶
媒体总线类型
常量
V4L2_MBUS_UNKNOWN
未知总线类型,没有 V4L2 媒体总线配置
V4L2_MBUS_PARALLEL
带有 hsync 和 vsync 的并行接口
V4L2_MBUS_BT656
带有嵌入式同步的并行接口,也可用于 BT.1120
V4L2_MBUS_CSI1
MIPI CSI-1 串行接口
V4L2_MBUS_CCP2
CCP2(紧凑型相机端口 2)
V4L2_MBUS_CSI2_DPHY
MIPI CSI-2 串行接口,带 D-PHY
V4L2_MBUS_CSI2_CPHY
MIPI CSI-2 串行接口,带 C-PHY
V4L2_MBUS_DPI
MIPI VIDEO DPI 接口
V4L2_MBUS_INVALID
无效的总线类型(保持为最后一个)
-
struct v4l2_mbus_config¶
媒体总线配置
定义:
struct v4l2_mbus_config {
enum v4l2_mbus_type type;
union {
struct v4l2_mbus_config_parallel parallel;
struct v4l2_mbus_config_mipi_csi1 mipi_csi1;
struct v4l2_mbus_config_mipi_csi2 mipi_csi2;
} bus;
};
成员
type
接口类型
bus
总线配置数据结构
bus.parallel
嵌入式
struct v4l2_mbus_config_parallel
。如果总线是并行或 BT.656,则使用。bus.mipi_csi1
嵌入式
struct v4l2_mbus_config_mipi_csi1
。如果总线是 MIPI 联盟的相机串行接口版本 1 (MIPI CSI1) 或标准移动成像架构的紧凑型相机端口 2 (SMIA CCP2),则使用。bus.mipi_csi2
嵌入式
struct v4l2_mbus_config_mipi_csi2
。如果总线是 MIPI 联盟的相机串行接口版本 2 (MIPI CSI2),则使用。
-
void v4l2_fill_pix_format(struct v4l2_pix_format *pix_fmt, const struct v4l2_mbus_framefmt *mbus_fmt)¶
辅助例程,它使用
struct v4l2_mbus_framefmt
的字段填充struct v4l2_pix_format
的字段。
参数
struct v4l2_pix_format *pix_fmt
指向要填充的
struct v4l2_pix_format
的指针const struct v4l2_mbus_framefmt *mbus_fmt
指向要用作模型的
struct v4l2_mbus_framefmt
的指针
-
void v4l2_fill_mbus_format(struct v4l2_mbus_framefmt *mbus_fmt, const struct v4l2_pix_format *pix_fmt, u32 code)¶
辅助例程,它使用
struct v4l2_pix_format
和数据格式代码填充struct v4l2_mbus_framefmt
。
参数
struct v4l2_mbus_framefmt *mbus_fmt
指向要填充的
struct v4l2_mbus_framefmt
的指针const struct v4l2_pix_format *pix_fmt
指向要用作模型的
struct v4l2_pix_format
的指针u32 code
数据格式代码(来自
enum v4l2_mbus_pixelcode
)
-
void v4l2_fill_pix_format_mplane(struct v4l2_pix_format_mplane *pix_mp_fmt, const struct v4l2_mbus_framefmt *mbus_fmt)¶
辅助例程,用于从媒体总线结构填充
struct v4l2_pix_format_mplane
字段。
参数
struct v4l2_pix_format_mplane *pix_mp_fmt
指向要填充的
struct v4l2_pix_format_mplane
的指针const struct v4l2_mbus_framefmt *mbus_fmt
指向要用作模型的
struct v4l2_mbus_framefmt
的指针
-
void v4l2_fill_mbus_format_mplane(struct v4l2_mbus_framefmt *mbus_fmt, const struct v4l2_pix_format_mplane *pix_mp_fmt)¶
辅助例程,用于从
struct v4l2_pix_format_mplane
填充struct v4l2_mbus_framefmt
。
参数
struct v4l2_mbus_framefmt *mbus_fmt
指向要填充的
struct v4l2_mbus_framefmt
的指针const struct v4l2_pix_format_mplane *pix_mp_fmt
指向要用作模型的
struct v4l2_pix_format_mplane
的指针