Lines Matching refs:data

200 	struct g762_data *data = dev_get_drvdata(dev);  in g762_update_client()  local
201 struct i2c_client *client = data->client; in g762_update_client()
204 mutex_lock(&data->update_lock); in g762_update_client()
205 if (time_before(jiffies, data->last_updated + G762_UPDATE_INTERVAL) && in g762_update_client()
206 likely(data->valid)) in g762_update_client()
212 data->set_cnt = ret; in g762_update_client()
217 data->act_cnt = ret; in g762_update_client()
222 data->fan_sta = ret; in g762_update_client()
227 data->set_out = ret; in g762_update_client()
232 data->fan_cmd1 = ret; in g762_update_client()
237 data->fan_cmd2 = ret; in g762_update_client()
239 data->last_updated = jiffies; in g762_update_client()
240 data->valid = true; in g762_update_client()
242 mutex_unlock(&data->update_lock); in g762_update_client()
245 data = ERR_PTR(ret); in g762_update_client()
247 return data; in g762_update_client()
260 struct g762_data *data = dev_get_drvdata(dev); in do_set_clk_freq() local
267 data->clk_freq = val; in do_set_clk_freq()
275 struct g762_data *data = g762_update_client(dev); in do_set_pwm_mode() local
278 if (IS_ERR(data)) in do_set_pwm_mode()
279 return PTR_ERR(data); in do_set_pwm_mode()
281 mutex_lock(&data->update_lock); in do_set_pwm_mode()
284 data->fan_cmd1 |= G762_REG_FAN_CMD1_OUT_MODE; in do_set_pwm_mode()
287 data->fan_cmd1 &= ~G762_REG_FAN_CMD1_OUT_MODE; in do_set_pwm_mode()
293 ret = i2c_smbus_write_byte_data(data->client, G762_REG_FAN_CMD1, in do_set_pwm_mode()
294 data->fan_cmd1); in do_set_pwm_mode()
295 data->valid = false; in do_set_pwm_mode()
297 mutex_unlock(&data->update_lock); in do_set_pwm_mode()
305 struct g762_data *data = g762_update_client(dev); in do_set_fan_div() local
308 if (IS_ERR(data)) in do_set_fan_div()
309 return PTR_ERR(data); in do_set_fan_div()
311 mutex_lock(&data->update_lock); in do_set_fan_div()
314 data->fan_cmd1 &= ~G762_REG_FAN_CMD1_CLK_DIV_ID0; in do_set_fan_div()
315 data->fan_cmd1 &= ~G762_REG_FAN_CMD1_CLK_DIV_ID1; in do_set_fan_div()
318 data->fan_cmd1 |= G762_REG_FAN_CMD1_CLK_DIV_ID0; in do_set_fan_div()
319 data->fan_cmd1 &= ~G762_REG_FAN_CMD1_CLK_DIV_ID1; in do_set_fan_div()
322 data->fan_cmd1 &= ~G762_REG_FAN_CMD1_CLK_DIV_ID0; in do_set_fan_div()
323 data->fan_cmd1 |= G762_REG_FAN_CMD1_CLK_DIV_ID1; in do_set_fan_div()
326 data->fan_cmd1 |= G762_REG_FAN_CMD1_CLK_DIV_ID0; in do_set_fan_div()
327 data->fan_cmd1 |= G762_REG_FAN_CMD1_CLK_DIV_ID1; in do_set_fan_div()
333 ret = i2c_smbus_write_byte_data(data->client, G762_REG_FAN_CMD1, in do_set_fan_div()
334 data->fan_cmd1); in do_set_fan_div()
335 data->valid = false; in do_set_fan_div()
337 mutex_unlock(&data->update_lock); in do_set_fan_div()
345 struct g762_data *data = g762_update_client(dev); in do_set_fan_gear_mode() local
348 if (IS_ERR(data)) in do_set_fan_gear_mode()
349 return PTR_ERR(data); in do_set_fan_gear_mode()
351 mutex_lock(&data->update_lock); in do_set_fan_gear_mode()
354 data->fan_cmd2 &= ~G762_REG_FAN_CMD2_GEAR_MODE_0; in do_set_fan_gear_mode()
355 data->fan_cmd2 &= ~G762_REG_FAN_CMD2_GEAR_MODE_1; in do_set_fan_gear_mode()
358 data->fan_cmd2 |= G762_REG_FAN_CMD2_GEAR_MODE_0; in do_set_fan_gear_mode()
359 data->fan_cmd2 &= ~G762_REG_FAN_CMD2_GEAR_MODE_1; in do_set_fan_gear_mode()
362 data->fan_cmd2 &= ~G762_REG_FAN_CMD2_GEAR_MODE_0; in do_set_fan_gear_mode()
363 data->fan_cmd2 |= G762_REG_FAN_CMD2_GEAR_MODE_1; in do_set_fan_gear_mode()
369 ret = i2c_smbus_write_byte_data(data->client, G762_REG_FAN_CMD2, in do_set_fan_gear_mode()
370 data->fan_cmd2); in do_set_fan_gear_mode()
371 data->valid = false; in do_set_fan_gear_mode()
373 mutex_unlock(&data->update_lock); in do_set_fan_gear_mode()
381 struct g762_data *data = g762_update_client(dev); in do_set_fan_pulses() local
384 if (IS_ERR(data)) in do_set_fan_pulses()
385 return PTR_ERR(data); in do_set_fan_pulses()
387 mutex_lock(&data->update_lock); in do_set_fan_pulses()
390 data->fan_cmd1 &= ~G762_REG_FAN_CMD1_PULSE_PER_REV; in do_set_fan_pulses()
393 data->fan_cmd1 |= G762_REG_FAN_CMD1_PULSE_PER_REV; in do_set_fan_pulses()
399 ret = i2c_smbus_write_byte_data(data->client, G762_REG_FAN_CMD1, in do_set_fan_pulses()
400 data->fan_cmd1); in do_set_fan_pulses()
401 data->valid = false; in do_set_fan_pulses()
403 mutex_unlock(&data->update_lock); in do_set_fan_pulses()
411 struct g762_data *data = g762_update_client(dev); in do_set_pwm_enable() local
414 if (IS_ERR(data)) in do_set_pwm_enable()
415 return PTR_ERR(data); in do_set_pwm_enable()
417 mutex_lock(&data->update_lock); in do_set_pwm_enable()
420 data->fan_cmd1 |= G762_REG_FAN_CMD1_FAN_MODE; in do_set_pwm_enable()
423 data->fan_cmd1 &= ~G762_REG_FAN_CMD1_FAN_MODE; in do_set_pwm_enable()
431 if (data->set_cnt == 0xff) in do_set_pwm_enable()
432 i2c_smbus_write_byte_data(data->client, in do_set_pwm_enable()
440 ret = i2c_smbus_write_byte_data(data->client, G762_REG_FAN_CMD1, in do_set_pwm_enable()
441 data->fan_cmd1); in do_set_pwm_enable()
442 data->valid = false; in do_set_pwm_enable()
444 mutex_unlock(&data->update_lock); in do_set_pwm_enable()
452 struct g762_data *data = g762_update_client(dev); in do_set_pwm_polarity() local
455 if (IS_ERR(data)) in do_set_pwm_polarity()
456 return PTR_ERR(data); in do_set_pwm_polarity()
458 mutex_lock(&data->update_lock); in do_set_pwm_polarity()
461 data->fan_cmd1 &= ~G762_REG_FAN_CMD1_PWM_POLARITY; in do_set_pwm_polarity()
464 data->fan_cmd1 |= G762_REG_FAN_CMD1_PWM_POLARITY; in do_set_pwm_polarity()
470 ret = i2c_smbus_write_byte_data(data->client, G762_REG_FAN_CMD1, in do_set_pwm_polarity()
471 data->fan_cmd1); in do_set_pwm_polarity()
472 data->valid = false; in do_set_pwm_polarity()
474 mutex_unlock(&data->update_lock); in do_set_pwm_polarity()
485 struct g762_data *data = dev_get_drvdata(dev); in do_set_pwm() local
486 struct i2c_client *client = data->client; in do_set_pwm()
492 mutex_lock(&data->update_lock); in do_set_pwm()
494 data->valid = false; in do_set_pwm()
495 mutex_unlock(&data->update_lock); in do_set_pwm()
506 struct g762_data *data = g762_update_client(dev); in do_set_fan_target() local
509 if (IS_ERR(data)) in do_set_fan_target()
510 return PTR_ERR(data); in do_set_fan_target()
512 mutex_lock(&data->update_lock); in do_set_fan_target()
513 data->set_cnt = cnt_from_rpm(val, data->clk_freq, in do_set_fan_target()
514 G762_PULSE_FROM_REG(data->fan_cmd1), in do_set_fan_target()
515 G762_CLKDIV_FROM_REG(data->fan_cmd1), in do_set_fan_target()
516 G762_GEARMULT_FROM_REG(data->fan_cmd2)); in do_set_fan_target()
517 ret = i2c_smbus_write_byte_data(data->client, G762_REG_SET_CNT, in do_set_fan_target()
518 data->set_cnt); in do_set_fan_target()
519 data->valid = false; in do_set_fan_target()
520 mutex_unlock(&data->update_lock); in do_set_fan_target()
528 struct g762_data *data = g762_update_client(dev); in do_set_fan_startv() local
531 if (IS_ERR(data)) in do_set_fan_startv()
532 return PTR_ERR(data); in do_set_fan_startv()
534 mutex_lock(&data->update_lock); in do_set_fan_startv()
537 data->fan_cmd2 &= ~G762_REG_FAN_CMD2_FAN_STARTV_0; in do_set_fan_startv()
538 data->fan_cmd2 &= ~G762_REG_FAN_CMD2_FAN_STARTV_1; in do_set_fan_startv()
541 data->fan_cmd2 |= G762_REG_FAN_CMD2_FAN_STARTV_0; in do_set_fan_startv()
542 data->fan_cmd2 &= ~G762_REG_FAN_CMD2_FAN_STARTV_1; in do_set_fan_startv()
545 data->fan_cmd2 &= ~G762_REG_FAN_CMD2_FAN_STARTV_0; in do_set_fan_startv()
546 data->fan_cmd2 |= G762_REG_FAN_CMD2_FAN_STARTV_1; in do_set_fan_startv()
549 data->fan_cmd2 |= G762_REG_FAN_CMD2_FAN_STARTV_0; in do_set_fan_startv()
550 data->fan_cmd2 |= G762_REG_FAN_CMD2_FAN_STARTV_1; in do_set_fan_startv()
556 ret = i2c_smbus_write_byte_data(data->client, G762_REG_FAN_CMD2, in do_set_fan_startv()
557 data->fan_cmd2); in do_set_fan_startv()
558 data->valid = false; in do_set_fan_startv()
560 mutex_unlock(&data->update_lock); in do_set_fan_startv()
586 static void g762_of_clock_disable(void *data) in g762_of_clock_disable() argument
588 struct g762_data *g762 = data; in g762_of_clock_disable()
596 struct g762_data *data; in g762_of_clock_enable() local
604 data = i2c_get_clientdata(client); in g762_of_clock_enable()
610 data->internal_clock = of_device_is_compatible(client->dev.of_node, in g762_of_clock_enable()
614 if (data->internal_clock) { in g762_of_clock_enable()
638 data->clk = clk; in g762_of_clock_enable()
640 ret = devm_add_action(&client->dev, g762_of_clock_disable, data); in g762_of_clock_enable()
748 struct g762_data *data = g762_update_client(dev); in fan1_input_show() local
751 if (IS_ERR(data)) in fan1_input_show()
752 return PTR_ERR(data); in fan1_input_show()
754 mutex_lock(&data->update_lock); in fan1_input_show()
756 if (data->fan_sta & G762_REG_FAN_STA_OOC) { in fan1_input_show()
757 rpm = rpm_from_cnt(data->act_cnt, data->clk_freq, in fan1_input_show()
758 G762_PULSE_FROM_REG(data->fan_cmd1), in fan1_input_show()
759 G762_CLKDIV_FROM_REG(data->fan_cmd1), in fan1_input_show()
760 G762_GEARMULT_FROM_REG(data->fan_cmd2)); in fan1_input_show()
762 mutex_unlock(&data->update_lock); in fan1_input_show()
774 struct g762_data *data = g762_update_client(dev); in pwm1_mode_show() local
776 if (IS_ERR(data)) in pwm1_mode_show()
777 return PTR_ERR(data); in pwm1_mode_show()
780 !!(data->fan_cmd1 & G762_REG_FAN_CMD1_OUT_MODE)); in pwm1_mode_show()
807 struct g762_data *data = g762_update_client(dev); in fan1_div_show() local
809 if (IS_ERR(data)) in fan1_div_show()
810 return PTR_ERR(data); in fan1_div_show()
812 return sprintf(buf, "%d\n", G762_CLKDIV_FROM_REG(data->fan_cmd1)); in fan1_div_show()
838 struct g762_data *data = g762_update_client(dev); in fan1_pulses_show() local
840 if (IS_ERR(data)) in fan1_pulses_show()
841 return PTR_ERR(data); in fan1_pulses_show()
843 return sprintf(buf, "%d\n", G762_PULSE_FROM_REG(data->fan_cmd1)); in fan1_pulses_show()
880 struct g762_data *data = g762_update_client(dev); in pwm1_enable_show() local
882 if (IS_ERR(data)) in pwm1_enable_show()
883 return PTR_ERR(data); in pwm1_enable_show()
886 (!!(data->fan_cmd1 & G762_REG_FAN_CMD1_FAN_MODE)) + 1); in pwm1_enable_show()
914 struct g762_data *data = g762_update_client(dev); in pwm1_show() local
916 if (IS_ERR(data)) in pwm1_show()
917 return PTR_ERR(data); in pwm1_show()
919 return sprintf(buf, "%d\n", data->set_out); in pwm1_show()
952 struct g762_data *data = g762_update_client(dev); in fan1_target_show() local
955 if (IS_ERR(data)) in fan1_target_show()
956 return PTR_ERR(data); in fan1_target_show()
958 mutex_lock(&data->update_lock); in fan1_target_show()
959 rpm = rpm_from_cnt(data->set_cnt, data->clk_freq, in fan1_target_show()
960 G762_PULSE_FROM_REG(data->fan_cmd1), in fan1_target_show()
961 G762_CLKDIV_FROM_REG(data->fan_cmd1), in fan1_target_show()
962 G762_GEARMULT_FROM_REG(data->fan_cmd2)); in fan1_target_show()
963 mutex_unlock(&data->update_lock); in fan1_target_show()
989 struct g762_data *data = g762_update_client(dev); in fan1_fault_show() local
991 if (IS_ERR(data)) in fan1_fault_show()
992 return PTR_ERR(data); in fan1_fault_show()
994 return sprintf(buf, "%u\n", !!(data->fan_sta & G762_REG_FAN_STA_FAIL)); in fan1_fault_show()
1004 struct g762_data *data = g762_update_client(dev); in fan1_alarm_show() local
1006 if (IS_ERR(data)) in fan1_alarm_show()
1007 return PTR_ERR(data); in fan1_alarm_show()
1009 return sprintf(buf, "%u\n", !(data->fan_sta & G762_REG_FAN_STA_OOC)); in fan1_alarm_show()
1045 struct g762_data *data = g762_update_client(dev); in g762_fan_init() local
1048 if (IS_ERR(data)) in g762_fan_init()
1049 return PTR_ERR(data); in g762_fan_init()
1052 if (data->internal_clock) in g762_fan_init()
1053 data->fan_cmd2 |= G761_REG_FAN_CMD2_FAN_CLOCK; in g762_fan_init()
1055 data->fan_cmd1 |= G762_REG_FAN_CMD1_DET_FAN_FAIL; in g762_fan_init()
1056 data->fan_cmd1 |= G762_REG_FAN_CMD1_DET_FAN_OOC; in g762_fan_init()
1057 data->valid = false; in g762_fan_init()
1059 ret = i2c_smbus_write_byte_data(data->client, G762_REG_FAN_CMD1, in g762_fan_init()
1060 data->fan_cmd1); in g762_fan_init()
1064 return i2c_smbus_write_byte_data(data->client, G762_REG_FAN_CMD2, in g762_fan_init()
1065 data->fan_cmd2); in g762_fan_init()
1072 struct g762_data *data; in g762_probe() local
1079 data = devm_kzalloc(dev, sizeof(struct g762_data), GFP_KERNEL); in g762_probe()
1080 if (!data) in g762_probe()
1083 i2c_set_clientdata(client, data); in g762_probe()
1084 data->client = client; in g762_probe()
1085 mutex_init(&data->update_lock); in g762_probe()
1106 data, g762_groups); in g762_probe()