rs5c 131 drivers/rtc/rtc-rs5c372.c static int rs5c_get_regs(struct rs5c372 *rs5c) rs5c 133 drivers/rtc/rtc-rs5c372.c struct i2c_client *client = rs5c->client; rs5c 138 drivers/rtc/rtc-rs5c372.c .len = sizeof(rs5c->buf), rs5c 139 drivers/rtc/rtc-rs5c372.c .buf = rs5c->buf rs5c 154 drivers/rtc/rtc-rs5c372.c if (rs5c->smbus) { rs5c 156 drivers/rtc/rtc-rs5c372.c int size = sizeof(rs5c->buf) - 1; rs5c 159 drivers/rtc/rtc-rs5c372.c rs5c->buf + 1) != size) { rs5c 172 drivers/rtc/rtc-rs5c372.c rs5c->regs + 0, rs5c->regs[3], rs5c 173 drivers/rtc/rtc-rs5c372.c rs5c->regs + 4, rs5c->regs[7], rs5c 174 drivers/rtc/rtc-rs5c372.c rs5c->regs + 8, rs5c->regs + 11, rs5c 175 drivers/rtc/rtc-rs5c372.c rs5c->regs[14], rs5c->regs[15]); rs5c 180 drivers/rtc/rtc-rs5c372.c static unsigned rs5c_reg2hr(struct rs5c372 *rs5c, unsigned reg) rs5c 184 drivers/rtc/rtc-rs5c372.c if (rs5c->time24) rs5c 195 drivers/rtc/rtc-rs5c372.c static unsigned rs5c_hr2reg(struct rs5c372 *rs5c, unsigned hour) rs5c 197 drivers/rtc/rtc-rs5c372.c if (rs5c->time24) rs5c 212 drivers/rtc/rtc-rs5c372.c struct rs5c372 *rs5c = i2c_get_clientdata(client); rs5c 213 drivers/rtc/rtc-rs5c372.c int status = rs5c_get_regs(rs5c); rs5c 214 drivers/rtc/rtc-rs5c372.c unsigned char ctrl2 = rs5c->regs[RS5C_REG_CTRL2]; rs5c 219 drivers/rtc/rtc-rs5c372.c switch (rs5c->type) { rs5c 222 drivers/rtc/rtc-rs5c372.c if ((rs5c->type == rtc_r2025sd && !(ctrl2 & R2x2x_CTRL2_XSTP)) || rs5c 223 drivers/rtc/rtc-rs5c372.c (rs5c->type == rtc_r2221tl && (ctrl2 & R2x2x_CTRL2_XSTP))) { rs5c 235 drivers/rtc/rtc-rs5c372.c tm->tm_sec = bcd2bin(rs5c->regs[RS5C372_REG_SECS] & 0x7f); rs5c 236 drivers/rtc/rtc-rs5c372.c tm->tm_min = bcd2bin(rs5c->regs[RS5C372_REG_MINS] & 0x7f); rs5c 237 drivers/rtc/rtc-rs5c372.c tm->tm_hour = rs5c_reg2hr(rs5c, rs5c->regs[RS5C372_REG_HOURS]); rs5c 239 drivers/rtc/rtc-rs5c372.c tm->tm_wday = bcd2bin(rs5c->regs[RS5C372_REG_WDAY] & 0x07); rs5c 240 drivers/rtc/rtc-rs5c372.c tm->tm_mday = bcd2bin(rs5c->regs[RS5C372_REG_DAY] & 0x3f); rs5c 243 drivers/rtc/rtc-rs5c372.c tm->tm_mon = bcd2bin(rs5c->regs[RS5C372_REG_MONTH] & 0x1f) - 1; rs5c 246 drivers/rtc/rtc-rs5c372.c tm->tm_year = bcd2bin(rs5c->regs[RS5C372_REG_YEAR]) + 100; rs5c 260 drivers/rtc/rtc-rs5c372.c struct rs5c372 *rs5c = i2c_get_clientdata(client); rs5c 274 drivers/rtc/rtc-rs5c372.c buf[2] = rs5c_hr2reg(rs5c, tm->tm_hour); rs5c 290 drivers/rtc/rtc-rs5c372.c switch (rs5c->type) { rs5c 294 drivers/rtc/rtc-rs5c372.c if (rs5c->type == rtc_r2025sd) rs5c 354 drivers/rtc/rtc-rs5c372.c struct rs5c372 *rs5c = i2c_get_clientdata(client); rs5c 358 drivers/rtc/rtc-rs5c372.c buf = rs5c->regs[RS5C_REG_CTRL1]; rs5c 360 drivers/rtc/rtc-rs5c372.c if (!rs5c->has_irq) rs5c 363 drivers/rtc/rtc-rs5c372.c status = rs5c_get_regs(rs5c); rs5c 377 drivers/rtc/rtc-rs5c372.c rs5c->regs[RS5C_REG_CTRL1] = buf; rs5c 395 drivers/rtc/rtc-rs5c372.c struct rs5c372 *rs5c = i2c_get_clientdata(client); rs5c 398 drivers/rtc/rtc-rs5c372.c status = rs5c_get_regs(rs5c); rs5c 404 drivers/rtc/rtc-rs5c372.c t->time.tm_min = bcd2bin(rs5c->regs[RS5C_REG_ALARM_A_MIN] & 0x7f); rs5c 405 drivers/rtc/rtc-rs5c372.c t->time.tm_hour = rs5c_reg2hr(rs5c, rs5c->regs[RS5C_REG_ALARM_A_HOURS]); rs5c 408 drivers/rtc/rtc-rs5c372.c t->enabled = !!(rs5c->regs[RS5C_REG_CTRL1] & RS5C_CTRL1_AALE); rs5c 409 drivers/rtc/rtc-rs5c372.c t->pending = !!(rs5c->regs[RS5C_REG_CTRL2] & RS5C_CTRL2_AAFG); rs5c 417 drivers/rtc/rtc-rs5c372.c struct rs5c372 *rs5c = i2c_get_clientdata(client); rs5c 430 drivers/rtc/rtc-rs5c372.c status = rs5c_get_regs(rs5c); rs5c 433 drivers/rtc/rtc-rs5c372.c if (rs5c->regs[RS5C_REG_CTRL1] & RS5C_CTRL1_AALE) { rs5c 435 drivers/rtc/rtc-rs5c372.c buf[0] = rs5c->regs[RS5C_REG_CTRL1] & ~RS5C_CTRL1_AALE; rs5c 440 drivers/rtc/rtc-rs5c372.c rs5c->regs[RS5C_REG_CTRL1] = buf[0]; rs5c 445 drivers/rtc/rtc-rs5c372.c buf[1] = rs5c_hr2reg(rs5c, t->time.tm_hour); rs5c 459 drivers/rtc/rtc-rs5c372.c buf[0] = rs5c->regs[RS5C_REG_CTRL1] | RS5C_CTRL1_AALE; rs5c 462 drivers/rtc/rtc-rs5c372.c rs5c->regs[RS5C_REG_CTRL1] = buf[0];