diff --git a/drivers/i2c/chips/ds1682.c b/drivers/i2c/chips/ds1682.c
index 5879f0f25495ae6fe7f0fc04b3dfd4237a95e5ac..9e94542c18a2bc57abd22d05c17c0b04955fe7c3 100644
--- a/drivers/i2c/chips/ds1682.c
+++ b/drivers/i2c/chips/ds1682.c
@@ -75,7 +75,8 @@ static ssize_t ds1682_show(struct device *dev, struct device_attribute *attr,
 	/* Special case: the 32 bit regs are time values with 1/4s
 	 * resolution, scale them up to milliseconds */
 	if (sattr->nr == 4)
-		return sprintf(buf, "%llu\n", ((u64) le32_to_cpu(val)) * 250);
+		return sprintf(buf, "%llu\n",
+			((unsigned long long)le32_to_cpu(val)) * 250);
 
 	/* Format the output string and return # of bytes */
 	return sprintf(buf, "%li\n", (long)le32_to_cpu(val));