twl_rtc 158 drivers/rtc/rtc-twl.c static int twl_rtc_read_u8(struct twl_rtc *twl_rtc, u8 *data, u8 reg) twl_rtc 162 drivers/rtc/rtc-twl.c ret = twl_i2c_read_u8(TWL_MODULE_RTC, data, (twl_rtc->reg_map[reg])); twl_rtc 171 drivers/rtc/rtc-twl.c static int twl_rtc_write_u8(struct twl_rtc *twl_rtc, u8 data, u8 reg) twl_rtc 175 drivers/rtc/rtc-twl.c ret = twl_i2c_write_u8(TWL_MODULE_RTC, data, (twl_rtc->reg_map[reg])); twl_rtc 185 drivers/rtc/rtc-twl.c static int set_rtc_irq_bit(struct twl_rtc *twl_rtc, unsigned char bit) twl_rtc 191 drivers/rtc/rtc-twl.c if (twl_rtc->rtc_irq_bits & bit) twl_rtc 194 drivers/rtc/rtc-twl.c val = twl_rtc->rtc_irq_bits | bit; twl_rtc 196 drivers/rtc/rtc-twl.c ret = twl_rtc_write_u8(twl_rtc, val, REG_RTC_INTERRUPTS_REG); twl_rtc 198 drivers/rtc/rtc-twl.c twl_rtc->rtc_irq_bits = val; twl_rtc 206 drivers/rtc/rtc-twl.c static int mask_rtc_irq_bit(struct twl_rtc *twl_rtc, unsigned char bit) twl_rtc 212 drivers/rtc/rtc-twl.c if (!(twl_rtc->rtc_irq_bits & bit)) twl_rtc 215 drivers/rtc/rtc-twl.c val = twl_rtc->rtc_irq_bits & ~bit; twl_rtc 216 drivers/rtc/rtc-twl.c ret = twl_rtc_write_u8(twl_rtc, val, REG_RTC_INTERRUPTS_REG); twl_rtc 218 drivers/rtc/rtc-twl.c twl_rtc->rtc_irq_bits = val; twl_rtc 226 drivers/rtc/rtc-twl.c struct twl_rtc *twl_rtc = dev_get_drvdata(dev); twl_rtc 231 drivers/rtc/rtc-twl.c ret = set_rtc_irq_bit(twl_rtc, twl_rtc 233 drivers/rtc/rtc-twl.c if (device_can_wakeup(dev) && !twl_rtc->wake_enabled) { twl_rtc 235 drivers/rtc/rtc-twl.c twl_rtc->wake_enabled = true; twl_rtc 238 drivers/rtc/rtc-twl.c ret = mask_rtc_irq_bit(twl_rtc, twl_rtc 240 drivers/rtc/rtc-twl.c if (twl_rtc->wake_enabled) { twl_rtc 242 drivers/rtc/rtc-twl.c twl_rtc->wake_enabled = false; twl_rtc 260 drivers/rtc/rtc-twl.c struct twl_rtc *twl_rtc = dev_get_drvdata(dev); twl_rtc 266 drivers/rtc/rtc-twl.c ret = twl_rtc_read_u8(twl_rtc, &save_control, REG_RTC_CTRL_REG); twl_rtc 272 drivers/rtc/rtc-twl.c if (twl_rtc->class == TWL_6030) { twl_rtc 275 drivers/rtc/rtc-twl.c ret = twl_rtc_write_u8(twl_rtc, save_control, twl_rtc 289 drivers/rtc/rtc-twl.c if (twl_rtc->class == TWL_6030) twl_rtc 292 drivers/rtc/rtc-twl.c ret = twl_rtc_write_u8(twl_rtc, rtc_control, REG_RTC_CTRL_REG); twl_rtc 299 drivers/rtc/rtc-twl.c (twl_rtc->reg_map[REG_SECONDS_REG]), ALL_TIME_REGS); twl_rtc 307 drivers/rtc/rtc-twl.c if (twl_rtc->class == TWL_6030) { twl_rtc 308 drivers/rtc/rtc-twl.c ret = twl_rtc_write_u8(twl_rtc, save_control, REG_RTC_CTRL_REG); twl_rtc 328 drivers/rtc/rtc-twl.c struct twl_rtc *twl_rtc = dev_get_drvdata(dev); twl_rtc 341 drivers/rtc/rtc-twl.c ret = twl_rtc_read_u8(twl_rtc, &save_control, REG_RTC_CTRL_REG); twl_rtc 346 drivers/rtc/rtc-twl.c ret = twl_rtc_write_u8(twl_rtc, save_control, REG_RTC_CTRL_REG); twl_rtc 352 drivers/rtc/rtc-twl.c (twl_rtc->reg_map[REG_SECONDS_REG]), ALL_TIME_REGS); twl_rtc 360 drivers/rtc/rtc-twl.c ret = twl_rtc_write_u8(twl_rtc, save_control, REG_RTC_CTRL_REG); twl_rtc 371 drivers/rtc/rtc-twl.c struct twl_rtc *twl_rtc = dev_get_drvdata(dev); twl_rtc 376 drivers/rtc/rtc-twl.c twl_rtc->reg_map[REG_ALARM_SECONDS_REG], ALL_TIME_REGS); twl_rtc 391 drivers/rtc/rtc-twl.c if (twl_rtc->rtc_irq_bits & BIT_RTC_INTERRUPTS_REG_IT_ALARM_M) twl_rtc 399 drivers/rtc/rtc-twl.c struct twl_rtc *twl_rtc = dev_get_drvdata(dev); twl_rtc 417 drivers/rtc/rtc-twl.c twl_rtc->reg_map[REG_ALARM_SECONDS_REG], ALL_TIME_REGS); twl_rtc 431 drivers/rtc/rtc-twl.c struct twl_rtc *twl_rtc = data; twl_rtc 437 drivers/rtc/rtc-twl.c res = twl_rtc_read_u8(twl_rtc, &rd_reg, REG_RTC_STATUS_REG); twl_rtc 451 drivers/rtc/rtc-twl.c res = twl_rtc_write_u8(twl_rtc, BIT_RTC_STATUS_REG_ALARM_M, twl_rtc 456 drivers/rtc/rtc-twl.c if (twl_rtc->class == TWL_4030) { twl_rtc 475 drivers/rtc/rtc-twl.c rtc_update_irq(twl_rtc->rtc, 1, events); twl_rtc 494 drivers/rtc/rtc-twl.c struct twl_rtc *twl_rtc; twl_rtc 508 drivers/rtc/rtc-twl.c twl_rtc = devm_kzalloc(&pdev->dev, sizeof(*twl_rtc), GFP_KERNEL); twl_rtc 509 drivers/rtc/rtc-twl.c if (!twl_rtc) twl_rtc 513 drivers/rtc/rtc-twl.c twl_rtc->class = TWL_4030; twl_rtc 514 drivers/rtc/rtc-twl.c twl_rtc->reg_map = (u8 *)twl4030_rtc_reg_map; twl_rtc 516 drivers/rtc/rtc-twl.c twl_rtc->class = TWL_6030; twl_rtc 517 drivers/rtc/rtc-twl.c twl_rtc->reg_map = (u8 *)twl6030_rtc_reg_map; twl_rtc 523 drivers/rtc/rtc-twl.c ret = twl_rtc_read_u8(twl_rtc, &rd_reg, REG_RTC_STATUS_REG); twl_rtc 534 drivers/rtc/rtc-twl.c ret = twl_rtc_write_u8(twl_rtc, rd_reg, REG_RTC_STATUS_REG); twl_rtc 538 drivers/rtc/rtc-twl.c if (twl_rtc->class == TWL_6030) { twl_rtc 546 drivers/rtc/rtc-twl.c ret = twl_rtc_write_u8(twl_rtc, BIT_RTC_CTRL_REG_STOP_RTC_M, twl_rtc 552 drivers/rtc/rtc-twl.c ret = twl_rtc_write_u8(twl_rtc, 0, REG_RTC_INTERRUPTS_REG); twl_rtc 557 drivers/rtc/rtc-twl.c ret = twl_rtc_read_u8(twl_rtc, &twl_rtc->rtc_irq_bits, twl_rtc 562 drivers/rtc/rtc-twl.c platform_set_drvdata(pdev, twl_rtc); twl_rtc 565 drivers/rtc/rtc-twl.c twl_rtc->rtc = devm_rtc_device_register(&pdev->dev, pdev->name, twl_rtc 567 drivers/rtc/rtc-twl.c if (IS_ERR(twl_rtc->rtc)) { twl_rtc 569 drivers/rtc/rtc-twl.c PTR_ERR(twl_rtc->rtc)); twl_rtc 570 drivers/rtc/rtc-twl.c return PTR_ERR(twl_rtc->rtc); twl_rtc 576 drivers/rtc/rtc-twl.c dev_name(&twl_rtc->rtc->dev), twl_rtc); twl_rtc 591 drivers/rtc/rtc-twl.c struct twl_rtc *twl_rtc = platform_get_drvdata(pdev); twl_rtc 594 drivers/rtc/rtc-twl.c mask_rtc_irq_bit(twl_rtc, BIT_RTC_INTERRUPTS_REG_IT_ALARM_M); twl_rtc 595 drivers/rtc/rtc-twl.c mask_rtc_irq_bit(twl_rtc, BIT_RTC_INTERRUPTS_REG_IT_TIMER_M); twl_rtc 596 drivers/rtc/rtc-twl.c if (twl_rtc->class == TWL_6030) { twl_rtc 608 drivers/rtc/rtc-twl.c struct twl_rtc *twl_rtc = platform_get_drvdata(pdev); twl_rtc 612 drivers/rtc/rtc-twl.c mask_rtc_irq_bit(twl_rtc, BIT_RTC_INTERRUPTS_REG_IT_TIMER_M); twl_rtc 618 drivers/rtc/rtc-twl.c struct twl_rtc *twl_rtc = dev_get_drvdata(dev); twl_rtc 620 drivers/rtc/rtc-twl.c twl_rtc->irqstat = twl_rtc->rtc_irq_bits; twl_rtc 622 drivers/rtc/rtc-twl.c mask_rtc_irq_bit(twl_rtc, BIT_RTC_INTERRUPTS_REG_IT_TIMER_M); twl_rtc 628 drivers/rtc/rtc-twl.c struct twl_rtc *twl_rtc = dev_get_drvdata(dev); twl_rtc 630 drivers/rtc/rtc-twl.c set_rtc_irq_bit(twl_rtc, twl_rtc->irqstat);