rtc: nuvoton: Modify part number value
authorMia Lin <mimi05633@gmail.com>
Mon, 11 Mar 2024 01:34:05 +0000 (09:34 +0800)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Fri, 29 Mar 2024 14:59:02 +0000 (15:59 +0100)
Base on datasheet,
    the part number is corresponding to bit 0 and 1 of the part info reg.

Signed-off-by: Mia Lin <mimi05633@gmail.com>
Link: https://lore.kernel.org/r/20240311013405.3398823-2-mimi05633@gmail.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/rtc/rtc-nct3018y.c

index 076d8b99f91314ca221ee7c7477403bd94987a98..7a8b4de893b8e574c635292715161e03a9c55abe 100644 (file)
@@ -517,12 +517,15 @@ static int nct3018y_probe(struct i2c_client *client)
        if (nct3018y->part_num < 0) {
                dev_dbg(&client->dev, "Failed to read NCT3018Y_REG_PART.\n");
                return nct3018y->part_num;
-       } else if (nct3018y->part_num == NCT3018Y_REG_PART_NCT3018Y) {
-               flags = NCT3018Y_BIT_HF;
-               err = i2c_smbus_write_byte_data(client, NCT3018Y_REG_CTRL, flags);
-               if (err < 0) {
-                       dev_dbg(&client->dev, "Unable to write NCT3018Y_REG_CTRL.\n");
-                       return err;
+       } else {
+               nct3018y->part_num &= 0x03; /* Part number is corresponding to bit 0 and 1 */
+               if (nct3018y->part_num == NCT3018Y_REG_PART_NCT3018Y) {
+                       flags = NCT3018Y_BIT_HF;
+                       err = i2c_smbus_write_byte_data(client, NCT3018Y_REG_CTRL, flags);
+                       if (err < 0) {
+                               dev_dbg(&client->dev, "Unable to write NCT3018Y_REG_CTRL.\n");
+                               return err;
+                       }
                }
        }