Commit 13bfa942 authored by Alexandre Belloni's avatar Alexandre Belloni
Browse files

rtc: ds2404: set range



The real-time clock is a 5-byte binary counter. It is incremented 256 times
per second. The least significant byte is a count of fractional seconds.
The upper four bytes are a count of seconds. The realtime clock can
accumulate 136 years of seconds before rolling over.

Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
parent d71c7715
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -234,6 +234,10 @@ static int rtc_probe(struct platform_device *pdev)

	chip->ops = &ds2404_gpio_ops;

	chip->rtc = devm_rtc_allocate_device(&pdev->dev);
	if (IS_ERR(chip->rtc))
		return PTR_ERR(chip->rtc);

	retval = chip->ops->map_io(chip, pdev, pdata);
	if (retval)
		goto err_chip;
@@ -244,12 +248,12 @@ static int rtc_probe(struct platform_device *pdev)

	platform_set_drvdata(pdev, chip);

	chip->rtc = devm_rtc_device_register(&pdev->dev, "ds2404",
					&ds2404_rtc_ops, THIS_MODULE);
	if (IS_ERR(chip->rtc)) {
		retval = PTR_ERR(chip->rtc);
	chip->rtc->ops = &ds2404_rtc_ops;
	chip->rtc->range_max = U32_MAX;

	retval = rtc_register_device(chip->rtc);
	if (retval)
		goto err_io;
	}

	ds2404_enable_osc(&pdev->dev);
	return 0;