Symbol: s35390a
drivers/rtc/rtc-s35390a.c
105
static int s35390a_init(struct s35390a *s35390a)
drivers/rtc/rtc-s35390a.c
121
ret = s35390a_set_reg(s35390a, S35390A_CMD_STATUS1, &buf, 1);
drivers/rtc/rtc-s35390a.c
126
ret = s35390a_get_reg(s35390a, S35390A_CMD_STATUS1, &buf, 1);
drivers/rtc/rtc-s35390a.c
147
static int s35390a_read_status(struct s35390a *s35390a, char *status1)
drivers/rtc/rtc-s35390a.c
151
ret = s35390a_get_reg(s35390a, S35390A_CMD_STATUS1, status1, 1);
drivers/rtc/rtc-s35390a.c
170
static int s35390a_disable_test_mode(struct s35390a *s35390a)
drivers/rtc/rtc-s35390a.c
174
if (s35390a_get_reg(s35390a, S35390A_CMD_STATUS2, buf, sizeof(buf)) < 0)
drivers/rtc/rtc-s35390a.c
181
return s35390a_set_reg(s35390a, S35390A_CMD_STATUS2, buf, sizeof(buf));
drivers/rtc/rtc-s35390a.c
184
static char s35390a_hr2reg(struct s35390a *s35390a, int hour)
drivers/rtc/rtc-s35390a.c
186
if (s35390a->twentyfourhour)
drivers/rtc/rtc-s35390a.c
195
static int s35390a_reg2hr(struct s35390a *s35390a, char reg)
drivers/rtc/rtc-s35390a.c
199
if (s35390a->twentyfourhour)
drivers/rtc/rtc-s35390a.c
212
struct s35390a *s35390a = i2c_get_clientdata(client);
drivers/rtc/rtc-s35390a.c
221
if (s35390a_read_status(s35390a, &status) == 1)
drivers/rtc/rtc-s35390a.c
222
s35390a_init(s35390a);
drivers/rtc/rtc-s35390a.c
228
buf[S35390A_BYTE_HOURS] = s35390a_hr2reg(s35390a, tm->tm_hour);
drivers/rtc/rtc-s35390a.c
236
return s35390a_set_reg(s35390a, S35390A_CMD_TIME1, buf, sizeof(buf));
drivers/rtc/rtc-s35390a.c
242
struct s35390a *s35390a = i2c_get_clientdata(client);
drivers/rtc/rtc-s35390a.c
246
if (s35390a_read_status(s35390a, &status) == 1)
drivers/rtc/rtc-s35390a.c
249
err = s35390a_get_reg(s35390a, S35390A_CMD_TIME1, buf, sizeof(buf));
drivers/rtc/rtc-s35390a.c
259
tm->tm_hour = s35390a_reg2hr(s35390a, buf[S35390A_BYTE_HOURS]);
drivers/rtc/rtc-s35390a.c
276
struct s35390a *s35390a = i2c_get_clientdata(client);
drivers/rtc/rtc-s35390a.c
286
err = s35390a_set_reg(s35390a, S35390A_CMD_STATUS2, &sts, sizeof(sts));
drivers/rtc/rtc-s35390a.c
291
err = s35390a_get_reg(s35390a, S35390A_CMD_STATUS1, &sts, sizeof(sts));
drivers/rtc/rtc-s35390a.c
301
err = s35390a_set_reg(s35390a, S35390A_CMD_STATUS2, &sts, sizeof(sts));
drivers/rtc/rtc-s35390a.c
310
buf[S35390A_ALRM_BYTE_HOURS] = s35390a_hr2reg(s35390a,
drivers/rtc/rtc-s35390a.c
320
err = s35390a_set_reg(s35390a, S35390A_CMD_INT2_REG1, buf,
drivers/rtc/rtc-s35390a.c
329
struct s35390a *s35390a = i2c_get_clientdata(client);
drivers/rtc/rtc-s35390a.c
333
err = s35390a_get_reg(s35390a, S35390A_CMD_STATUS2, &sts, sizeof(sts));
drivers/rtc/rtc-s35390a.c
348
err = s35390a_get_reg(s35390a, S35390A_CMD_INT2_REG1, buf, sizeof(buf));
drivers/rtc/rtc-s35390a.c
366
s35390a_reg2hr(s35390a,
drivers/rtc/rtc-s35390a.c
386
struct s35390a *s35390a = i2c_get_clientdata(client);
drivers/rtc/rtc-s35390a.c
393
err = s35390a_read_status(s35390a, &sts);
drivers/rtc/rtc-s35390a.c
401
err = s35390a_init(s35390a);
drivers/rtc/rtc-s35390a.c
423
struct s35390a *s35390a = priv;
drivers/rtc/rtc-s35390a.c
426
return s35390a_get_reg(s35390a, S35390A_CMD_FREE_REG, val, bytes);
drivers/rtc/rtc-s35390a.c
432
struct s35390a *s35390a = priv;
drivers/rtc/rtc-s35390a.c
434
return s35390a_set_reg(s35390a, S35390A_CMD_FREE_REG, val, bytes);
drivers/rtc/rtc-s35390a.c
441
struct s35390a *s35390a;
drivers/rtc/rtc-s35390a.c
458
s35390a = devm_kzalloc(dev, sizeof(struct s35390a), GFP_KERNEL);
drivers/rtc/rtc-s35390a.c
459
if (!s35390a)
drivers/rtc/rtc-s35390a.c
462
s35390a->client[0] = client;
drivers/rtc/rtc-s35390a.c
463
i2c_set_clientdata(client, s35390a);
drivers/rtc/rtc-s35390a.c
467
s35390a->client[i] = devm_i2c_new_dummy_device(dev,
drivers/rtc/rtc-s35390a.c
470
if (IS_ERR(s35390a->client[i])) {
drivers/rtc/rtc-s35390a.c
473
return PTR_ERR(s35390a->client[i]);
drivers/rtc/rtc-s35390a.c
481
err_read = s35390a_read_status(s35390a, &status1);
drivers/rtc/rtc-s35390a.c
488
s35390a->twentyfourhour = 1;
drivers/rtc/rtc-s35390a.c
490
s35390a->twentyfourhour = 0;
drivers/rtc/rtc-s35390a.c
495
err = s35390a_set_reg(s35390a, S35390A_CMD_STATUS2, &buf, 1);
drivers/rtc/rtc-s35390a.c
501
err = s35390a_disable_test_mode(s35390a);
drivers/rtc/rtc-s35390a.c
520
nvmem_cfg.priv = s35390a;
drivers/rtc/rtc-s35390a.c
70
static int s35390a_set_reg(struct s35390a *s35390a, int reg, u8 *buf, int len)
drivers/rtc/rtc-s35390a.c
72
struct i2c_client *client = s35390a->client[reg];
drivers/rtc/rtc-s35390a.c
87
static int s35390a_get_reg(struct s35390a *s35390a, int reg, u8 *buf, int len)
drivers/rtc/rtc-s35390a.c
89
struct i2c_client *client = s35390a->client[reg];