Lines Matching refs:data

271 static void max77686_rtc_data_to_tm(u8 *data, struct rtc_time *tm,
276 tm->tm_sec = data[RTC_SEC] & mask;
277 tm->tm_min = data[RTC_MIN] & mask;
279 tm->tm_hour = data[RTC_HOUR] & 0x1f;
281 tm->tm_hour = data[RTC_HOUR] & 0x0f;
282 if (data[RTC_HOUR] & HOUR_PM_MASK)
286 /* Only a single bit is set in data[], so fls() would be equivalent */
287 tm->tm_wday = ffs(data[RTC_WEEKDAY] & mask) - 1;
288 tm->tm_mday = data[RTC_DATE] & 0x1f;
289 tm->tm_mon = (data[RTC_MONTH] & 0x0f) - 1;
290 tm->tm_year = data[RTC_YEAR] & mask;
302 static int max77686_rtc_tm_to_data(struct rtc_time *tm, u8 *data,
305 data[RTC_SEC] = tm->tm_sec;
306 data[RTC_MIN] = tm->tm_min;
307 data[RTC_HOUR] = tm->tm_hour;
308 data[RTC_WEEKDAY] = 1 << tm->tm_wday;
309 data[RTC_DATE] = tm->tm_mday;
310 data[RTC_MONTH] = tm->tm_mon + 1;
313 data[RTC_YEAR] = tm->tm_year;
317 data[RTC_YEAR] = tm->tm_year > 100 ? (tm->tm_year - 100) : 0;
332 unsigned int data;
336 data = 1 << RTC_UDR_SHIFT;
338 data = 1 << RTC_RBUDR_SHIFT;
342 data, data);
344 dev_err(info->dev, "Fail to write update reg(ret=%d, data=0x%x)\n",
345 ret, data);
357 u8 data[RTC_NR_TIME];
368 data, ARRAY_SIZE(data));
374 max77686_rtc_data_to_tm(data, tm, info);
384 u8 data[RTC_NR_TIME];
387 ret = max77686_rtc_tm_to_data(tm, data, info);
395 data, ARRAY_SIZE(data));
411 u8 data[RTC_NR_TIME];
423 data, ARRAY_SIZE(data));
429 max77686_rtc_data_to_tm(data, &alrm->time, info);
451 for (i = 0; i < ARRAY_SIZE(data); i++) {
452 if (data[i] & ALARM_ENABLE_MASK) {
482 u8 data[RTC_NR_TIME];
505 data, ARRAY_SIZE(data));
511 max77686_rtc_data_to_tm(data, &tm, info);
513 for (i = 0; i < ARRAY_SIZE(data); i++)
514 data[i] &= ~ALARM_ENABLE_MASK;
517 data, ARRAY_SIZE(data));
532 u8 data[RTC_NR_TIME];
549 data, ARRAY_SIZE(data));
555 max77686_rtc_data_to_tm(data, &tm, info);
557 data[RTC_SEC] |= (1 << ALARM_ENABLE_SHIFT);
558 data[RTC_MIN] |= (1 << ALARM_ENABLE_SHIFT);
559 data[RTC_HOUR] |= (1 << ALARM_ENABLE_SHIFT);
560 data[RTC_WEEKDAY] &= ~ALARM_ENABLE_MASK;
561 if (data[RTC_MONTH] & 0xf)
562 data[RTC_MONTH] |= (1 << ALARM_ENABLE_SHIFT);
563 if (data[RTC_YEAR] & info->drv_data->mask)
564 data[RTC_YEAR] |= (1 << ALARM_ENABLE_SHIFT);
565 if (data[RTC_DATE] & 0x1f)
566 data[RTC_DATE] |= (1 << ALARM_ENABLE_SHIFT);
569 data, ARRAY_SIZE(data));
585 u8 data[RTC_NR_TIME];
588 ret = max77686_rtc_tm_to_data(&alrm->time, data, info);
600 data, ARRAY_SIZE(data));
634 static irqreturn_t max77686_rtc_alarm_irq(int irq, void *data)
636 struct max77686_rtc_info *info = data;
655 u8 data[2];
659 data[0] = (1 << BCD_EN_SHIFT) | (1 << MODEL24_SHIFT);
660 data[1] = (0 << BCD_EN_SHIFT) | (1 << MODEL24_SHIFT);
666 data, ARRAY_SIZE(data));