switch (config->reg_bits + map->reg_shift) {
...
case 7:
switch (config->val_bits) {
case 9:
map->format.format_write = regmap_format_7_9_write;
break;
然後
static void regmap_format_7_9_write(struct regmap *map,
unsigned int reg, unsigned int val)
{
__be16 *out = map->work_buf;
*out = cpu_to_be16((reg << 9) | val);
}
所以wm8974 的 code:
static const struct regmap_config wm8974_regmap = {
.reg_bits = 7,
.val_bits = 9,
的確可以送出 follow wm8974 奇怪 protocol 的格式。
沒有留言:
張貼留言