On Thu, 14 Nov 2024 14:16:56 +0100 Cibil <cibil.pankiras@xxxxxxxx> wrote: > From: Cibil Pankiras <cibil.pankiras@xxxxxxxx> > > According to the datasheet, the chip requires a reset before any data > can be read. This commit moves the device identification logic to > occur after the reset to ensure proper initialization. > > Cc: Kevin Tsai <ktsai@xxxxxxxxxxxxxxxx> > Signed-off-by: Cibil Pankiras <cibil.pankiras@xxxxxxxx> Hi Cibil, If you are resending for any reason make sure you add [RESEND to the patch title and say why under the --- That let's people know it is the same code if they have multiple copies. Thanks, Jonathan > --- > drivers/iio/light/cm3232.c | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > diff --git a/drivers/iio/light/cm3232.c b/drivers/iio/light/cm3232.c > index 2c80a0535d2c..db33671c448c 100644 > --- a/drivers/iio/light/cm3232.c > +++ b/drivers/iio/light/cm3232.c > @@ -89,6 +89,15 @@ static int cm3232_reg_init(struct cm3232_chip *chip) > > chip->als_info = &cm3232_als_info_default; > > + /* Disable and reset device */ > + chip->regs_cmd = CM3232_CMD_ALS_DISABLE | CM3232_CMD_ALS_RESET; > + ret = i2c_smbus_write_byte_data(client, CM3232_REG_ADDR_CMD, > + chip->regs_cmd); > + if (ret < 0) { > + dev_err(&chip->client->dev, "Error writing reg_cmd\n"); > + return ret; > + } > + > /* Identify device */ > ret = i2c_smbus_read_word_data(client, CM3232_REG_ADDR_ID); > if (ret < 0) { > @@ -99,15 +108,6 @@ static int cm3232_reg_init(struct cm3232_chip *chip) > if ((ret & 0xFF) != chip->als_info->hw_id) > return -ENODEV; > > - /* Disable and reset device */ > - chip->regs_cmd = CM3232_CMD_ALS_DISABLE | CM3232_CMD_ALS_RESET; > - ret = i2c_smbus_write_byte_data(client, CM3232_REG_ADDR_CMD, > - chip->regs_cmd); > - if (ret < 0) { > - dev_err(&chip->client->dev, "Error writing reg_cmd\n"); > - return ret; > - } > - > /* Register default value */ > chip->regs_cmd = chip->als_info->regs_cmd_default; >