Lines Matching refs:rs5c372

120 struct rs5c372 {  struct
131 static int rs5c_get_regs(struct rs5c372 *rs5c) in rs5c_get_regs() argument
180 static unsigned rs5c_reg2hr(struct rs5c372 *rs5c, unsigned reg) in rs5c_reg2hr()
195 static unsigned rs5c_hr2reg(struct rs5c372 *rs5c, unsigned hour) in rs5c_hr2reg()
212 struct rs5c372 *rs5c = i2c_get_clientdata(client); in rs5c372_rtc_read_time()
260 struct rs5c372 *rs5c = i2c_get_clientdata(client); in rs5c372_rtc_set_time()
324 struct rs5c372 *rs5c372 = i2c_get_clientdata(client); in rs5c372_get_trim() local
325 u8 tmp = rs5c372->regs[RS5C372_REG_TRIM]; in rs5c372_get_trim()
354 struct rs5c372 *rs5c = i2c_get_clientdata(client); in rs5c_rtc_alarm_irq_enable()
395 struct rs5c372 *rs5c = i2c_get_clientdata(client); in rs5c_read_alarm()
417 struct rs5c372 *rs5c = i2c_get_clientdata(client); in rs5c_set_alarm()
559 static int rs5c_oscillator_setup(struct rs5c372 *rs5c372) in rs5c_oscillator_setup() argument
565 buf[0] = rs5c372->regs[RS5C_REG_CTRL1]; in rs5c_oscillator_setup()
566 buf[1] = rs5c372->regs[RS5C_REG_CTRL2]; in rs5c_oscillator_setup()
568 switch (rs5c372->type) { in rs5c_oscillator_setup()
584 switch (rs5c372->type) { in rs5c_oscillator_setup()
588 rs5c372->time24 = 1; in rs5c_oscillator_setup()
595 rs5c372->time24 = 1; in rs5c_oscillator_setup()
604 ret = i2c_smbus_write_byte_data(rs5c372->client, addr, buf[i]); in rs5c_oscillator_setup()
609 rs5c372->regs[RS5C_REG_CTRL1] = buf[0]; in rs5c_oscillator_setup()
610 rs5c372->regs[RS5C_REG_CTRL2] = buf[1]; in rs5c_oscillator_setup()
620 struct rs5c372 *rs5c372; in rs5c372_probe() local
641 rs5c372 = devm_kzalloc(&client->dev, sizeof(struct rs5c372), in rs5c372_probe()
643 if (!rs5c372) { in rs5c372_probe()
648 rs5c372->client = client; in rs5c372_probe()
649 i2c_set_clientdata(client, rs5c372); in rs5c372_probe()
651 rs5c372->type = (enum rtc_type) in rs5c372_probe()
654 rs5c372->type = id->driver_data; in rs5c372_probe()
657 rs5c372->regs = &rs5c372->buf[1]; in rs5c372_probe()
658 rs5c372->smbus = smbus_mode; in rs5c372_probe()
660 err = rs5c_get_regs(rs5c372); in rs5c372_probe()
665 switch (rs5c372->type) { in rs5c372_probe()
671 if (rs5c372->regs[RS5C_REG_CTRL2] & RS5C372_CTRL2_24) in rs5c372_probe()
672 rs5c372->time24 = 1; in rs5c372_probe()
678 if (rs5c372->regs[RS5C_REG_CTRL1] & RV5C387_CTRL1_24) in rs5c372_probe()
679 rs5c372->time24 = 1; in rs5c372_probe()
695 err = rs5c_oscillator_setup(rs5c372); in rs5c372_probe()
702 ({ char *s; switch (rs5c372->type) { in rs5c372_probe()
711 rs5c372->time24 ? "24hr" : "am/pm" in rs5c372_probe()
715 rs5c372->rtc = devm_rtc_device_register(&client->dev, in rs5c372_probe()
719 if (IS_ERR(rs5c372->rtc)) { in rs5c372_probe()
720 err = PTR_ERR(rs5c372->rtc); in rs5c372_probe()