static int omap_read_temp(void *private_data) { struct scm *scm_ptr = private_data; int temp; temp = omap4460plus_scm_read_temp(scm_ptr, 0); return temp; }
static int read_temp(struct device *dev, struct device_attribute *devattr, char *buf) { struct temp_sensor_hwmon *tsh = dev_get_drvdata(dev); struct platform_device *pdev = container_of(dev, struct platform_device, dev); int id = pdev->id; int temp; temp = omap4460plus_scm_read_temp(tsh->scm_ptr, id); return sprintf(buf, "%d\n", temp); }
static int omap_report_temp(struct thermal_dev *tdev) { struct platform_device *pdev = to_platform_device(tdev->dev); struct scm *scm_ptr = platform_get_drvdata(pdev); int id = tdev->sen_id; scm_ptr->therm_fw[id]->current_temp = omap4460plus_scm_read_temp(scm_ptr, id); if (scm_ptr->therm_fw[id]->current_temp != -EINVAL) { thermal_sensor_set_temp(scm_ptr->therm_fw[id]); kobject_uevent(&scm_ptr->tsh_ptr[id].pdev->dev.kobj, KOBJ_CHANGE); } return scm_ptr->therm_fw[id]->current_temp; }