diff mbox series

[v2] hwmon: emc1403: Add support for EMC1442

Message ID 20231102090808.427351-1-Delphine_CC_Chiu@wiwynn.com (mailing list archive)
State Accepted
Headers show
Series [v2] hwmon: emc1403: Add support for EMC1442 | expand

Commit Message

Delphine CC Chiu Nov. 2, 2023, 9:08 a.m. UTC
Add support for EMC1442 which is compatible with EMC1403.

Signed-off-by: Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com>
---
change in v2:
Revised emc1403 to emc1402
---
 drivers/hwmon/emc1403.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Patrick Williams Nov. 2, 2023, 1:26 p.m. UTC | #1
On Thu, Nov 02, 2023 at 05:08:07PM +0800, Delphine CC Chiu wrote:

I have a datasheet for this chip with a "Revision 1.0 (10-25-10)" in the
footer.  Reviewed the change against the datasheet.

> Add support for EMC1442 which is compatible with EMC1403.
> 
> Signed-off-by: Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com>
> ---
> change in v2:
> Revised emc1403 to emc1402

> +	case 0x60:
> +		strscpy(info->type, "emc1442", I2C_NAME_SIZE);
> +		break;

Confirmed against datasheet.

Section 2.2 "Register Set Delta" specifies:
    - Product ID | 60h

