Lines Matching full:client

2  * RTC client/driver for the Maxim/Dallas DS1374 Real-Time Clock over I2C
72 struct i2c_client *client; member
88 static int ds1374_read_rtc(struct i2c_client *client, u32 *time, in ds1374_read_rtc() argument
98 ret = i2c_smbus_read_i2c_block_data(client, reg, nbytes, buf); in ds1374_read_rtc()
111 static int ds1374_write_rtc(struct i2c_client *client, u32 time, in ds1374_write_rtc() argument
127 return i2c_smbus_write_i2c_block_data(client, reg, nbytes, buf); in ds1374_write_rtc()
130 static int ds1374_check_rtc_status(struct i2c_client *client) in ds1374_check_rtc_status() argument
135 stat = i2c_smbus_read_byte_data(client, DS1374_REG_SR); in ds1374_check_rtc_status()
140 dev_warn(&client->dev, in ds1374_check_rtc_status()
145 ret = i2c_smbus_write_byte_data(client, DS1374_REG_SR, stat); in ds1374_check_rtc_status()
154 control = i2c_smbus_read_byte_data(client, DS1374_REG_CR); in ds1374_check_rtc_status()
159 return i2c_smbus_write_byte_data(client, DS1374_REG_CR, control); in ds1374_check_rtc_status()
164 struct i2c_client *client = to_i2c_client(dev); in ds1374_read_time() local
168 ret = ds1374_read_rtc(client, &itime, DS1374_REG_TOD0, 4); in ds1374_read_time()
177 struct i2c_client *client = to_i2c_client(dev); in ds1374_set_time() local
180 return ds1374_write_rtc(client, itime, DS1374_REG_TOD0, 4); in ds1374_set_time()
190 struct i2c_client *client = to_i2c_client(dev); in ds1374_read_alarm() local
191 struct ds1374 *ds1374 = i2c_get_clientdata(client); in ds1374_read_alarm()
196 if (client->irq <= 0) in ds1374_read_alarm()
201 cr = ret = i2c_smbus_read_byte_data(client, DS1374_REG_CR); in ds1374_read_alarm()
205 sr = ret = i2c_smbus_read_byte_data(client, DS1374_REG_SR); in ds1374_read_alarm()
209 ret = ds1374_read_rtc(client, &now, DS1374_REG_TOD0, 4); in ds1374_read_alarm()
213 ret = ds1374_read_rtc(client, &cur_alarm, DS1374_REG_WDALM0, 3); in ds1374_read_alarm()
228 struct i2c_client *client = to_i2c_client(dev); in ds1374_set_alarm() local
229 struct ds1374 *ds1374 = i2c_get_clientdata(client); in ds1374_set_alarm()
235 if (client->irq <= 0) in ds1374_set_alarm()
258 ret = cr = i2c_smbus_read_byte_data(client, DS1374_REG_CR); in ds1374_set_alarm()
266 ret = i2c_smbus_write_byte_data(client, DS1374_REG_CR, cr); in ds1374_set_alarm()
270 ret = ds1374_write_rtc(client, new_alarm, DS1374_REG_WDALM0, 3); in ds1374_set_alarm()
278 ret = i2c_smbus_write_byte_data(client, DS1374_REG_CR, cr); in ds1374_set_alarm()
289 struct i2c_client *client = dev_id; in ds1374_irq() local
290 struct ds1374 *ds1374 = i2c_get_clientdata(client); in ds1374_irq()
300 struct i2c_client *client = ds1374->client; in ds1374_work() local
305 stat = i2c_smbus_read_byte_data(client, DS1374_REG_SR); in ds1374_work()
311 i2c_smbus_write_byte_data(client, DS1374_REG_SR, stat); in ds1374_work()
313 control = i2c_smbus_read_byte_data(client, DS1374_REG_CR); in ds1374_work()
318 i2c_smbus_write_byte_data(client, DS1374_REG_CR, control); in ds1374_work()
325 enable_irq(client->irq); in ds1374_work()
333 struct i2c_client *client = to_i2c_client(dev); in ds1374_alarm_irq_enable() local
334 struct ds1374 *ds1374 = i2c_get_clientdata(client); in ds1374_alarm_irq_enable()
339 ret = i2c_smbus_read_byte_data(client, DS1374_REG_CR); in ds1374_alarm_irq_enable()
349 ret = i2c_smbus_write_byte_data(client, DS1374_REG_CR, ret); in ds1374_alarm_irq_enable()
398 struct i2c_client *client = ds1374->client; in ds1374_wdt_settimeout() local
403 cr = i2c_smbus_read_byte_data(client, DS1374_REG_CR); in ds1374_wdt_settimeout()
410 ret = i2c_smbus_write_byte_data(client, DS1374_REG_CR, cr); in ds1374_wdt_settimeout()
416 ret = ds1374_write_rtc(client, timeout, DS1374_REG_WDALM0, 3); in ds1374_wdt_settimeout()
425 ret = i2c_smbus_write_byte_data(client, DS1374_REG_CR, cr); in ds1374_wdt_settimeout()
440 return ds1374_read_rtc(ds1374->client, &val, DS1374_REG_WDALM0, 3); in ds1374_wdt_start()
446 struct i2c_client *client = ds1374->client; in ds1374_wdt_stop() local
449 cr = i2c_smbus_read_byte_data(client, DS1374_REG_CR); in ds1374_wdt_stop()
456 return i2c_smbus_write_byte_data(client, DS1374_REG_CR, cr); in ds1374_wdt_stop()
473 static int ds1374_probe(struct i2c_client *client, in ds1374_probe() argument
479 ds1374 = devm_kzalloc(&client->dev, sizeof(struct ds1374), GFP_KERNEL); in ds1374_probe()
483 ds1374->rtc = devm_rtc_allocate_device(&client->dev); in ds1374_probe()
487 ds1374->client = client; in ds1374_probe()
488 i2c_set_clientdata(client, ds1374); in ds1374_probe()
493 ret = ds1374_check_rtc_status(client); in ds1374_probe()
497 if (client->irq > 0) { in ds1374_probe()
498 ret = devm_request_irq(&client->dev, client->irq, ds1374_irq, 0, in ds1374_probe()
499 "ds1374", client); in ds1374_probe()
501 dev_err(&client->dev, "unable to request IRQ\n"); in ds1374_probe()
505 device_set_wakeup_capable(&client->dev, 1); in ds1374_probe()
522 watchdog_init_timeout(&ds1374->wdt, wdt_margin, &client->dev); in ds1374_probe()
529 ret = devm_watchdog_register_device(&client->dev, &ds1374->wdt); in ds1374_probe()
537 static int ds1374_remove(struct i2c_client *client) in ds1374_remove() argument
539 struct ds1374 *ds1374 = i2c_get_clientdata(client); in ds1374_remove()
541 if (client->irq > 0) { in ds1374_remove()
546 devm_free_irq(&client->dev, client->irq, client); in ds1374_remove()
556 struct i2c_client *client = to_i2c_client(dev); in ds1374_suspend() local
558 if (client->irq > 0 && device_may_wakeup(&client->dev)) in ds1374_suspend()
559 enable_irq_wake(client->irq); in ds1374_suspend()
565 struct i2c_client *client = to_i2c_client(dev); in ds1374_resume() local
567 if (client->irq > 0 && device_may_wakeup(&client->dev)) in ds1374_resume()
568 disable_irq_wake(client->irq); in ds1374_resume()