Re: [PATCH 02/10] mfd: rt5033: Fix chip revision readout

From: Jakob Hauser
Date: Mon Mar 06 2023 - 17:57:13 EST


Hi Lee,

On 06.03.23 10:18, Lee Jones wrote:
On Sun, 05 Mar 2023, Jakob Hauser wrote:

Hi Lee,

On 05.03.23 11:47, Lee Jones wrote:
On Tue, 28 Feb 2023, Jakob Hauser wrote:

After reading the data from the DEVICE_ID register, mask 0x0f needs to be
applied to extract the revision of the chip [1].

The other part of the DEVICE_ID register, mask 0xf0, is a vendor identification
code. That's how it is set up at similar products of Richtek, e.g. RT9455 [2]
page 21 top.

[1] https://github.com/msm8916-mainline/linux-downstream/blob/GT-I9195I/drivers/mfd/rt5033_core.c#L484
[2] https://www.richtek.com/assets/product_file/RT9455/DS9455-00.pdf

Signed-off-by: Jakob Hauser <jahau@xxxxxxxxxxxxxx>
---
drivers/mfd/rt5033.c | 8 +++++---
include/linux/mfd/rt5033-private.h | 4 ++++
2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/mfd/rt5033.c b/drivers/mfd/rt5033.c
index 8029d444b794..d32467174cb5 100644
--- a/drivers/mfd/rt5033.c
+++ b/drivers/mfd/rt5033.c
@@ -55,7 +55,8 @@ static const struct regmap_config rt5033_regmap_config = {
static int rt5033_i2c_probe(struct i2c_client *i2c)
{
struct rt5033_dev *rt5033;
- unsigned int dev_id;
+ unsigned int data;

In terms of nomenclature, this is a regression.

'data' is a terrible variable name. Why not keep it as-is?

While not having a datasheet for RT5033 available, in similar products like
RT9455 the register is called "Device ID", the first part of that is
"VENDOR_ID" and the second part "CHIP_REV", [1] page 23 top. Or in RT5036
preliminary data sheet the register is called "ID", the first part
"VENDOR_ID" and the second part "CHIP_REV_ID", [2] page 27 top.

I wanted to avoid confusion between "dev_id" and "chip_rev". Therefore in
the patch it's written as getting some "data" from the register and extract
"chip_rev" from that data.

I could change it to "reg_data"? Or something in that direction? I still
think that getting "chip_rev" out of "dev_id" would be confusing.

You're reading from a register called RT5033_REG_DEVICE_ID. I don't see
any reason why the variable you read into can't reflect that.

OK, I'll use "dev_id" and "chip_rev" for the variable names.

...

Kind regards,
Jakob