>  static const unsigned short emc1403_address_list[] = {
> -	0x18, 0x1c, 0x29, 0x4c, 0x4d, 0x5c, I2C_CLIENT_END
> +	0x18, 0x1c, 0x29, 0x3c, 0x4c, 0x4d, 0x5c, I2C_CLIENT_END

Confirmed against datasheet.

Section 5.1.2 "SMBus Address and RD/WR Bit" has a table indicating that
a 22k pull-up resistor corresponds to `0011_100?` binary.

>  	{ "emc1422", emc1402 },
>  	{ "emc1423", emc1403 },
>  	{ "emc1424", emc1404 },
> +	{ "emc1442", emc1402 },

Datasheet section 2.1 is titled "Functional Delta from EMC1412 to
EMC1442", with minimal differences.  We map "emc1412" to `emc1402`, so
mapping "emc1442" to the same should be appropriate.


Reviewed-by: Patrick Williams <patrick@stwcx.xyz>
Guenter Roeck Nov. 2, 2023, 2:33 p.m. UTC | #2
On 11/2/23 02:08, Delphine CC Chiu wrote:
> Add support for EMC1442 which is compatible with EMC1403.
                                                    ^^^^^^^

EMC1402

NP, I can fix that up when applying.

> 
> Signed-off-by: Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com>
> ---
> change in v2:
> Revised emc1403 to emc1402
> ---
>   drivers/hwmon/emc1403.c | 6 +++++-
>   1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/hwmon/emc1403.c b/drivers/hwmon/emc1403.c
> index bb7c859e799d..1332e4ac078c 100644
> --- a/drivers/hwmon/emc1403.c
> +++ b/drivers/hwmon/emc1403.c
> @@ -346,6 +346,9 @@ static int emc1403_detect(struct i2c_client *client,
>   	case 0x27:
>   		strscpy(info->type, "emc1424", I2C_NAME_SIZE);
>   		break;
> +	case 0x60:
> +		strscpy(info->type, "emc1442", I2C_NAME_SIZE);
> +		break;
>   	default:
>   		return -ENODEV;
>   	}
> @@ -430,7 +433,7 @@ static int emc1403_probe(struct i2c_client *client)
>   }
>   
>   static const unsigned short emc1403_address_list[] = {
> -	0x18, 0x1c, 0x29, 0x4c, 0x4d, 0x5c, I2C_CLIENT_END
> +	0x18, 0x1c, 0x29, 0x3c, 0x4c, 0x4d, 0x5c, I2C_CLIENT_END
                           ^^^^

This also needs confirmation from someone (else) with a datasheet.

Thanks,
Guenter

>   };
>   
>   /* Last digit of chip name indicates number of channels */
> @@ -444,6 +447,7 @@ static const struct i2c_device_id emc1403_idtable[] = {
>   	{ "emc1422", emc1402 },
>   	{ "emc1423", emc1403 },
>   	{ "emc1424", emc1404 },
> +	{ "emc1442", emc1402 },
>   	{ }
>   };
>   MODULE_DEVICE_TABLE(i2c, emc1403_idtable);
Guenter Roeck Nov. 2, 2023, 2:34 p.m. UTC | #3
On 11/2/23 06:26, Patrick Williams wrote:
> On Thu, Nov 02, 2023 at 05:08:07PM +0800, Delphine CC Chiu wrote:
> 
> I have a datasheet for this chip with a "Revision 1.0 (10-25-10)" in the
> footer.  Reviewed the change against the datasheet.
> 
>> Add support for EMC1442 which is compatible with EMC1403.
>>
>> Signed-off-by: Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com>
>> ---
>> change in v2:
>> Revised emc1403 to emc1402
> 
>> +	case 0x60:
>> +		strscpy(info->type, "emc1442", I2C_NAME_SIZE);
>> +		break;
> 
> Confirmed against datasheet.
> 
> Section 2.2 "Register Set Delta" specifies:
>      - Product ID | 60h
> 
>>   static const unsigned short emc1403_address_list[] = {
>> -	0x18, 0x1c, 0x29, 0x4c, 0x4d, 0x5c, I2C_CLIENT_END
>> +	0x18, 0x1c, 0x29, 0x3c, 0x4c, 0x4d, 0x5c, I2C_CLIENT_END
> 
> Confirmed against datasheet.
> 
> Section 5.1.2 "SMBus Address and RD/WR Bit" has a table indicating that
> a 22k pull-up resistor corresponds to `0011_100?` binary.
> 
>>   	{ "emc1422", emc1402 },
>>   	{ "emc1423", emc1403 },
>>   	{ "emc1424", emc1404 },
>> +	{ "emc1442", emc1402 },
> 
> Datasheet section 2.1 is titled "Functional Delta from EMC1412 to
> EMC1442", with minimal differences.  We map "emc1412" to `emc1402`, so
> mapping "emc1442" to the same should be appropriate.
> 
> 
> Reviewed-by: Patrick Williams <patrick@stwcx.xyz>
> 
Thanks. I'll apply, and fix the description while doing so.

Guenter
diff mbox series

Patch

diff --git a/drivers/hwmon/emc1403.c b/drivers/hwmon/emc1403.c
index bb7c859e799d..1332e4ac078c 100644
--- a/drivers/hwmon/emc1403.c
+++ b/drivers/hwmon/emc1403.c
@@ -346,6 +346,9 @@  static int emc1403_detect(struct i2c_client *client,
 	case 0x27:
 		strscpy(info->type, "emc1424", I2C_NAME_SIZE);
 		break;
+	case 0x60:
+		strscpy(info->type, "emc1442", I2C_NAME_SIZE);
+		break;
 	default:
 		return -ENODEV;
 	}
@@ -430,7 +433,7 @@  static int emc1403_probe(struct i2c_client *client)
 }
 
 static const unsigned short emc1403_address_list[] = {
-	0x18, 0x1c, 0x29, 0x4c, 0x4d, 0x5c, I2C_CLIENT_END
+	0x18, 0x1c, 0x29, 0x3c, 0x4c, 0x4d, 0x5c, I2C_CLIENT_END
 };
 
 /* Last digit of chip name indicates number of channels */
@@ -444,6 +447,7 @@  static const struct i2c_device_id emc1403_idtable[] = {
 	{ "emc1422", emc1402 },
 	{ "emc1423", emc1403 },
 	{ "emc1424", emc1404 },
+	{ "emc1442", emc1402 },
 	{ }
 };
 MODULE_DEVICE_TABLE(i2c, emc1403_idtable);