From: Jonathan Cameron <jic23@kernel.org>
To: Cibil Pankiras <cibil.pankiras@aerq.com>
Cc: linux-iio@vger.kernel.org, Kevin Tsai <ktsai@capellamicro.com>
Subject: Re: [PATCH] iio: light: cm3232: Reset before reading HW ID
Date: Sun, 24 Nov 2024 12:58:18 +0000 [thread overview]
Message-ID: <20241124125818.1161a85b@jic23-huawei> (raw)
In-Reply-To: <20241114091323.7415-1-cibil.pankiras@aerq.com>
On Thu, 14 Nov 2024 10:13:23 +0100
Cibil Pankiras <cibil.pankiras@aerq.com> wrote:
> 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@capellamicro.com>
> Signed-off-by: Cibil Pankiras <cibil.pankiras@aerq.com>
Hi Cibil,
This is an interesting corner, because if the ID register isn't going
to match, chances are that write just wrote wrong data to something else.
Ah well, the firmware should be correct so I'm not sure I care about
that change.
Applied but to the togreg branch of iio.git, not as a fix because
it does make me a little nervous and I'd like to not rush it in!
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 b6288dd25bbf..5b00ad2a014e 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;
>
next prev parent reply other threads:[~2024-11-24 12:58 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-14 9:13 [PATCH] iio: light: cm3232: Reset before reading HW ID Cibil Pankiras
2024-11-24 12:58 ` Jonathan Cameron [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-11-14 13:16 Cibil
2024-11-24 12:59 ` Jonathan Cameron
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241124125818.1161a85b@jic23-huawei \
--to=jic23@kernel.org \
--cc=cibil.pankiras@aerq.com \
--cc=ktsai@capellamicro.com \
--cc=linux-iio@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox