Commit d1fbe695 authored by Alexandre Belloni's avatar Alexandre Belloni

rtc: ds1672: set range

The ds1672 is a 32bit seconds counter.

Also remove erroneous comment claiming that epoch is set to 2000, it was
not.
Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
parent 43dae505
...@@ -21,12 +21,10 @@ ...@@ -21,12 +21,10 @@
#define DS1672_REG_CONTROL_EOSC 0x80 #define DS1672_REG_CONTROL_EOSC 0x80
static struct i2c_driver ds1672_driver;
/* /*
* In the routines that deal directly with the ds1672 hardware, we use * In the routines that deal directly with the ds1672 hardware, we use
* rtc_time -- month 0-11, hour 0-23, yr = calendar year-epoch * rtc_time -- month 0-11, hour 0-23, yr = calendar year-epoch
* Epoch is initialized as 2000. Time is set to UTC. * Time is set to UTC.
*/ */
static int ds1672_get_datetime(struct i2c_client *client, struct rtc_time *tm) static int ds1672_get_datetime(struct i2c_client *client, struct rtc_time *tm)
{ {
...@@ -164,8 +162,16 @@ static int ds1672_probe(struct i2c_client *client, ...@@ -164,8 +162,16 @@ static int ds1672_probe(struct i2c_client *client,
if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C))
return -ENODEV; return -ENODEV;
rtc = devm_rtc_device_register(&client->dev, ds1672_driver.driver.name, rtc = devm_rtc_allocate_device(&client->dev);
&ds1672_rtc_ops, THIS_MODULE); if (IS_ERR(rtc))
return PTR_ERR(rtc);
rtc->ops = &ds1672_rtc_ops;
rtc->range_max = U32_MAX;
err = rtc_register_device(rtc);
if (err)
return err;
if (IS_ERR(rtc)) if (IS_ERR(rtc))
return PTR_ERR(rtc); return PTR_ERR(rtc);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment