2.24. V4L2 CCI kAPI¶
-
struct cci_reg_sequence¶
CCI 写入序列中的单个写入
定义:
struct cci_reg_sequence {
u32 reg;
u64 val;
};
成员
reg
寄存器地址,使用 CCI_REG#() 宏来编码寄存器宽度
val
寄存器值
描述
写入序列的寄存器/值对。
-
int cci_read(struct regmap *map, u32 reg, u64 *val, int *err)¶
从单个 CCI 寄存器读取值
参数
struct regmap *map
要从中读取的寄存器映射
u32 reg
要读取的寄存器地址,使用 CCI_REG#() 宏来编码寄存器宽度
u64 *val
指向存储读取值的指针
int *err
可选指针,用于存储错误,如果设置了先前的错误,则将跳过读取
返回值
成功时返回 0
,失败时返回负错误代码。
-
int cci_write(struct regmap *map, u32 reg, u64 val, int *err)¶
将值写入单个 CCI 寄存器
参数
struct regmap *map
要写入的寄存器映射
u32 reg
要写入的寄存器地址,使用 CCI_REG#() 宏来编码寄存器宽度
u64 val
要写入的值
int *err
可选指针,用于存储错误,如果设置了先前的错误,则将跳过写入
返回值
成功时返回 0
,失败时返回负错误代码。
-
int cci_update_bits(struct regmap *map, u32 reg, u64 mask, u64 val, int *err)¶
在单个 CCI 寄存器上执行读/修改/写循环
参数
struct regmap *map
要更新的寄存器映射
u32 reg
要更新的寄存器地址,使用 CCI_REG#() 宏来编码寄存器宽度
u64 mask
要更改的位掩码
u64 val
位掩码的新值
int *err
可选指针,用于存储错误,如果设置了先前的错误,则将跳过更新
描述
请注意,这使用读-修改-写来更新位,不能保证与其他 cci_*() 寄存器访问函数相关的原子性。
返回值
成功时返回 0
,失败时返回负错误代码。
-
int cci_multi_reg_write(struct regmap *map, const struct cci_reg_sequence *regs, unsigned int num_regs, int *err)¶
将多个寄存器写入设备
参数
struct regmap *map
要写入的寄存器映射
const struct cci_reg_sequence *regs
包含要写入的寄存器地址-值对的结构数组,寄存器地址使用 CCI_REG#() 宏来编码寄存器宽度
unsigned int num_regs
要写入的寄存器数量
int *err
可选指针,用于存储错误,如果设置了先前的错误,则将跳过写入
描述
将多个寄存器写入设备,其中寄存器-值对集以任何顺序提供,可能并非全部在单个范围内。
必须使用 CCI_REG#() 宏来编码寄存器宽度。
对于仅具有 8 位宽写入的寄存器地址-值对的原始列表,可以使用 regmap_multi_reg_write()。
返回值
成功时返回 0
,失败时返回负错误代码。
-
struct regmap *devm_cci_regmap_init_i2c(struct i2c_client *client, int reg_addr_bits)¶
创建 regmap 以与 cci_*() 寄存器访问函数一起使用
参数
struct i2c_client *client
要为其创建 regmap 的 i2c_client
int reg_addr_bits
要使用的寄存器地址宽度(8 或 16)
描述
请注意,创建的 regmap 的内存由 devm() 管理,并绑定到客户端。
返回值
成功时返回 0
,失败时返回负错误代码。