Lines Matching refs:buf

84 static int tm_calc(struct rtc_time *tm, unsigned char *buf, int len)
88 tm->tm_year = (buf[RTC_YEAR2] >> 4) * 1000
89 + (buf[RTC_YEAR2] & 0xf) * 100
90 + (buf[RTC_YEAR1] >> 4) * 10
91 + (buf[RTC_YEAR1] & 0xf);
93 tm->tm_mon = ((buf[RTC_MONTH] >> 4) & 0x01) * 10
94 + (buf[RTC_MONTH] & 0x0f);
95 tm->tm_mday = ((buf[RTC_DATE] >> 4) & 0x03) * 10
96 + (buf[RTC_DATE] & 0x0f);
97 tm->tm_wday = buf[RTC_WEEKDAY] & 0x07;
98 if (buf[RTC_HOUR] & HOUR_12) {
99 tm->tm_hour = ((buf[RTC_HOUR] >> 4) & 0x1) * 10
100 + (buf[RTC_HOUR] & 0x0f);
101 if (buf[RTC_HOUR] & HOUR_AM_PM)
104 tm->tm_hour = ((buf[RTC_HOUR] >> 4) & 0x03) * 10
105 + (buf[RTC_HOUR] & 0x0f);
106 tm->tm_min = ((buf[RTC_MIN] >> 4) & 0x7) * 10
107 + (buf[RTC_MIN] & 0x0f);
108 tm->tm_sec = ((buf[RTC_SEC] >> 4) & 0x7) * 10
109 + (buf[RTC_SEC] & 0x0f);
113 static int data_calc(unsigned char *buf, struct rtc_time *tm, int len)
123 buf[RTC_YEAR2] = (high << 4) + low;
128 buf[RTC_YEAR1] = (high << 4) + low;
132 buf[RTC_MONTH] = (high << 4) + low;
136 buf[RTC_DATE] = (high << 4) + low;
137 buf[RTC_WEEKDAY] = tm->tm_wday;
141 buf[RTC_HOUR] = (high << 4) + low;
145 buf[RTC_MIN] = (high << 4) + low;
149 buf[RTC_SEC] = (high << 4) + low;
156 unsigned char buf[TIME_NUM];
159 ret = max8925_bulk_read(info->rtc, MAX8925_RTC_SEC, TIME_NUM, buf);
162 ret = tm_calc(tm, buf, TIME_NUM);
170 unsigned char buf[TIME_NUM];
173 ret = data_calc(buf, tm, TIME_NUM);
176 ret = max8925_bulk_write(info->rtc, MAX8925_RTC_SEC, TIME_NUM, buf);
184 unsigned char buf[TIME_NUM];
187 ret = max8925_bulk_read(info->rtc, MAX8925_ALARM0_SEC, TIME_NUM, buf);
190 ret = tm_calc(&alrm->time, buf, TIME_NUM);
222 unsigned char buf[TIME_NUM];
225 ret = data_calc(buf, &alrm->time, TIME_NUM);
228 ret = max8925_bulk_write(info->rtc, MAX8925_ALARM0_SEC, TIME_NUM, buf);