Lines Matching refs:pv

38 	struct wf_ad7417_priv *pv = sr->priv;  in wf_ad7417_temp_get()  local
44 mutex_lock(&pv->lock); in wf_ad7417_temp_get()
48 rc = i2c_master_send(pv->i2c, buf, 1); in wf_ad7417_temp_get()
51 rc = i2c_master_recv(pv->i2c, buf, 2); in wf_ad7417_temp_get()
61 mutex_unlock(&pv->lock); in wf_ad7417_temp_get()
65 mutex_unlock(&pv->lock); in wf_ad7417_temp_get()
79 static void wf_ad7417_adc_convert(struct wf_ad7417_priv *pv, in wf_ad7417_adc_convert() argument
84 *value = (raw * (s32)pv->mpu->mdiode + in wf_ad7417_adc_convert()
85 ((s32)pv->mpu->bdiode << 12)) >> 2; in wf_ad7417_adc_convert()
101 struct wf_ad7417_priv *pv = sr->priv; in wf_ad7417_adc_get() local
102 int chan = sr - pv->sensors; in wf_ad7417_adc_get()
108 mutex_lock(&pv->lock); in wf_ad7417_adc_get()
112 buf[1] = (pv->config & 0x1f) | (chan << 5); in wf_ad7417_adc_get()
113 rc = i2c_master_send(pv->i2c, buf, 2); in wf_ad7417_adc_get()
122 rc = i2c_master_send(pv->i2c, buf, 1); in wf_ad7417_adc_get()
127 rc = i2c_master_recv(pv->i2c, buf, 2); in wf_ad7417_adc_get()
133 wf_ad7417_adc_convert(pv, chan, raw, value); in wf_ad7417_adc_get()
135 dev_vdbg(&pv->i2c->dev, "ADC chan %d [%s]" in wf_ad7417_adc_get()
139 mutex_unlock(&pv->lock); in wf_ad7417_adc_get()
143 dev_dbg(&pv->i2c->dev, in wf_ad7417_adc_get()
148 mutex_unlock(&pv->lock); in wf_ad7417_adc_get()
154 struct wf_ad7417_priv *pv = container_of(ref, in wf_ad7417_release() local
156 kfree(pv); in wf_ad7417_release()
161 struct wf_ad7417_priv *pv = sr->priv; in wf_ad7417_sensor_release() local
164 kref_put(&pv->ref, wf_ad7417_release); in wf_ad7417_sensor_release()
179 static void wf_ad7417_add_sensor(struct wf_ad7417_priv *pv, in wf_ad7417_add_sensor() argument
183 pv->sensors[index].name = kasprintf(GFP_KERNEL, "%s-%d", name, pv->cpu); in wf_ad7417_add_sensor()
184 pv->sensors[index].priv = pv; in wf_ad7417_add_sensor()
185 pv->sensors[index].ops = ops; in wf_ad7417_add_sensor()
186 if (!wf_register_sensor(&pv->sensors[index])) in wf_ad7417_add_sensor()
187 kref_get(&pv->ref); in wf_ad7417_add_sensor()
190 static void wf_ad7417_init_chip(struct wf_ad7417_priv *pv) in wf_ad7417_init_chip() argument
206 i2c_master_send(pv->i2c, buf, 2); in wf_ad7417_init_chip()
210 rc = i2c_master_send(pv->i2c, buf, 1); in wf_ad7417_init_chip()
212 rc = i2c_master_recv(pv->i2c, buf, 1); in wf_ad7417_init_chip()
216 dev_dbg(&pv->i2c->dev, "ADC config reg: %02x\n", in wf_ad7417_init_chip()
223 rc = i2c_master_send(pv->i2c, buf, 2); in wf_ad7417_init_chip()
227 dev_err(&pv->i2c->dev, "Error reading ADC config\n"); in wf_ad7417_init_chip()
229 pv->config = config; in wf_ad7417_init_chip()
234 struct wf_ad7417_priv *pv; in wf_ad7417_probe() local
263 pv = kzalloc(sizeof(struct wf_ad7417_priv), GFP_KERNEL); in wf_ad7417_probe()
264 if (pv == NULL) in wf_ad7417_probe()
267 kref_init(&pv->ref); in wf_ad7417_probe()
268 mutex_init(&pv->lock); in wf_ad7417_probe()
269 pv->i2c = client; in wf_ad7417_probe()
270 pv->cpu = cpu_nr; in wf_ad7417_probe()
271 pv->mpu = mpu; in wf_ad7417_probe()
272 dev_set_drvdata(&client->dev, pv); in wf_ad7417_probe()
275 wf_ad7417_init_chip(pv); in wf_ad7417_probe()
282 wf_ad7417_add_sensor(pv, 0, "cpu-amb-temp", &wf_ad7417_temp_ops); in wf_ad7417_probe()
283 wf_ad7417_add_sensor(pv, 1, "cpu-diode-temp", &wf_ad7417_adc_ops); in wf_ad7417_probe()
284 wf_ad7417_add_sensor(pv, 2, "cpu-12v-current", &wf_ad7417_adc_ops); in wf_ad7417_probe()
285 wf_ad7417_add_sensor(pv, 3, "cpu-voltage", &wf_ad7417_adc_ops); in wf_ad7417_probe()
286 wf_ad7417_add_sensor(pv, 4, "cpu-current", &wf_ad7417_adc_ops); in wf_ad7417_probe()
293 struct wf_ad7417_priv *pv = dev_get_drvdata(&client->dev); in wf_ad7417_remove() local
297 pv->i2c = NULL; in wf_ad7417_remove()
301 wf_unregister_sensor(&pv->sensors[i]); in wf_ad7417_remove()
303 kref_put(&pv->ref, wf_ad7417_release); in wf_ad7417_remove()