Lines Matching +full:reg +full:- +full:names
55 u32 reg; /* index in SMU */ member
83 return -EIO; in smu_read_adc()
96 rc = smu_read_adc(ads->reg, &val); in smu_cputemp_get()
104 scaled = (s64)(((u64)val) * (u64)cpudiode->m_value); in smu_cputemp_get()
106 scaled += ((s64)cpudiode->b_value) << 9; in smu_cputemp_get()
118 rc = smu_read_adc(ads->reg, &val); in smu_cpuamp_get()
126 scaled = (s32)(val * (u32)cpuvcp->curr_scale); in smu_cpuamp_get()
127 scaled += (s32)cpuvcp->curr_offset; in smu_cpuamp_get()
139 rc = smu_read_adc(ads->reg, &val); in smu_cpuvolt_get()
147 scaled = (s32)(val * (u32)cpuvcp->volt_scale); in smu_cpuvolt_get()
148 scaled += (s32)cpuvcp->volt_offset; in smu_cpuvolt_get()
160 rc = smu_read_adc(ads->reg, &val); in smu_slotspow_get()
168 scaled = (s32)(val * (u32)slotspow->pow_scale); in smu_slotspow_get()
169 scaled += (s32)slotspow->pow_offset; in smu_slotspow_get()
213 * properties, while Darwin uses the sensor-id's. in smu_ads_create()
216 * the names and locations consistents so I'll stick with the names in smu_ads_create()
219 if (!strcmp(c, "temp-sensor") && in smu_ads_create()
220 !strcmp(l, "CPU T-Diode")) { in smu_ads_create()
221 ads->sens.ops = &smu_cputemp_ops; in smu_ads_create()
222 ads->sens.name = "cpu-temp"; in smu_ads_create()
228 } else if (!strcmp(c, "current-sensor") && in smu_ads_create()
230 ads->sens.ops = &smu_cpuamp_ops; in smu_ads_create()
231 ads->sens.name = "cpu-current"; in smu_ads_create()
237 } else if (!strcmp(c, "voltage-sensor") && in smu_ads_create()
239 ads->sens.ops = &smu_cpuvolt_ops; in smu_ads_create()
240 ads->sens.name = "cpu-voltage"; in smu_ads_create()
246 } else if (!strcmp(c, "power-sensor") && in smu_ads_create()
248 ads->sens.ops = &smu_slotspow_ops; in smu_ads_create()
249 ads->sens.name = "slots-power"; in smu_ads_create()
258 v = of_get_property(node, "reg", NULL); in smu_ads_create()
261 ads->reg = *v; in smu_ads_create()
263 if (wf_register_sensor(&ads->sens)) in smu_ads_create()
291 if (pow->volts) in smu_cpu_power_release()
292 wf_put_sensor(pow->volts); in smu_cpu_power_release()
293 if (pow->amps) in smu_cpu_power_release()
294 wf_put_sensor(pow->amps); in smu_cpu_power_release()
305 rc = pow->amps->ops->get_value(pow->amps, &s); in smu_cpu_power_get()
309 if (pow->fake_volts) { in smu_cpu_power_get()
310 *value = amps * 12 - 0x30000; in smu_cpu_power_get()
314 rc = pow->volts->ops->get_value(pow->volts, &volts); in smu_cpu_power_get()
319 if (!pow->quadratic) { in smu_cpu_power_get()
324 tmpa = ((u64)cpuvcp->power_quads[0]) * tmps; in smu_cpu_power_get()
325 tmpb = ((u64)cpuvcp->power_quads[1]) * ((u64)power); in smu_cpu_power_get()
326 *value = (tmpa >> 28) + (tmpb >> 28) + (cpuvcp->power_quads[2] >> 12); in smu_cpu_power_get()
346 pow->sens.ops = &smu_cpu_power_ops; in smu_cpu_power_create()
347 pow->sens.name = "cpu-power"; in smu_cpu_power_create()
350 pow->volts = volts; in smu_cpu_power_create()
352 pow->amps = amps; in smu_cpu_power_create()
358 pow->fake_volts = 1; in smu_cpu_power_create()
360 pow->fake_volts = 0; in smu_cpu_power_create()
370 pow->quadratic = 1; in smu_cpu_power_create()
373 pow->quadratic = 0; in smu_cpu_power_create()
375 if (wf_register_sensor(&pow->sens)) in smu_cpu_power_create()
392 cpuvcp_version = hdr->version; in smu_fetch_param_partitions()
417 return -ENODEV; in smu_sensors_init()
424 return -ENODEV; in smu_sensors_init()
429 if (!strcmp(sensors->name, "sensors")) in smu_sensors_init()
442 list_add(&ads->link, &smu_ads); in smu_sensors_init()
444 if (!strcmp(ads->sens.name, "cpu-voltage")) in smu_sensors_init()
446 else if (!strcmp(ads->sens.name, "cpu-current")) in smu_sensors_init()
454 smu_cpu_power = smu_cpu_power_create(&volt_sensor->sens, in smu_sensors_init()
455 &curr_sensor->sens); in smu_sensors_init()
466 wf_unregister_sensor(&smu_cpu_power->sens); in smu_sensors_exit()
471 list_del(&ads->link); in smu_sensors_exit()
472 wf_unregister_sensor(&ads->sens); in smu_sensors_exit()