Lines Matching refs:sen

150 				       struct sprd_thermal_sensor *sen)
172 sen->cal_slope = (thm->var_data->ideal_k * ratio) / 1000;
173 sen->cal_offset = thm->var_data->ideal_b + (dt_offset - 128) * 250;
178 static int sprd_thm_rawdata_to_temp(struct sprd_thermal_sensor *sen,
188 return sen->cal_slope * rawdata - sen->cal_offset;
191 static int sprd_thm_temp_to_rawdata(int temp, struct sprd_thermal_sensor *sen)
202 val = (temp + sen->cal_offset) / sen->cal_slope;
209 struct sprd_thermal_sensor *sen = devdata;
212 data = readl(sen->data->base + SPRD_THM_TEMP(sen->id)) &
215 *temp = sprd_thm_rawdata_to_temp(sen, data);
283 struct sprd_thermal_sensor *sen)
287 otp_rawdata = sprd_thm_temp_to_rawdata(SPRD_THM_OTP_TEMP, sen);
288 hot_rawdata = sprd_thm_temp_to_rawdata(SPRD_THM_HOT_TEMP, sen);
292 SPRD_THM_SEN_OVERHEAT_ALARM_EN(sen->id),
293 SPRD_THM_SEN_OVERHEAT_ALARM_EN(sen->id));
296 sprd_thm_update_bits(thm->base + SPRD_THM_THRES(sen->id),
302 sprd_thm_update_bits(thm->base + SPRD_THM_CTL, SPRD_THM_SEN(sen->id),
303 SPRD_THM_SEN(sen->id));
321 static void sprd_thm_toggle_sensor(struct sprd_thermal_sensor *sen, bool on)
323 struct thermal_zone_device *tzd = sen->tzd;
336 struct sprd_thermal_sensor *sen;
388 sen = devm_kzalloc(&pdev->dev, sizeof(*sen), GFP_KERNEL);
389 if (!sen) {
394 sen->data = thm;
395 sen->dev = &pdev->dev;
397 ret = of_property_read_u32(sen_child, "reg", &sen->id);
403 ret = sprd_thm_sensor_calibration(sen_child, thm, sen);
409 sprd_thm_sensor_init(thm, sen);
411 sen->tzd = devm_thermal_zone_of_sensor_register(sen->dev,
412 sen->id,
413 sen,
415 if (IS_ERR(sen->tzd)) {
417 sen->id);
418 ret = PTR_ERR(sen->tzd);
422 thm->sensor[sen->id] = sen;