s35390a 71 drivers/rtc/rtc-s35390a.c static int s35390a_set_reg(struct s35390a *s35390a, int reg, char *buf, int len) s35390a 73 drivers/rtc/rtc-s35390a.c struct i2c_client *client = s35390a->client[reg]; s35390a 88 drivers/rtc/rtc-s35390a.c static int s35390a_get_reg(struct s35390a *s35390a, int reg, char *buf, int len) s35390a 90 drivers/rtc/rtc-s35390a.c struct i2c_client *client = s35390a->client[reg]; s35390a 106 drivers/rtc/rtc-s35390a.c static int s35390a_init(struct s35390a *s35390a) s35390a 122 drivers/rtc/rtc-s35390a.c ret = s35390a_set_reg(s35390a, S35390A_CMD_STATUS1, &buf, 1); s35390a 127 drivers/rtc/rtc-s35390a.c ret = s35390a_get_reg(s35390a, S35390A_CMD_STATUS1, &buf, 1); s35390a 148 drivers/rtc/rtc-s35390a.c static int s35390a_read_status(struct s35390a *s35390a, char *status1) s35390a 152 drivers/rtc/rtc-s35390a.c ret = s35390a_get_reg(s35390a, S35390A_CMD_STATUS1, status1, 1); s35390a 171 drivers/rtc/rtc-s35390a.c static int s35390a_disable_test_mode(struct s35390a *s35390a) s35390a 175 drivers/rtc/rtc-s35390a.c if (s35390a_get_reg(s35390a, S35390A_CMD_STATUS2, buf, sizeof(buf)) < 0) s35390a 182 drivers/rtc/rtc-s35390a.c return s35390a_set_reg(s35390a, S35390A_CMD_STATUS2, buf, sizeof(buf)); s35390a 185 drivers/rtc/rtc-s35390a.c static char s35390a_hr2reg(struct s35390a *s35390a, int hour) s35390a 187 drivers/rtc/rtc-s35390a.c if (s35390a->twentyfourhour) s35390a 196 drivers/rtc/rtc-s35390a.c static int s35390a_reg2hr(struct s35390a *s35390a, char reg) s35390a 200 drivers/rtc/rtc-s35390a.c if (s35390a->twentyfourhour) s35390a 213 drivers/rtc/rtc-s35390a.c struct s35390a *s35390a = i2c_get_clientdata(client); s35390a 222 drivers/rtc/rtc-s35390a.c if (s35390a_read_status(s35390a, &status) == 1) s35390a 223 drivers/rtc/rtc-s35390a.c s35390a_init(s35390a); s35390a 229 drivers/rtc/rtc-s35390a.c buf[S35390A_BYTE_HOURS] = s35390a_hr2reg(s35390a, tm->tm_hour); s35390a 237 drivers/rtc/rtc-s35390a.c err = s35390a_set_reg(s35390a, S35390A_CMD_TIME1, buf, sizeof(buf)); s35390a 245 drivers/rtc/rtc-s35390a.c struct s35390a *s35390a = i2c_get_clientdata(client); s35390a 249 drivers/rtc/rtc-s35390a.c if (s35390a_read_status(s35390a, &status) == 1) s35390a 252 drivers/rtc/rtc-s35390a.c err = s35390a_get_reg(s35390a, S35390A_CMD_TIME1, buf, sizeof(buf)); s35390a 262 drivers/rtc/rtc-s35390a.c tm->tm_hour = s35390a_reg2hr(s35390a, buf[S35390A_BYTE_HOURS]); s35390a 279 drivers/rtc/rtc-s35390a.c struct s35390a *s35390a = i2c_get_clientdata(client); s35390a 292 drivers/rtc/rtc-s35390a.c err = s35390a_set_reg(s35390a, S35390A_CMD_STATUS2, &sts, sizeof(sts)); s35390a 297 drivers/rtc/rtc-s35390a.c err = s35390a_get_reg(s35390a, S35390A_CMD_STATUS1, &sts, sizeof(sts)); s35390a 307 drivers/rtc/rtc-s35390a.c err = s35390a_set_reg(s35390a, S35390A_CMD_STATUS2, &sts, sizeof(sts)); s35390a 316 drivers/rtc/rtc-s35390a.c buf[S35390A_ALRM_BYTE_HOURS] = s35390a_hr2reg(s35390a, s35390a 326 drivers/rtc/rtc-s35390a.c err = s35390a_set_reg(s35390a, S35390A_CMD_INT2_REG1, buf, s35390a 335 drivers/rtc/rtc-s35390a.c struct s35390a *s35390a = i2c_get_clientdata(client); s35390a 339 drivers/rtc/rtc-s35390a.c err = s35390a_get_reg(s35390a, S35390A_CMD_STATUS2, &sts, sizeof(sts)); s35390a 354 drivers/rtc/rtc-s35390a.c err = s35390a_get_reg(s35390a, S35390A_CMD_INT2_REG1, buf, sizeof(buf)); s35390a 372 drivers/rtc/rtc-s35390a.c s35390a_reg2hr(s35390a, s35390a 392 drivers/rtc/rtc-s35390a.c struct s35390a *s35390a = i2c_get_clientdata(client); s35390a 399 drivers/rtc/rtc-s35390a.c err = s35390a_read_status(s35390a, &sts); s35390a 407 drivers/rtc/rtc-s35390a.c err = s35390a_init(s35390a); s35390a 433 drivers/rtc/rtc-s35390a.c struct s35390a *s35390a; s35390a 440 drivers/rtc/rtc-s35390a.c s35390a = devm_kzalloc(dev, sizeof(struct s35390a), GFP_KERNEL); s35390a 441 drivers/rtc/rtc-s35390a.c if (!s35390a) s35390a 444 drivers/rtc/rtc-s35390a.c s35390a->client[0] = client; s35390a 445 drivers/rtc/rtc-s35390a.c i2c_set_clientdata(client, s35390a); s35390a 449 drivers/rtc/rtc-s35390a.c s35390a->client[i] = devm_i2c_new_dummy_device(dev, s35390a 452 drivers/rtc/rtc-s35390a.c if (IS_ERR(s35390a->client[i])) { s35390a 455 drivers/rtc/rtc-s35390a.c return PTR_ERR(s35390a->client[i]); s35390a 459 drivers/rtc/rtc-s35390a.c err_read = s35390a_read_status(s35390a, &status1); s35390a 466 drivers/rtc/rtc-s35390a.c s35390a->twentyfourhour = 1; s35390a 468 drivers/rtc/rtc-s35390a.c s35390a->twentyfourhour = 0; s35390a 473 drivers/rtc/rtc-s35390a.c err = s35390a_set_reg(s35390a, S35390A_CMD_STATUS2, &buf, 1); s35390a 479 drivers/rtc/rtc-s35390a.c err = s35390a_disable_test_mode(s35390a); s35390a 488 drivers/rtc/rtc-s35390a.c s35390a->rtc = devm_rtc_device_register(dev, s35390a_driver.driver.name, s35390a 491 drivers/rtc/rtc-s35390a.c if (IS_ERR(s35390a->rtc)) s35390a 492 drivers/rtc/rtc-s35390a.c return PTR_ERR(s35390a->rtc); s35390a 495 drivers/rtc/rtc-s35390a.c s35390a->rtc->uie_unsupported = 1; s35390a 498 drivers/rtc/rtc-s35390a.c rtc_update_irq(s35390a->rtc, 1, RTC_AF);