@@ -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
280281static 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
298299static 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