Symbol: fm3130
drivers/rtc/rtc-fm3130.c
107
tmp = i2c_transfer(fm3130->client->adapter, fm3130->msg, 2);
drivers/rtc/rtc-fm3130.c
115
dev_dbg(dev, "%s: %15ph\n", "read", fm3130->regs);
drivers/rtc/rtc-fm3130.c
117
t->tm_sec = bcd2bin(fm3130->regs[FM3130_RTC_SECONDS] & 0x7f);
drivers/rtc/rtc-fm3130.c
118
t->tm_min = bcd2bin(fm3130->regs[FM3130_RTC_MINUTES] & 0x7f);
drivers/rtc/rtc-fm3130.c
119
tmp = fm3130->regs[FM3130_RTC_HOURS] & 0x3f;
drivers/rtc/rtc-fm3130.c
121
t->tm_wday = bcd2bin(fm3130->regs[FM3130_RTC_DAY] & 0x07) - 1;
drivers/rtc/rtc-fm3130.c
122
t->tm_mday = bcd2bin(fm3130->regs[FM3130_RTC_DATE] & 0x3f);
drivers/rtc/rtc-fm3130.c
123
tmp = fm3130->regs[FM3130_RTC_MONTHS] & 0x1f;
drivers/rtc/rtc-fm3130.c
127
t->tm_year = bcd2bin(fm3130->regs[FM3130_RTC_YEARS]) + 100;
drivers/rtc/rtc-fm3130.c
141
struct fm3130 *fm3130 = dev_get_drvdata(dev);
drivers/rtc/rtc-fm3130.c
143
u8 *buf = fm3130->regs;
drivers/rtc/rtc-fm3130.c
169
i2c_smbus_write_byte_data(fm3130->client,
drivers/rtc/rtc-fm3130.c
171
fm3130->regs[FM3130_RTC_SECONDS + i]);
drivers/rtc/rtc-fm3130.c
177
if (!fm3130->data_valid)
drivers/rtc/rtc-fm3130.c
178
fm3130->data_valid = 1;
drivers/rtc/rtc-fm3130.c
184
struct fm3130 *fm3130 = dev_get_drvdata(dev);
drivers/rtc/rtc-fm3130.c
188
if (!fm3130->alarm_valid) {
drivers/rtc/rtc-fm3130.c
199
tmp = i2c_transfer(fm3130->client->adapter, &fm3130->msg[2], 2);
drivers/rtc/rtc-fm3130.c
205
fm3130->regs[FM3130_ALARM_SECONDS],
drivers/rtc/rtc-fm3130.c
206
fm3130->regs[FM3130_ALARM_MINUTES],
drivers/rtc/rtc-fm3130.c
207
fm3130->regs[FM3130_ALARM_HOURS],
drivers/rtc/rtc-fm3130.c
208
fm3130->regs[FM3130_ALARM_DATE],
drivers/rtc/rtc-fm3130.c
209
fm3130->regs[FM3130_ALARM_MONTHS]);
drivers/rtc/rtc-fm3130.c
211
tm->tm_sec = bcd2bin(fm3130->regs[FM3130_ALARM_SECONDS] & 0x7F);
drivers/rtc/rtc-fm3130.c
212
tm->tm_min = bcd2bin(fm3130->regs[FM3130_ALARM_MINUTES] & 0x7F);
drivers/rtc/rtc-fm3130.c
213
tm->tm_hour = bcd2bin(fm3130->regs[FM3130_ALARM_HOURS] & 0x3F);
drivers/rtc/rtc-fm3130.c
214
tm->tm_mday = bcd2bin(fm3130->regs[FM3130_ALARM_DATE] & 0x3F);
drivers/rtc/rtc-fm3130.c
215
tm->tm_mon = bcd2bin(fm3130->regs[FM3130_ALARM_MONTHS] & 0x1F);
drivers/rtc/rtc-fm3130.c
227
fm3130->regs[FM3130_RTC_CONTROL] =
drivers/rtc/rtc-fm3130.c
228
i2c_smbus_read_byte_data(fm3130->client, FM3130_RTC_CONTROL);
drivers/rtc/rtc-fm3130.c
230
if ((fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_AEN) &&
drivers/rtc/rtc-fm3130.c
231
(~fm3130->regs[FM3130_RTC_CONTROL] &
drivers/rtc/rtc-fm3130.c
241
struct fm3130 *fm3130 = dev_get_drvdata(dev);
drivers/rtc/rtc-fm3130.c
251
fm3130->regs[FM3130_ALARM_SECONDS] =
drivers/rtc/rtc-fm3130.c
254
fm3130->regs[FM3130_ALARM_MINUTES] =
drivers/rtc/rtc-fm3130.c
257
fm3130->regs[FM3130_ALARM_HOURS] =
drivers/rtc/rtc-fm3130.c
260
fm3130->regs[FM3130_ALARM_DATE] =
drivers/rtc/rtc-fm3130.c
263
fm3130->regs[FM3130_ALARM_MONTHS] =
drivers/rtc/rtc-fm3130.c
267
fm3130->regs[FM3130_ALARM_SECONDS],
drivers/rtc/rtc-fm3130.c
268
fm3130->regs[FM3130_ALARM_MINUTES],
drivers/rtc/rtc-fm3130.c
269
fm3130->regs[FM3130_ALARM_HOURS],
drivers/rtc/rtc-fm3130.c
270
fm3130->regs[FM3130_ALARM_DATE],
drivers/rtc/rtc-fm3130.c
271
fm3130->regs[FM3130_ALARM_MONTHS]);
drivers/rtc/rtc-fm3130.c
274
i2c_smbus_write_byte_data(fm3130->client,
drivers/rtc/rtc-fm3130.c
276
fm3130->regs[FM3130_ALARM_SECONDS + i]);
drivers/rtc/rtc-fm3130.c
278
fm3130->regs[FM3130_RTC_CONTROL] =
drivers/rtc/rtc-fm3130.c
279
i2c_smbus_read_byte_data(fm3130->client, FM3130_RTC_CONTROL);
drivers/rtc/rtc-fm3130.c
283
i2c_smbus_write_byte_data(fm3130->client, FM3130_RTC_CONTROL,
drivers/rtc/rtc-fm3130.c
284
(fm3130->regs[FM3130_RTC_CONTROL] &
drivers/rtc/rtc-fm3130.c
288
i2c_smbus_write_byte_data(fm3130->client, FM3130_RTC_CONTROL,
drivers/rtc/rtc-fm3130.c
289
fm3130->regs[FM3130_RTC_CONTROL] &
drivers/rtc/rtc-fm3130.c
295
if (!fm3130->alarm_valid)
drivers/rtc/rtc-fm3130.c
296
fm3130->alarm_valid = 1;
drivers/rtc/rtc-fm3130.c
303
struct fm3130 *fm3130 = dev_get_drvdata(dev);
drivers/rtc/rtc-fm3130.c
306
fm3130->regs[FM3130_RTC_CONTROL] =
drivers/rtc/rtc-fm3130.c
307
i2c_smbus_read_byte_data(fm3130->client, FM3130_RTC_CONTROL);
drivers/rtc/rtc-fm3130.c
310
enabled, fm3130->regs[FM3130_RTC_CONTROL]);
drivers/rtc/rtc-fm3130.c
314
ret = i2c_smbus_write_byte_data(fm3130->client,
drivers/rtc/rtc-fm3130.c
315
FM3130_RTC_CONTROL, fm3130->regs[FM3130_RTC_CONTROL] &
drivers/rtc/rtc-fm3130.c
320
ret = i2c_smbus_write_byte_data(fm3130->client,
drivers/rtc/rtc-fm3130.c
321
FM3130_RTC_CONTROL, (fm3130->regs[FM3130_RTC_CONTROL] &
drivers/rtc/rtc-fm3130.c
345
struct fm3130 *fm3130;
drivers/rtc/rtc-fm3130.c
354
fm3130 = devm_kzalloc(&client->dev, sizeof(struct fm3130), GFP_KERNEL);
drivers/rtc/rtc-fm3130.c
356
if (!fm3130)
drivers/rtc/rtc-fm3130.c
359
fm3130->client = client;
drivers/rtc/rtc-fm3130.c
360
i2c_set_clientdata(client, fm3130);
drivers/rtc/rtc-fm3130.c
361
fm3130->reg_addr_time = FM3130_RTC_SECONDS;
drivers/rtc/rtc-fm3130.c
362
fm3130->reg_addr_alarm = FM3130_ALARM_SECONDS;
drivers/rtc/rtc-fm3130.c
365
fm3130->msg[0].addr = client->addr;
drivers/rtc/rtc-fm3130.c
366
fm3130->msg[0].flags = 0;
drivers/rtc/rtc-fm3130.c
367
fm3130->msg[0].len = 1;
drivers/rtc/rtc-fm3130.c
368
fm3130->msg[0].buf = &fm3130->reg_addr_time;
drivers/rtc/rtc-fm3130.c
370
fm3130->msg[1].addr = client->addr;
drivers/rtc/rtc-fm3130.c
371
fm3130->msg[1].flags = I2C_M_RD;
drivers/rtc/rtc-fm3130.c
372
fm3130->msg[1].len = FM3130_CLOCK_REGS;
drivers/rtc/rtc-fm3130.c
373
fm3130->msg[1].buf = &fm3130->regs[FM3130_RTC_SECONDS];
drivers/rtc/rtc-fm3130.c
376
fm3130->msg[2].addr = client->addr;
drivers/rtc/rtc-fm3130.c
377
fm3130->msg[2].flags = 0;
drivers/rtc/rtc-fm3130.c
378
fm3130->msg[2].len = 1;
drivers/rtc/rtc-fm3130.c
379
fm3130->msg[2].buf = &fm3130->reg_addr_alarm;
drivers/rtc/rtc-fm3130.c
381
fm3130->msg[3].addr = client->addr;
drivers/rtc/rtc-fm3130.c
382
fm3130->msg[3].flags = I2C_M_RD;
drivers/rtc/rtc-fm3130.c
383
fm3130->msg[3].len = FM3130_ALARM_REGS;
drivers/rtc/rtc-fm3130.c
384
fm3130->msg[3].buf = &fm3130->regs[FM3130_ALARM_SECONDS];
drivers/rtc/rtc-fm3130.c
386
fm3130->alarm_valid = 0;
drivers/rtc/rtc-fm3130.c
387
fm3130->data_valid = 0;
drivers/rtc/rtc-fm3130.c
389
tmp = i2c_transfer(adapter, fm3130->msg, 4);
drivers/rtc/rtc-fm3130.c
396
fm3130->regs[FM3130_RTC_CONTROL] =
drivers/rtc/rtc-fm3130.c
398
fm3130->regs[FM3130_CAL_CONTROL] =
drivers/rtc/rtc-fm3130.c
402
if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_CAL) {
drivers/rtc/rtc-fm3130.c
404
fm3130->regs[FM3130_RTC_CONTROL] &
drivers/rtc/rtc-fm3130.c
410
if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_WRITE ||
drivers/rtc/rtc-fm3130.c
411
fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_READ) {
drivers/rtc/rtc-fm3130.c
413
fm3130->regs[FM3130_RTC_CONTROL] &
drivers/rtc/rtc-fm3130.c
420
if (fm3130->regs[FM3130_CAL_CONTROL] & FM3130_CAL_CONTROL_BIT_nOSCEN)
drivers/rtc/rtc-fm3130.c
422
fm3130->regs[FM3130_CAL_CONTROL] &
drivers/rtc/rtc-fm3130.c
426
if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_LB) {
drivers/rtc/rtc-fm3130.c
428
fm3130->regs[FM3130_RTC_CONTROL] &
drivers/rtc/rtc-fm3130.c
434
if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_POR) {
drivers/rtc/rtc-fm3130.c
436
fm3130->regs[FM3130_RTC_CONTROL] &
drivers/rtc/rtc-fm3130.c
444
tmp = bcd2bin(fm3130->regs[FM3130_RTC_SECONDS] & 0x7f);
drivers/rtc/rtc-fm3130.c
448
tmp = bcd2bin(fm3130->regs[FM3130_RTC_MINUTES] & 0x7f);
drivers/rtc/rtc-fm3130.c
452
tmp = bcd2bin(fm3130->regs[FM3130_RTC_HOURS] & 0x3f);
drivers/rtc/rtc-fm3130.c
456
tmp = bcd2bin(fm3130->regs[FM3130_RTC_DATE] & 0x3f);
drivers/rtc/rtc-fm3130.c
460
tmp = bcd2bin(fm3130->regs[FM3130_RTC_MONTHS] & 0x1f);
drivers/rtc/rtc-fm3130.c
464
fm3130->alarm_valid = 1;
drivers/rtc/rtc-fm3130.c
469
tmp = bcd2bin(fm3130->regs[FM3130_RTC_SECONDS] & 0x7f);
drivers/rtc/rtc-fm3130.c
473
tmp = bcd2bin(fm3130->regs[FM3130_RTC_MINUTES] & 0x7f);
drivers/rtc/rtc-fm3130.c
477
tmp = bcd2bin(fm3130->regs[FM3130_RTC_HOURS] & 0x3f);
drivers/rtc/rtc-fm3130.c
481
tmp = bcd2bin(fm3130->regs[FM3130_RTC_DAY] & 0x7);
drivers/rtc/rtc-fm3130.c
485
tmp = bcd2bin(fm3130->regs[FM3130_RTC_DATE] & 0x3f);
drivers/rtc/rtc-fm3130.c
489
tmp = bcd2bin(fm3130->regs[FM3130_RTC_MONTHS] & 0x1f);
drivers/rtc/rtc-fm3130.c
493
fm3130->data_valid = 1;
drivers/rtc/rtc-fm3130.c
497
if (!fm3130->data_valid || !fm3130->alarm_valid)
drivers/rtc/rtc-fm3130.c
499
fm3130->regs);
drivers/rtc/rtc-fm3130.c
503
fm3130->rtc = devm_rtc_device_register(&client->dev, client->name,
drivers/rtc/rtc-fm3130.c
505
if (IS_ERR(fm3130->rtc)) {
drivers/rtc/rtc-fm3130.c
506
err = PTR_ERR(fm3130->rtc);
drivers/rtc/rtc-fm3130.c
67
struct fm3130 *fm3130 = dev_get_drvdata(dev);
drivers/rtc/rtc-fm3130.c
69
fm3130->regs[FM3130_RTC_CONTROL] =
drivers/rtc/rtc-fm3130.c
70
i2c_smbus_read_byte_data(fm3130->client, FM3130_RTC_CONTROL);
drivers/rtc/rtc-fm3130.c
73
fm3130->regs[FM3130_RTC_CONTROL] &=
drivers/rtc/rtc-fm3130.c
78
fm3130->regs[FM3130_RTC_CONTROL] |= FM3130_RTC_CONTROL_BIT_WRITE;
drivers/rtc/rtc-fm3130.c
81
fm3130->regs[FM3130_RTC_CONTROL] |= FM3130_RTC_CONTROL_BIT_READ;
drivers/rtc/rtc-fm3130.c
88
i2c_smbus_write_byte_data(fm3130->client,
drivers/rtc/rtc-fm3130.c
89
FM3130_RTC_CONTROL, fm3130->regs[FM3130_RTC_CONTROL]);
drivers/rtc/rtc-fm3130.c
94
struct fm3130 *fm3130 = dev_get_drvdata(dev);
drivers/rtc/rtc-fm3130.c
97
if (!fm3130->data_valid) {