2.18. V4L2 闪光灯功能和数据结构¶
-
struct v4l2_flash_ctrl_data¶
闪光灯控制初始化数据,根据 LED 闪光灯类驱动程序在 v4l2_flash_config 中声明的功能进行填充
定义:
struct v4l2_flash_ctrl_data {
struct v4l2_ctrl_config config;
u32 cid;
};
成员
config
控制的初始化数据
cid
如果 config 字段已初始化,则包含 v4l2 闪光灯控制 ID,否则为 0
-
struct v4l2_flash_ops¶
V4L2 闪光灯操作
定义:
struct v4l2_flash_ops {
int (*external_strobe_set)(struct v4l2_flash *v4l2_flash, bool enable);
enum led_brightness (*intensity_to_led_brightness) (struct v4l2_flash *v4l2_flash, s32 intensity);
s32 (*led_brightness_to_intensity) (struct v4l2_flash *v4l2_flash, enum led_brightness);
};
成员
external_strobe_set
通过硬件引脚状态断言设置闪光灯选通。
intensity_to_led_brightness
以设备特定的方式将强度转换为亮度
led_brightness_to_intensity
以设备特定的方式将亮度转换为强度。
-
struct v4l2_flash_config¶
V4L2 闪光灯子设备初始化数据
定义:
struct v4l2_flash_config {
char dev_name[32];
struct led_flash_setting intensity;
u32 flash_faults;
unsigned int has_external_strobe:1;
};
成员
dev_name
媒体实体的名称,在系统中是唯一的
intensity
LED 的非闪光灯选通约束
flash_faults
LED 闪光灯类设备可以报告的闪光灯故障的位掩码;相应的 LED_FAULT* 位定义在头文件 <linux/led-class-flash.h> 中可用
has_external_strobe
外部选通功能
-
struct v4l2_flash¶
闪光灯子设备上下文
定义:
struct v4l2_flash {
struct led_classdev_flash *fled_cdev;
struct led_classdev *iled_cdev;
const struct v4l2_flash_ops *ops;
struct v4l2_subdev sd;
struct v4l2_ctrl_handler hdl;
struct v4l2_ctrl **ctrls;
};
成员
fled_cdev
此子设备控制的 LED 闪光灯类设备
iled_cdev
表示与 LED 闪光灯类设备关联的指示灯 LED 的 LED 类设备
ops
V4L2 特定闪光灯操作
sd
V4L2 子设备
hdl
闪光灯控制处理程序
ctrls
指向控制的指针数组,其值定义子设备状态
-
struct v4l2_flash *v4l2_subdev_to_v4l2_flash(struct v4l2_subdev *sd)¶
从嵌入其中的
struct v4l2_subdev
返回struct v4l2_flash
。
参数
struct v4l2_subdev *sd
指向
struct v4l2_subdev
的指针
-
struct v4l2_flash *v4l2_ctrl_to_v4l2_flash(struct v4l2_ctrl *c)¶
从嵌入其中的
struct v4l2_ctrl
返回struct v4l2_flash
。
参数
struct v4l2_ctrl *c
指向
struct v4l2_ctrl
的指针
-
struct v4l2_flash *v4l2_flash_init(struct device *dev, struct fwnode_handle *fwn, struct led_classdev_flash *fled_cdev, const struct v4l2_flash_ops *ops, struct v4l2_flash_config *config)¶
初始化 V4L2 闪光灯 LED 子设备
参数
struct device *dev
闪光灯设备,例如 I2C 设备
struct fwnode_handle *fwn
LED 的 fwnode_handle,如果与设备的相同,则可以为 NULL
struct led_classdev_flash *fled_cdev
要包装的 LED 闪光灯类设备
const struct v4l2_flash_ops *ops
V4L2 闪光灯设备操作
struct v4l2_flash_config *config
V4L2 闪光灯子设备的初始化数据
描述
创建包装给定 LED 子系统设备的 V4L2 闪光灯子设备。ops 指针由 V4L2 闪光灯框架存储。一旦此函数返回,将不保留对 config 及其内容的引用。
返回
一个有效的指针,或者,当发生错误时,返回值使用 ERR_PTR()
进行编码。使用 IS_ERR()
进行检查,并使用 PTR_ERR()
获取数值返回值。
-
struct v4l2_flash *v4l2_flash_indicator_init(struct device *dev, struct fwnode_handle *fwn, struct led_classdev *iled_cdev, struct v4l2_flash_config *config)¶
初始化 V4L2 指示器子设备
参数
struct device *dev
闪光灯设备,例如 I2C 设备
struct fwnode_handle *fwn
LED 的 fwnode_handle,如果与设备的相同,则可以为 NULL
struct led_classdev *iled_cdev
代表指示器 LED 的 LED 闪光类设备
struct v4l2_flash_config *config
V4L2 闪光灯子设备的初始化数据
描述
创建包装给定 LED 子系统设备的 V4L2 闪光灯子设备。ops 指针由 V4L2 闪光灯框架存储。一旦此函数返回,将不保留对 config 及其内容的引用。
返回
一个有效的指针,或者,当发生错误时,返回值使用 ERR_PTR()
进行编码。使用 IS_ERR()
进行检查,并使用 PTR_ERR()
获取数值返回值。
-
void v4l2_flash_release(struct v4l2_flash *v4l2_flash)¶
释放 V4L2 闪光子设备
参数
struct v4l2_flash *v4l2_flash
要释放的 V4L2 闪光子设备
描述
释放 V4L2 闪光子设备。