Lines Matching +full:milli +full:- +full:seconds

1 // SPDX-License-Identifier: GPL-2.0-or-later
11 #include <linux/hwmon-sysfs.h>
28 #define TMP108_TEMP_MIN_MC -50000 /* Minimum millicelcius. */
37 #define TMP108_CONF_FL 0x0800 /* Watchdog flag - TLOW */
38 #define TMP108_CONF_FH 0x1000 /* Watchdog flag - THIGH */
49 /* These bits are read-only. */
71 #define TMP108_CONVERSION_TIME_MS 30 /* in milli-seconds */
79 /* convert 12-bit TMP108 register value to milliCelsius */
85 /* convert milliCelsius to left adjusted 12-bit TMP108 register value */
100 err = regmap_read(tmp108->regmap, TMP108_REG_CONF, in tmp108_read()
121 return -EOPNOTSUPP; in tmp108_read()
127 if (time_before(jiffies, tmp108->ready_time)) { in tmp108_read()
130 return -EAGAIN; in tmp108_read()
132 err = regmap_read(tmp108->regmap, TMP108_REG_TEMP, &regval); in tmp108_read()
139 err = regmap_read(tmp108->regmap, attr == hwmon_temp_min ? in tmp108_read()
147 err = regmap_read(tmp108->regmap, TMP108_REG_CONF, &regval); in tmp108_read()
155 err = regmap_read(tmp108->regmap, TMP108_REG_CONF, &regval); in tmp108_read()
173 err = regmap_read(tmp108->regmap, attr == hwmon_temp_min_hyst ? in tmp108_read()
181 *temp -= hyst; in tmp108_read()
184 return -EOPNOTSUPP; in tmp108_read()
207 return regmap_update_bits(tmp108->regmap, in tmp108_write()
212 return -EOPNOTSUPP; in tmp108_write()
219 return regmap_write(tmp108->regmap, in tmp108_write()
226 err = regmap_read(tmp108->regmap, in tmp108_write()
233 temp -= tmp108_temp_reg_to_mC(regval); in tmp108_write()
235 temp = tmp108_temp_reg_to_mC(regval) - temp; in tmp108_write()
244 return regmap_update_bits(tmp108->regmap, TMP108_REG_CONF, in tmp108_write()
247 return -EOPNOTSUPP; in tmp108_write()
300 regmap_write(tmp108->regmap, TMP108_REG_CONF, tmp108->orig_config); in tmp108_restore_config()
328 struct device *dev = &client->dev; in tmp108_probe()
334 if (!i2c_check_functionality(client->adapter, in tmp108_probe()
338 return -ENODEV; in tmp108_probe()
343 return -ENOMEM; in tmp108_probe()
347 tmp108->regmap = devm_regmap_init_i2c(client, &tmp108_regmap_config); in tmp108_probe()
348 if (IS_ERR(tmp108->regmap)) { in tmp108_probe()
349 err = PTR_ERR(tmp108->regmap); in tmp108_probe()
354 err = regmap_read(tmp108->regmap, TMP108_REG_CONF, &config); in tmp108_probe()
359 tmp108->orig_config = config; in tmp108_probe()
368 err = regmap_write(tmp108->regmap, TMP108_REG_CONF, config); in tmp108_probe()
374 tmp108->ready_time = jiffies; in tmp108_probe()
375 if ((tmp108->orig_config & TMP108_CONF_MODE_MASK) == in tmp108_probe()
377 tmp108->ready_time += in tmp108_probe()
386 hwmon_dev = devm_hwmon_device_register_with_info(dev, client->name, in tmp108_probe()
397 return regmap_update_bits(tmp108->regmap, TMP108_REG_CONF, in tmp108_suspend()
406 err = regmap_update_bits(tmp108->regmap, TMP108_REG_CONF, in tmp108_resume()
408 tmp108->ready_time = jiffies + in tmp108_resume()