Lines Matching +full:no +full:- +full:read +full:- +full:rollover
6 * Maintainers: http://www.nslu2-linux.org/
25 * PCF85063A -- Rev. 6 — 18 November 2015
26 * PCF85063TP -- Rev. 4 — 6 May 2015
51 dev_err(&client->dev, "Failing to stop the clock\n"); in pcf85063_stop_clock()
52 return -EIO; in pcf85063_stop_clock()
60 dev_err(&client->dev, "Failing to stop the clock\n"); in pcf85063_stop_clock()
61 return -EIO; in pcf85063_stop_clock()
78 dev_err(&client->dev, "Failing to start the clock\n"); in pcf85063_start_clock()
79 return -EIO; in pcf85063_start_clock()
94 * event, the access must be finished within one second. So, read all in pcf85063_rtc_read_time()
100 dev_err(&client->dev, "date/time register read error\n"); in pcf85063_rtc_read_time()
101 return -EIO; in pcf85063_rtc_read_time()
104 /* if the clock has lost its power it makes no sense to use its time */ in pcf85063_rtc_read_time()
106 dev_warn(&client->dev, "Power loss detected, invalid time\n"); in pcf85063_rtc_read_time()
107 return -EINVAL; in pcf85063_rtc_read_time()
110 tm->tm_sec = bcd2bin(regs[0] & 0x7F); in pcf85063_rtc_read_time()
111 tm->tm_min = bcd2bin(regs[1] & 0x7F); in pcf85063_rtc_read_time()
112 tm->tm_hour = bcd2bin(regs[2] & 0x3F); /* rtc hr 0-23 */ in pcf85063_rtc_read_time()
113 tm->tm_mday = bcd2bin(regs[3] & 0x3F); in pcf85063_rtc_read_time()
114 tm->tm_wday = regs[4] & 0x07; in pcf85063_rtc_read_time()
115 tm->tm_mon = bcd2bin(regs[5] & 0x1F) - 1; /* rtc mn 1-12 */ in pcf85063_rtc_read_time()
116 tm->tm_year = bcd2bin(regs[6]); in pcf85063_rtc_read_time()
117 tm->tm_year += 100; in pcf85063_rtc_read_time()
129 if ((tm->tm_year < 100) || (tm->tm_year > 199)) in pcf85063_rtc_set_time()
130 return -EINVAL; in pcf85063_rtc_set_time()
141 regs[0] = bin2bcd(tm->tm_sec) & 0x7F; /* clear OS flag */ in pcf85063_rtc_set_time()
143 regs[1] = bin2bcd(tm->tm_min); in pcf85063_rtc_set_time()
144 regs[2] = bin2bcd(tm->tm_hour); in pcf85063_rtc_set_time()
146 /* Day of month, 1 - 31 */ in pcf85063_rtc_set_time()
147 regs[3] = bin2bcd(tm->tm_mday); in pcf85063_rtc_set_time()
149 /* Day, 0 - 6 */ in pcf85063_rtc_set_time()
150 regs[4] = tm->tm_wday & 0x07; in pcf85063_rtc_set_time()
152 /* month, 1 - 12 */ in pcf85063_rtc_set_time()
153 regs[5] = bin2bcd(tm->tm_mon + 1); in pcf85063_rtc_set_time()
156 regs[6] = bin2bcd(tm->tm_year - 100); in pcf85063_rtc_set_time()
162 dev_err(&client->dev, "date/time register write error\n"); in pcf85063_rtc_set_time()
169 * PCF85063A devices. The rollover point can not be used. in pcf85063_rtc_set_time()
189 dev_dbg(&client->dev, "%s\n", __func__); in pcf85063_probe()
191 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) in pcf85063_probe()
192 return -ENODEV; in pcf85063_probe()
196 dev_err(&client->dev, "RTC chip is not present\n"); in pcf85063_probe()
200 rtc = devm_rtc_device_register(&client->dev, in pcf85063_probe()
223 .name = "rtc-pcf85063",