Lines Matching refs:client
86 struct i2c_client *client; member
92 static int pcf8563_read_block_data(struct i2c_client *client, unsigned char reg, in pcf8563_read_block_data() argument
97 .addr = client->addr, in pcf8563_read_block_data()
102 .addr = client->addr, in pcf8563_read_block_data()
109 if ((i2c_transfer(client->adapter, msgs, 2)) != 2) { in pcf8563_read_block_data()
110 dev_err(&client->dev, "%s: read error\n", __func__); in pcf8563_read_block_data()
117 static int pcf8563_write_block_data(struct i2c_client *client, in pcf8563_write_block_data() argument
126 err = i2c_master_send(client, data, sizeof(data)); in pcf8563_write_block_data()
128 dev_err(&client->dev, in pcf8563_write_block_data()
138 static int pcf8563_set_alarm_mode(struct i2c_client *client, bool on) in pcf8563_set_alarm_mode() argument
143 err = pcf8563_read_block_data(client, PCF8563_REG_ST2, 1, &buf); in pcf8563_set_alarm_mode()
154 err = pcf8563_write_block_data(client, PCF8563_REG_ST2, 1, &buf); in pcf8563_set_alarm_mode()
156 dev_err(&client->dev, "%s: write error\n", __func__); in pcf8563_set_alarm_mode()
163 static int pcf8563_get_alarm_mode(struct i2c_client *client, unsigned char *en, in pcf8563_get_alarm_mode() argument
169 err = pcf8563_read_block_data(client, PCF8563_REG_ST2, 1, &buf); in pcf8563_get_alarm_mode()
187 err = pcf8563_get_alarm_mode(pcf8563->client, NULL, &pending); in pcf8563_irq()
193 pcf8563_set_alarm_mode(pcf8563->client, 1); in pcf8563_irq()
204 static int pcf8563_get_datetime(struct i2c_client *client, struct rtc_time *tm) in pcf8563_get_datetime() argument
206 struct pcf8563 *pcf8563 = i2c_get_clientdata(client); in pcf8563_get_datetime()
210 err = pcf8563_read_block_data(client, PCF8563_REG_ST1, 9, buf); in pcf8563_get_datetime()
216 dev_err(&client->dev, in pcf8563_get_datetime()
221 dev_dbg(&client->dev, in pcf8563_get_datetime()
243 dev_dbg(&client->dev, "%s: tm is secs=%d, mins=%d, hours=%d, " in pcf8563_get_datetime()
252 static int pcf8563_set_datetime(struct i2c_client *client, struct rtc_time *tm) in pcf8563_set_datetime() argument
254 struct pcf8563 *pcf8563 = i2c_get_clientdata(client); in pcf8563_set_datetime()
257 dev_dbg(&client->dev, "%s: secs=%d, mins=%d, hours=%d, " in pcf8563_set_datetime()
280 return pcf8563_write_block_data(client, PCF8563_REG_SC, in pcf8563_set_datetime()
334 struct i2c_client *client = to_i2c_client(dev); in pcf8563_rtc_read_alarm() local
338 err = pcf8563_read_block_data(client, PCF8563_REG_AMN, 4, buf); in pcf8563_rtc_read_alarm()
342 dev_dbg(&client->dev, in pcf8563_rtc_read_alarm()
355 err = pcf8563_get_alarm_mode(client, &tm->enabled, &tm->pending); in pcf8563_rtc_read_alarm()
359 dev_dbg(&client->dev, "%s: tm is mins=%d, hours=%d, mday=%d, wday=%d," in pcf8563_rtc_read_alarm()
369 struct i2c_client *client = to_i2c_client(dev); in pcf8563_rtc_set_alarm() local
391 err = pcf8563_write_block_data(client, PCF8563_REG_AMN, 4, buf); in pcf8563_rtc_set_alarm()
395 return pcf8563_set_alarm_mode(client, 1); in pcf8563_rtc_set_alarm()
422 struct i2c_client *client = pcf8563->client; in pcf8563_clkout_recalc_rate() local
424 int ret = pcf8563_read_block_data(client, PCF8563_REG_CLKO, 1, &buf); in pcf8563_clkout_recalc_rate()
449 struct i2c_client *client = pcf8563->client; in pcf8563_clkout_set_rate() local
451 int ret = pcf8563_read_block_data(client, PCF8563_REG_CLKO, 1, &buf); in pcf8563_clkout_set_rate()
461 ret = pcf8563_write_block_data(client, in pcf8563_clkout_set_rate()
473 struct i2c_client *client = pcf8563->client; in pcf8563_clkout_control() local
475 int ret = pcf8563_read_block_data(client, PCF8563_REG_CLKO, 1, &buf); in pcf8563_clkout_control()
485 ret = pcf8563_write_block_data(client, PCF8563_REG_CLKO, 1, &buf); in pcf8563_clkout_control()
502 struct i2c_client *client = pcf8563->client; in pcf8563_clkout_is_prepared() local
504 int ret = pcf8563_read_block_data(client, PCF8563_REG_CLKO, 1, &buf); in pcf8563_clkout_is_prepared()
523 struct i2c_client *client = pcf8563->client; in pcf8563_clkout_register_clk() local
524 struct device_node *node = client->dev.of_node; in pcf8563_clkout_register_clk()
532 ret = pcf8563_write_block_data(client, PCF8563_REG_CLKO, 1, &buf); in pcf8563_clkout_register_clk()
547 clk = devm_clk_register(&client->dev, &pcf8563->clkout_hw); in pcf8563_clkout_register_clk()
565 static int pcf8563_probe(struct i2c_client *client, in pcf8563_probe() argument
573 dev_dbg(&client->dev, "%s\n", __func__); in pcf8563_probe()
575 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) in pcf8563_probe()
578 pcf8563 = devm_kzalloc(&client->dev, sizeof(struct pcf8563), in pcf8563_probe()
583 dev_info(&client->dev, "chip found, driver version " DRV_VERSION "\n"); in pcf8563_probe()
585 i2c_set_clientdata(client, pcf8563); in pcf8563_probe()
586 pcf8563->client = client; in pcf8563_probe()
587 device_set_wakeup_capable(&client->dev, 1); in pcf8563_probe()
591 err = pcf8563_write_block_data(client, PCF8563_REG_TMRC, 1, &buf); in pcf8563_probe()
593 dev_err(&client->dev, "%s: write error\n", __func__); in pcf8563_probe()
597 err = pcf8563_get_alarm_mode(client, NULL, &alm_pending); in pcf8563_probe()
599 dev_err(&client->dev, "%s: read error\n", __func__); in pcf8563_probe()
603 pcf8563_set_alarm_mode(client, 0); in pcf8563_probe()
605 pcf8563->rtc = devm_rtc_device_register(&client->dev, in pcf8563_probe()
612 if (client->irq > 0) { in pcf8563_probe()
613 err = devm_request_threaded_irq(&client->dev, client->irq, in pcf8563_probe()
616 pcf8563->rtc->name, client); in pcf8563_probe()
618 dev_err(&client->dev, "unable to request IRQ %d\n", in pcf8563_probe()
619 client->irq); in pcf8563_probe()