Lines Matching refs:client
78 struct i2c_client *client; member
81 static int pcf8563_read_block_data(struct i2c_client *client, unsigned char reg, in pcf8563_read_block_data() argument
86 .addr = client->addr, in pcf8563_read_block_data()
91 .addr = client->addr, in pcf8563_read_block_data()
98 if ((i2c_transfer(client->adapter, msgs, 2)) != 2) { in pcf8563_read_block_data()
99 dev_err(&client->dev, "%s: read error\n", __func__); in pcf8563_read_block_data()
106 static int pcf8563_write_block_data(struct i2c_client *client, in pcf8563_write_block_data() argument
115 err = i2c_master_send(client, data, sizeof(data)); in pcf8563_write_block_data()
117 dev_err(&client->dev, in pcf8563_write_block_data()
127 static int pcf8563_set_alarm_mode(struct i2c_client *client, bool on) in pcf8563_set_alarm_mode() argument
132 err = pcf8563_read_block_data(client, PCF8563_REG_ST2, 1, &buf); in pcf8563_set_alarm_mode()
143 err = pcf8563_write_block_data(client, PCF8563_REG_ST2, 1, &buf); in pcf8563_set_alarm_mode()
145 dev_err(&client->dev, "%s: write error\n", __func__); in pcf8563_set_alarm_mode()
152 static int pcf8563_get_alarm_mode(struct i2c_client *client, unsigned char *en, in pcf8563_get_alarm_mode() argument
158 err = pcf8563_read_block_data(client, PCF8563_REG_ST2, 1, &buf); in pcf8563_get_alarm_mode()
176 err = pcf8563_get_alarm_mode(pcf8563->client, NULL, &pending); in pcf8563_irq()
182 pcf8563_set_alarm_mode(pcf8563->client, 1); in pcf8563_irq()
193 static int pcf8563_get_datetime(struct i2c_client *client, struct rtc_time *tm) in pcf8563_get_datetime() argument
195 struct pcf8563 *pcf8563 = i2c_get_clientdata(client); in pcf8563_get_datetime()
199 err = pcf8563_read_block_data(client, PCF8563_REG_ST1, 9, buf); in pcf8563_get_datetime()
205 dev_info(&client->dev, in pcf8563_get_datetime()
209 dev_dbg(&client->dev, in pcf8563_get_datetime()
231 dev_dbg(&client->dev, "%s: tm is secs=%d, mins=%d, hours=%d, " in pcf8563_get_datetime()
241 dev_err(&client->dev, "retrieved date/time is not valid.\n"); in pcf8563_get_datetime()
246 static int pcf8563_set_datetime(struct i2c_client *client, struct rtc_time *tm) in pcf8563_set_datetime() argument
248 struct pcf8563 *pcf8563 = i2c_get_clientdata(client); in pcf8563_set_datetime()
251 dev_dbg(&client->dev, "%s: secs=%d, mins=%d, hours=%d, " in pcf8563_set_datetime()
274 return pcf8563_write_block_data(client, PCF8563_REG_SC, in pcf8563_set_datetime()
328 struct i2c_client *client = to_i2c_client(dev); in pcf8563_rtc_read_alarm() local
332 err = pcf8563_read_block_data(client, PCF8563_REG_AMN, 4, buf); in pcf8563_rtc_read_alarm()
336 dev_dbg(&client->dev, in pcf8563_rtc_read_alarm()
349 err = pcf8563_get_alarm_mode(client, &tm->enabled, &tm->pending); in pcf8563_rtc_read_alarm()
353 dev_dbg(&client->dev, "%s: tm is mins=%d, hours=%d, mday=%d, wday=%d," in pcf8563_rtc_read_alarm()
363 struct i2c_client *client = to_i2c_client(dev); in pcf8563_rtc_set_alarm() local
385 err = pcf8563_write_block_data(client, PCF8563_REG_AMN, 4, buf); in pcf8563_rtc_set_alarm()
389 return pcf8563_set_alarm_mode(client, 1); in pcf8563_rtc_set_alarm()
407 static int pcf8563_probe(struct i2c_client *client, in pcf8563_probe() argument
415 dev_dbg(&client->dev, "%s\n", __func__); in pcf8563_probe()
417 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) in pcf8563_probe()
420 pcf8563 = devm_kzalloc(&client->dev, sizeof(struct pcf8563), in pcf8563_probe()
425 dev_info(&client->dev, "chip found, driver version " DRV_VERSION "\n"); in pcf8563_probe()
427 i2c_set_clientdata(client, pcf8563); in pcf8563_probe()
428 pcf8563->client = client; in pcf8563_probe()
429 device_set_wakeup_capable(&client->dev, 1); in pcf8563_probe()
433 err = pcf8563_write_block_data(client, PCF8563_REG_TMRC, 1, &buf); in pcf8563_probe()
435 dev_err(&client->dev, "%s: write error\n", __func__); in pcf8563_probe()
439 err = pcf8563_get_alarm_mode(client, NULL, &alm_pending); in pcf8563_probe()
441 dev_err(&client->dev, "%s: read error\n", __func__); in pcf8563_probe()
445 pcf8563_set_alarm_mode(client, 0); in pcf8563_probe()
447 pcf8563->rtc = devm_rtc_device_register(&client->dev, in pcf8563_probe()
454 if (client->irq > 0) { in pcf8563_probe()
455 err = devm_request_threaded_irq(&client->dev, client->irq, in pcf8563_probe()
458 pcf8563->rtc->name, client); in pcf8563_probe()
460 dev_err(&client->dev, "unable to request IRQ %d\n", in pcf8563_probe()
461 client->irq); in pcf8563_probe()