Lines Matching refs:client
93 static int x1205_get_datetime(struct i2c_client *client, struct rtc_time *tm, in x1205_get_datetime() argument
102 .addr = client->addr, in x1205_get_datetime()
107 .addr = client->addr, in x1205_get_datetime()
115 if (i2c_transfer(client->adapter, &msgs[0], 2) != 2) { in x1205_get_datetime()
116 dev_err(&client->dev, "%s: read error\n", __func__); in x1205_get_datetime()
120 dev_dbg(&client->dev, in x1205_get_datetime()
141 dev_dbg(&client->dev, "%s: tm is secs=%d, mins=%d, hours=%d, " in x1205_get_datetime()
150 static int x1205_get_status(struct i2c_client *client, unsigned char *sr) in x1205_get_status() argument
156 .addr = client->addr, in x1205_get_status()
161 .addr = client->addr, in x1205_get_status()
169 if (i2c_transfer(client->adapter, &msgs[0], 2) != 2) { in x1205_get_status()
170 dev_err(&client->dev, "%s: read error\n", __func__); in x1205_get_status()
177 static int x1205_set_datetime(struct i2c_client *client, struct rtc_time *tm, in x1205_set_datetime() argument
192 dev_dbg(&client->dev, in x1205_set_datetime()
219 xfer = i2c_master_send(client, wel, 3); in x1205_set_datetime()
221 dev_err(&client->dev, "%s: wel - %d\n", __func__, xfer); in x1205_set_datetime()
225 xfer = i2c_master_send(client, rwel, 3); in x1205_set_datetime()
227 dev_err(&client->dev, "%s: rwel - %d\n", __func__, xfer); in x1205_set_datetime()
231 xfer = i2c_master_send(client, rdata, sizeof(rdata)); in x1205_set_datetime()
233 dev_err(&client->dev, in x1205_set_datetime()
249 xfer = i2c_master_send(client, rwel, 3); in x1205_set_datetime()
251 dev_err(&client->dev, in x1205_set_datetime()
261 xfer = i2c_master_send(client, al0e, 3); in x1205_set_datetime()
263 dev_err(&client->dev, in x1205_set_datetime()
275 xfer = i2c_master_send(client, diswe, 3); in x1205_set_datetime()
277 dev_err(&client->dev, "%s: diswe - %d\n", __func__, xfer); in x1205_set_datetime()
284 static int x1205_fix_osc(struct i2c_client *client) in x1205_fix_osc() argument
291 err = x1205_set_datetime(client, &tm, X1205_CCR_BASE, 0); in x1205_fix_osc()
293 dev_err(&client->dev, "unable to restart the oscillator\n"); in x1205_fix_osc()
298 static int x1205_get_dtrim(struct i2c_client *client, int *trim) in x1205_get_dtrim() argument
305 .addr = client->addr, in x1205_get_dtrim()
310 .addr = client->addr, in x1205_get_dtrim()
318 if (i2c_transfer(client->adapter, &msgs[0], 2) != 2) { in x1205_get_dtrim()
319 dev_err(&client->dev, "%s: read error\n", __func__); in x1205_get_dtrim()
323 dev_dbg(&client->dev, "%s: raw dtr=%x\n", __func__, dtr); in x1205_get_dtrim()
339 static int x1205_get_atrim(struct i2c_client *client, int *trim) in x1205_get_atrim() argument
346 .addr = client->addr, in x1205_get_atrim()
351 .addr = client->addr, in x1205_get_atrim()
359 if (i2c_transfer(client->adapter, &msgs[0], 2) != 2) { in x1205_get_atrim()
360 dev_err(&client->dev, "%s: read error\n", __func__); in x1205_get_atrim()
364 dev_dbg(&client->dev, "%s: raw atr=%x\n", __func__, atr); in x1205_get_atrim()
372 dev_dbg(&client->dev, "%s: raw atr=%x (%d)\n", __func__, atr, atr); in x1205_get_atrim()
376 dev_dbg(&client->dev, "%s: real=%d\n", __func__, *trim); in x1205_get_atrim()
385 static int x1205_validate_client(struct i2c_client *client) in x1205_validate_client() argument
423 .addr = client->addr, in x1205_validate_client()
428 .addr = client->addr, in x1205_validate_client()
435 xfer = i2c_transfer(client->adapter, msgs, 2); in x1205_validate_client()
437 dev_err(&client->dev, in x1205_validate_client()
445 dev_err(&client->dev, in x1205_validate_client()
461 .addr = client->addr, in x1205_validate_client()
466 .addr = client->addr, in x1205_validate_client()
473 xfer = i2c_transfer(client->adapter, msgs, 2); in x1205_validate_client()
475 dev_err(&client->dev, in x1205_validate_client()
486 dev_dbg(&client->dev, in x1205_validate_client()
503 struct i2c_client *client = to_i2c_client(dev); in x1205_rtc_read_alarm() local
506 .addr = client->addr, in x1205_rtc_read_alarm()
512 .addr = client->addr, in x1205_rtc_read_alarm()
520 if (i2c_transfer(client->adapter, &msgs[0], 2) != 2) { in x1205_rtc_read_alarm()
521 dev_err(&client->dev, "%s: read error\n", __func__); in x1205_rtc_read_alarm()
524 err = x1205_get_status(client, &status); in x1205_rtc_read_alarm()
528 err = x1205_get_datetime(client, &alrm->time, X1205_ALM0_BASE); in x1205_rtc_read_alarm()
622 static int x1205_probe(struct i2c_client *client, in x1205_probe() argument
629 dev_dbg(&client->dev, "%s\n", __func__); in x1205_probe()
631 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) in x1205_probe()
634 if (x1205_validate_client(client) < 0) in x1205_probe()
637 dev_info(&client->dev, "chip found, driver version " DRV_VERSION "\n"); in x1205_probe()
639 rtc = devm_rtc_device_register(&client->dev, x1205_driver.driver.name, in x1205_probe()
645 i2c_set_clientdata(client, rtc); in x1205_probe()
648 err = x1205_get_status(client, &sr); in x1205_probe()
651 dev_err(&client->dev, in x1205_probe()
655 x1205_fix_osc(client); in x1205_probe()
658 dev_err(&client->dev, "couldn't read status\n"); in x1205_probe()
661 err = x1205_sysfs_register(&client->dev); in x1205_probe()
663 dev_err(&client->dev, "Unable to create sysfs entries\n"); in x1205_probe()
668 static int x1205_remove(struct i2c_client *client) in x1205_remove() argument
670 x1205_sysfs_unregister(&client->dev); in x1205_remove()