2.2.17 V4L2 flash functions and data structures

struct v4l2_flash_ctrl_data
闪光灯控制初始化数据,根据v4l2_flash_config中LED闪光灯驱动程序声明的特性进行填充。
定义

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 brightness);
};

成员
external_strobe_set:通过硬件引脚状态断言来设置闪光灯的 strobe 功能。
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的非闪光灯 strobe 约束条件。
flash_faults:闪光灯类设备可报告的闪光灯故障的位掩码;相应的 LED_FAULT* 位定义在头文件 <linux/led-class-flash.h> 中可用。
has_external_strobe:外部 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 闪光灯类设备相关联的指示灯类设备。
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 闪光灯类设备
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 闪光灯子设备。通过此函数,可以释放已经初始化的 V4L2 闪光灯子设备。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值