Lines Matching refs:pvtm

307 				      struct pvtm_config *pvtm)  in rockchip_parse_pvtm_config()  argument
309 if (of_property_read_u32(np, "rockchip,pvtm-freq", &pvtm->freq)) in rockchip_parse_pvtm_config()
311 if (of_property_read_u32(np, "rockchip,pvtm-volt", &pvtm->volt)) in rockchip_parse_pvtm_config()
314 &pvtm->sample_time)) in rockchip_parse_pvtm_config()
316 if (of_property_read_u32(np, "rockchip,pvtm-ref-temp", &pvtm->ref_temp)) in rockchip_parse_pvtm_config()
319 pvtm->temp_prop, 2)) in rockchip_parse_pvtm_config()
322 &pvtm->tz_name)) { in rockchip_parse_pvtm_config()
324 &pvtm->tz_name)) in rockchip_parse_pvtm_config()
327 pvtm->tz = thermal_zone_get_zone_by_name(pvtm->tz_name); in rockchip_parse_pvtm_config()
328 if (IS_ERR(pvtm->tz)) in rockchip_parse_pvtm_config()
330 if (!pvtm->tz->ops->get_temp) in rockchip_parse_pvtm_config()
334 &pvtm->offset)) in rockchip_parse_pvtm_config()
336 pvtm->grf = syscon_regmap_lookup_by_phandle(np, "rockchip,grf"); in rockchip_parse_pvtm_config()
337 if (IS_ERR(pvtm->grf)) in rockchip_parse_pvtm_config()
341 if (of_property_read_u32_array(np, "rockchip,pvtm-ch", pvtm->ch, 2)) in rockchip_parse_pvtm_config()
343 if (pvtm->ch[0] >= PVTM_CH_MAX || pvtm->ch[1] >= PVTM_SUB_CH_MAX) in rockchip_parse_pvtm_config()
345 if (of_property_read_u32(np, "rockchip,pvtm-number", &pvtm->num)) in rockchip_parse_pvtm_config()
347 if (of_property_read_u32(np, "rockchip,pvtm-error", &pvtm->err)) in rockchip_parse_pvtm_config()
359 struct pvtm_config *pvtm; in rockchip_get_pvtm_specific_value() local
367 pvtm = kzalloc(sizeof(*pvtm), GFP_KERNEL); in rockchip_get_pvtm_specific_value()
368 if (!pvtm) in rockchip_get_pvtm_specific_value()
371 ret = rockchip_parse_pvtm_config(np, pvtm); in rockchip_get_pvtm_specific_value()
382 ret = clk_set_rate(clk, pvtm->freq * 1000); in rockchip_get_pvtm_specific_value()
388 ret = regulator_set_voltage(reg, pvtm->volt, pvtm->volt); in rockchip_get_pvtm_specific_value()
400 for (i = 0; i < pvtm->num; i++) { in rockchip_get_pvtm_specific_value()
401 cur_value = rockchip_get_pvtm_value(pvtm->ch[0], in rockchip_get_pvtm_specific_value()
402 pvtm->ch[1], in rockchip_get_pvtm_specific_value()
403 pvtm->sample_time); in rockchip_get_pvtm_specific_value()
414 if (max_value - min_value < pvtm->err) in rockchip_get_pvtm_specific_value()
417 if (!total_value || !pvtm->num) { in rockchip_get_pvtm_specific_value()
421 avg_value = total_value / pvtm->num; in rockchip_get_pvtm_specific_value()
427 pvtm->tz->ops->get_temp(pvtm->tz, &cur_temp); in rockchip_get_pvtm_specific_value()
428 diff_temp = (cur_temp / 1000 - pvtm->ref_temp); in rockchip_get_pvtm_specific_value()
430 (diff_temp < 0 ? pvtm->temp_prop[0] : pvtm->temp_prop[1]); in rockchip_get_pvtm_specific_value()
433 pvtm_value[pvtm->ch[0]][pvtm->ch[1]] = *target_value; in rockchip_get_pvtm_specific_value()
443 kfree(pvtm); in rockchip_get_pvtm_specific_value()
1044 struct pvtm_config *pvtm; in rockchip_get_pvtm_pvtpll() local
1056 pvtm = kzalloc(sizeof(*pvtm), GFP_KERNEL); in rockchip_get_pvtm_pvtpll()
1057 if (!pvtm) in rockchip_get_pvtm_pvtpll()
1060 ret = rockchip_parse_pvtm_config(np, pvtm); in rockchip_get_pvtm_pvtpll()
1079 ret = clk_set_rate(clk, pvtm->freq * 1000); in rockchip_get_pvtm_pvtpll()
1084 ret = regulator_set_voltage(reg, pvtm->volt, INT_MAX); in rockchip_get_pvtm_pvtpll()
1089 usleep_range(pvtm->sample_time, pvtm->sample_time + 100); in rockchip_get_pvtm_pvtpll()
1091 ret = regmap_read(pvtm->grf, pvtm->offset, &pvtm_value); in rockchip_get_pvtm_pvtpll()
1093 dev_err(dev, "failed to get pvtm from 0x%x\n", pvtm->offset); in rockchip_get_pvtm_pvtpll()
1096 pvtm->tz->ops->get_temp(pvtm->tz, &cur_temp); in rockchip_get_pvtm_pvtpll()
1097 diff_temp = (cur_temp / 1000 - pvtm->ref_temp); in rockchip_get_pvtm_pvtpll()
1099 prop_temp = pvtm->temp_prop[0]; in rockchip_get_pvtm_pvtpll()
1101 prop_temp = pvtm->temp_prop[1]; in rockchip_get_pvtm_pvtpll()
1115 kfree(pvtm); in rockchip_get_pvtm_pvtpll()
1126 int pvtm = 0; in rockchip_get_pvtm() local
1130 pvtm = 10 * tmp; in rockchip_get_pvtm()
1131 dev_info(dev, "pvtm = %d, from nvmem\n", pvtm); in rockchip_get_pvtm()
1132 return pvtm; in rockchip_get_pvtm()
1159 rockchip_get_pvtm_specific_value(dev, np, clk, reg, &pvtm); in rockchip_get_pvtm()
1164 return pvtm; in rockchip_get_pvtm()
1173 int pvtm, ret; in rockchip_of_get_pvtm_sel() local
1177 pvtm = rockchip_get_pvtm_pvtpll(dev, np, reg_name); in rockchip_of_get_pvtm_sel()
1179 pvtm = rockchip_get_pvtm(dev, np, reg_name); in rockchip_of_get_pvtm_sel()
1180 if (pvtm <= 0) in rockchip_of_get_pvtm_sel()
1198 ret = rockchip_get_sel(np, name, pvtm, volt_sel); in rockchip_of_get_pvtm_sel()
1213 ret = rockchip_get_sel(np, name, pvtm, scale_sel); in rockchip_of_get_pvtm_sel()