Lines Matching refs:hwmon

11 #include <linux/hwmon.h>
12 #include <linux/hwmon-sysfs.h>
66 static inline int input_tsireg_to_mv(struct da9052_hwmon *hwmon, int value)
68 return DIV_ROUND_CLOSEST(value * hwmon->tsiref_mv, 1023);
87 struct da9052_hwmon *hwmon = dev_get_drvdata(dev);
90 mutex_lock(&hwmon->hwmon_lock);
92 ret = da9052_enable_vddout_channel(hwmon->da9052);
96 vdd = da9052_reg_read(hwmon->da9052, DA9052_VDD_RES_REG);
102 ret = da9052_disable_vddout_channel(hwmon->da9052);
106 mutex_unlock(&hwmon->hwmon_lock);
110 da9052_disable_vddout_channel(hwmon->da9052);
112 mutex_unlock(&hwmon->hwmon_lock);
119 struct da9052_hwmon *hwmon = dev_get_drvdata(dev);
122 ret = da9052_reg_read(hwmon->da9052, DA9052_ICHG_AV_REG);
133 struct da9052_hwmon *hwmon = dev_get_drvdata(dev);
135 return sprintf(buf, "%d\n", da9052_adc_read_temp(hwmon->da9052));
141 struct da9052_hwmon *hwmon = dev_get_drvdata(dev);
144 ret = da9052_adc_manual_read(hwmon->da9052, DA9052_ADC_VBAT);
155 struct da9052_hwmon *hwmon = dev_get_drvdata(dev);
159 ret = da9052_adc_manual_read(hwmon->da9052, channel);
166 static int da9052_request_tsi_read(struct da9052_hwmon *hwmon, int channel)
185 return da9052_reg_write(hwmon->da9052, DA9052_TSI_CONT_B_REG, val);
188 static int da9052_get_tsi_result(struct da9052_hwmon *hwmon, int channel)
194 err = da9052_group_read(hwmon->da9052, DA9052_TSI_X_MSB_REG,
222 struct da9052_hwmon *hwmon = dev_get_drvdata(dev);
225 reinit_completion(&hwmon->tsidone);
227 ret = da9052_request_tsi_read(hwmon, channel);
232 if (!wait_for_completion_timeout(&hwmon->tsidone,
236 return da9052_get_tsi_result(hwmon, channel);
242 struct da9052_hwmon *hwmon = dev_get_drvdata(dev);
246 mutex_lock(&hwmon->da9052->auxadc_lock);
248 mutex_unlock(&hwmon->da9052->auxadc_lock);
253 return sprintf(buf, "%d\n", input_tsireg_to_mv(hwmon, ret));
259 struct da9052_hwmon *hwmon = dev_get_drvdata(dev);
263 tjunc = da9052_reg_read(hwmon->da9052, DA9052_TJUNC_RES_REG);
267 toffset = da9052_reg_read(hwmon->da9052, DA9052_T_OFFSET_REG);
281 struct da9052_hwmon *hwmon = dev_get_drvdata(dev);
284 ret = da9052_adc_manual_read(hwmon->da9052, DA9052_ADC_VBBAT);
302 struct da9052_hwmon *hwmon = dev_get_drvdata(dev);
307 if (!hwmon->tsi_as_adc) {
388 struct da9052_hwmon *hwmon = data;
390 complete(&hwmon->tsidone);
397 struct da9052_hwmon *hwmon;
401 hwmon = devm_kzalloc(dev, sizeof(struct da9052_hwmon), GFP_KERNEL);
402 if (!hwmon)
405 platform_set_drvdata(pdev, hwmon);
407 mutex_init(&hwmon->hwmon_lock);
408 hwmon->da9052 = dev_get_drvdata(pdev->dev.parent);
410 init_completion(&hwmon->tsidone);
412 hwmon->tsi_as_adc =
415 if (hwmon->tsi_as_adc) {
422 /* convert from microvolt (DT) to millivolt (hwmon) */
423 hwmon->tsiref_mv = tsiref_uv / 1000;
426 if (hwmon->tsiref_mv < 1800 || hwmon->tsiref_mv > 2600) {
427 dev_err(hwmon->da9052->dev, "invalid TSIREF voltage: %d",
428 hwmon->tsiref_mv);
433 da9052_reg_write(hwmon->da9052, DA9052_TSI_CONT_A_REG, 0x00);
436 da9052_reg_update(hwmon->da9052, DA9052_ADC_CONT_REG,
440 err = da9052_request_irq(hwmon->da9052, DA9052_IRQ_TSIREADY,
442 hwmon);
451 hwmon,
460 if (hwmon->tsi_as_adc)
461 da9052_free_irq(hwmon->da9052, DA9052_IRQ_TSIREADY, hwmon);
468 struct da9052_hwmon *hwmon = platform_get_drvdata(pdev);
470 if (hwmon->tsi_as_adc)
471 da9052_free_irq(hwmon->da9052, DA9052_IRQ_TSIREADY, hwmon);
478 .name = "da9052-hwmon",
487 MODULE_ALIAS("platform:da9052-hwmon");