Skip to content

Commit 7f5b437

Browse files
drivers: video: mt9m114: update mt9m114_modify_reg to any register length
Update mt9m114_modify_reg to support 8, 16 and 32 bits registers Signed-off-by: Jeronimo Agullo <jeronimoagullo97@gmail.com>
1 parent 4488ed1 commit 7f5b437

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

drivers/video/mt9m114.c

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -261,20 +261,21 @@ static int mt9m114_read_reg(const struct device *dev, uint16_t reg_addr, uint8_t
261261
return 0;
262262
}
263263

264-
static int mt9m114_modify_reg(const struct device *dev, const uint16_t addr, const uint8_t mask,
265-
const uint8_t val)
264+
static int mt9m114_modify_reg(const struct device *dev, const uint16_t addr,
265+
uint8_t reg_size, const uint32_t mask, const uint32_t val)
266266
{
267-
uint8_t oldVal;
268-
uint8_t newVal;
269-
int ret = mt9m114_read_reg(dev, addr, sizeof(oldVal), &oldVal);
267+
uint32_t oldVal = 0;
268+
uint32_t newVal = 0;
269+
270+
int ret = mt9m114_read_reg(dev, addr, reg_size, &oldVal);
270271

271272
if (ret) {
272273
return ret;
273274
}
274275

275276
newVal = (oldVal & ~mask) | (val & mask);
276277

277-
return mt9m114_write_reg(dev, addr, sizeof(newVal), &newVal);
278+
return mt9m114_write_reg(dev, addr, reg_size, &newVal);
278279
}
279280

280281
static int mt9m114_write_all(const struct device *dev, struct mt9m114_reg *reg)
@@ -297,15 +298,15 @@ static int mt9m114_write_all(const struct device *dev, struct mt9m114_reg *reg)
297298

298299
static int mt9m114_software_reset(const struct device *dev)
299300
{
300-
int ret = mt9m114_modify_reg(dev, MT9M114_RST_AND_MISC_CONTROL, 0x01, 0x01);
301+
int ret = mt9m114_modify_reg(dev, MT9M114_RST_AND_MISC_CONTROL, 2, 0x01, 0x01);
301302

302303
if (ret) {
303304
return ret;
304305
}
305306

306307
k_sleep(K_MSEC(1));
307308

308-
ret = mt9m114_modify_reg(dev, MT9M114_RST_AND_MISC_CONTROL, 0x01, 0x00);
309+
ret = mt9m114_modify_reg(dev, MT9M114_RST_AND_MISC_CONTROL, 2, 0x01, 0x00);
309310
if (ret) {
310311
return ret;
311312
}

0 commit comments

Comments
 (0)