Lines Matching defs:rtc
7 #include <linux/rtc.h>
24 struct aspeed_rtc *rtc = dev_get_drvdata(dev);
28 if (!(readl(rtc->base + RTC_CTRL) & RTC_ENABLE)) {
29 dev_dbg(dev, "%s failing as rtc disabled\n", __func__);
34 reg2 = readl(rtc->base + RTC_YEAR);
35 reg1 = readl(rtc->base + RTC_TIME);
36 } while (reg2 != readl(rtc->base + RTC_YEAR));
55 struct aspeed_rtc *rtc = dev_get_drvdata(dev);
68 ctrl = readl(rtc->base + RTC_CTRL);
69 writel(ctrl | RTC_UNLOCK, rtc->base + RTC_CTRL);
71 writel(reg1, rtc->base + RTC_TIME);
72 writel(reg2, rtc->base + RTC_YEAR);
75 writel(ctrl | RTC_ENABLE, rtc->base + RTC_CTRL);
87 struct aspeed_rtc *rtc;
89 rtc = devm_kzalloc(&pdev->dev, sizeof(*rtc), GFP_KERNEL);
90 if (!rtc)
93 rtc->base = devm_platform_ioremap_resource(pdev, 0);
94 if (IS_ERR(rtc->base))
95 return PTR_ERR(rtc->base);
97 rtc->rtc_dev = devm_rtc_allocate_device(&pdev->dev);
98 if (IS_ERR(rtc->rtc_dev))
99 return PTR_ERR(rtc->rtc_dev);
101 platform_set_drvdata(pdev, rtc);
103 rtc->rtc_dev->ops = &aspeed_rtc_ops;
104 rtc->rtc_dev->range_min = RTC_TIMESTAMP_BEGIN_1900;
105 rtc->rtc_dev->range_max = 38814989399LL; /* 3199-12-31 23:59:59 */
107 return rtc_register_device(rtc->rtc_dev);
111 { .compatible = "aspeed,ast2400-rtc", },
112 { .compatible = "aspeed,ast2500-rtc", },
113 { .compatible = "aspeed,ast2600-rtc", },
120 .name = "aspeed-rtc",