Lines Matching refs:rtc

75 	struct ftrtc010_rtc *rtc = dev_get_drvdata(dev);  in ftrtc010_rtc_read_time()  local
80 sec = readl(rtc->rtc_base + FTRTC010_RTC_SECOND); in ftrtc010_rtc_read_time()
81 min = readl(rtc->rtc_base + FTRTC010_RTC_MINUTE); in ftrtc010_rtc_read_time()
82 hour = readl(rtc->rtc_base + FTRTC010_RTC_HOUR); in ftrtc010_rtc_read_time()
83 days = readl(rtc->rtc_base + FTRTC010_RTC_DAYS); in ftrtc010_rtc_read_time()
84 offset = readl(rtc->rtc_base + FTRTC010_RTC_RECORD); in ftrtc010_rtc_read_time()
95 struct ftrtc010_rtc *rtc = dev_get_drvdata(dev); in ftrtc010_rtc_set_time() local
101 sec = readl(rtc->rtc_base + FTRTC010_RTC_SECOND); in ftrtc010_rtc_set_time()
102 min = readl(rtc->rtc_base + FTRTC010_RTC_MINUTE); in ftrtc010_rtc_set_time()
103 hour = readl(rtc->rtc_base + FTRTC010_RTC_HOUR); in ftrtc010_rtc_set_time()
104 day = readl(rtc->rtc_base + FTRTC010_RTC_DAYS); in ftrtc010_rtc_set_time()
108 writel(offset, rtc->rtc_base + FTRTC010_RTC_RECORD); in ftrtc010_rtc_set_time()
109 writel(0x01, rtc->rtc_base + FTRTC010_RTC_CR); in ftrtc010_rtc_set_time()
122 struct ftrtc010_rtc *rtc; in ftrtc010_rtc_probe() local
127 rtc = devm_kzalloc(&pdev->dev, sizeof(*rtc), GFP_KERNEL); in ftrtc010_rtc_probe()
128 if (unlikely(!rtc)) in ftrtc010_rtc_probe()
130 platform_set_drvdata(pdev, rtc); in ftrtc010_rtc_probe()
132 rtc->pclk = devm_clk_get(dev, "PCLK"); in ftrtc010_rtc_probe()
133 if (IS_ERR(rtc->pclk)) { in ftrtc010_rtc_probe()
136 ret = clk_prepare_enable(rtc->pclk); in ftrtc010_rtc_probe()
142 rtc->extclk = devm_clk_get(dev, "EXTCLK"); in ftrtc010_rtc_probe()
143 if (IS_ERR(rtc->extclk)) { in ftrtc010_rtc_probe()
146 ret = clk_prepare_enable(rtc->extclk); in ftrtc010_rtc_probe()
157 rtc->rtc_irq = res->start; in ftrtc010_rtc_probe()
163 rtc->rtc_base = devm_ioremap(dev, res->start, in ftrtc010_rtc_probe()
165 if (!rtc->rtc_base) in ftrtc010_rtc_probe()
168 rtc->rtc_dev = devm_rtc_allocate_device(dev); in ftrtc010_rtc_probe()
169 if (IS_ERR(rtc->rtc_dev)) in ftrtc010_rtc_probe()
170 return PTR_ERR(rtc->rtc_dev); in ftrtc010_rtc_probe()
172 rtc->rtc_dev->ops = &ftrtc010_rtc_ops; in ftrtc010_rtc_probe()
174 sec = readl(rtc->rtc_base + FTRTC010_RTC_SECOND); in ftrtc010_rtc_probe()
175 min = readl(rtc->rtc_base + FTRTC010_RTC_MINUTE); in ftrtc010_rtc_probe()
176 hour = readl(rtc->rtc_base + FTRTC010_RTC_HOUR); in ftrtc010_rtc_probe()
177 days = readl(rtc->rtc_base + FTRTC010_RTC_DAYS); in ftrtc010_rtc_probe()
179 rtc->rtc_dev->range_min = (u64)days * 86400 + hour * 3600 + in ftrtc010_rtc_probe()
181 rtc->rtc_dev->range_max = U32_MAX + rtc->rtc_dev->range_min; in ftrtc010_rtc_probe()
183 ret = devm_request_irq(dev, rtc->rtc_irq, ftrtc010_rtc_interrupt, in ftrtc010_rtc_probe()
188 return rtc_register_device(rtc->rtc_dev); in ftrtc010_rtc_probe()
193 struct ftrtc010_rtc *rtc = platform_get_drvdata(pdev); in ftrtc010_rtc_remove() local
195 if (!IS_ERR(rtc->extclk)) in ftrtc010_rtc_remove()
196 clk_disable_unprepare(rtc->extclk); in ftrtc010_rtc_remove()
197 if (!IS_ERR(rtc->pclk)) in ftrtc010_rtc_remove()
198 clk_disable_unprepare(rtc->pclk); in ftrtc010_rtc_remove()