Lines Matching defs:sp_rtc
67 struct sunplus_rtc *sp_rtc = dev_get_drvdata(dev);
69 *secs = (unsigned long)readl(sp_rtc->reg_base + RTC_TIMER_OUT);
74 struct sunplus_rtc *sp_rtc = dev_get_drvdata(dev);
76 writel((u32)secs, sp_rtc->reg_base + RTC_TIMER_SET);
102 struct sunplus_rtc *sp_rtc = dev_get_drvdata(dev);
107 writel((u32)alarm_time, sp_rtc->reg_base + RTC_ALARM_SET);
114 struct sunplus_rtc *sp_rtc = dev_get_drvdata(dev);
117 alarm_time = readl(sp_rtc->reg_base + RTC_ALARM_SET);
132 struct sunplus_rtc *sp_rtc = dev_get_drvdata(dev);
139 sp_rtc->reg_base + RTC_CTRL);
142 0x0, sp_rtc->reg_base + RTC_CTRL);
158 struct sunplus_rtc *sp_rtc = dev_get_drvdata(&plat_dev->dev);
160 rtc_update_irq(sp_rtc->rtc, 1, RTC_IRQF | RTC_AF);
182 struct sunplus_rtc *sp_rtc = dev_get_drvdata(&dev);
210 writel(BAT_CHARGE_RSEL_MASK_BIT | rsel, sp_rtc->reg_base + RTC_BATT_CHARGE_CTRL);
215 sp_rtc->reg_base + RTC_BATT_CHARGE_CTRL);
219 sp_rtc->reg_base + RTC_BATT_CHARGE_CTRL);
226 writel(BAT_CHARGE_EN_MASK_BIT | BAT_CHARGE_EN, sp_rtc->reg_base + RTC_BATT_CHARGE_CTRL);
231 struct sunplus_rtc *sp_rtc;
234 sp_rtc = devm_kzalloc(&plat_dev->dev, sizeof(*sp_rtc), GFP_KERNEL);
235 if (!sp_rtc)
238 sp_rtc->reg_base = devm_platform_ioremap_resource_byname(plat_dev, RTC_REG_NAME);
239 if (IS_ERR(sp_rtc->reg_base))
240 return dev_err_probe(&plat_dev->dev, PTR_ERR(sp_rtc->reg_base),
243 sp_rtc->res, sp_rtc->reg_base);
245 sp_rtc->irq = platform_get_irq(plat_dev, 0);
246 if (sp_rtc->irq < 0)
247 return sp_rtc->irq;
249 ret = devm_request_irq(&plat_dev->dev, sp_rtc->irq, sp_rtc_irq_handler,
254 sp_rtc->rtcclk = devm_clk_get(&plat_dev->dev, NULL);
255 if (IS_ERR(sp_rtc->rtcclk))
256 return dev_err_probe(&plat_dev->dev, PTR_ERR(sp_rtc->rtcclk),
259 sp_rtc->rstc = devm_reset_control_get_exclusive(&plat_dev->dev, NULL);
260 if (IS_ERR(sp_rtc->rstc))
261 return dev_err_probe(&plat_dev->dev, PTR_ERR(sp_rtc->rstc),
264 ret = clk_prepare_enable(sp_rtc->rtcclk);
268 ret = reset_control_deassert(sp_rtc->rstc);
273 dev_set_drvdata(&plat_dev->dev, sp_rtc);
275 sp_rtc->rtc = devm_rtc_allocate_device(&plat_dev->dev);
276 if (IS_ERR(sp_rtc->rtc)) {
277 ret = PTR_ERR(sp_rtc->rtc);
281 sp_rtc->rtc->range_max = U32_MAX;
282 sp_rtc->rtc->range_min = 0;
283 sp_rtc->rtc->ops = &sp_rtc_ops;
285 ret = devm_rtc_register_device(sp_rtc->rtc);
294 writel(DIS_SYS_RST_RTC_MASK_BIT | DIS_SYS_RST_RTC, sp_rtc->reg_base + RTC_CTRL);
299 reset_control_assert(sp_rtc->rstc);
301 clk_disable_unprepare(sp_rtc->rtcclk);
308 struct sunplus_rtc *sp_rtc = dev_get_drvdata(&plat_dev->dev);
311 reset_control_assert(sp_rtc->rstc);
312 clk_disable_unprepare(sp_rtc->rtcclk);
318 struct sunplus_rtc *sp_rtc = dev_get_drvdata(dev);
321 enable_irq_wake(sp_rtc->irq);
328 struct sunplus_rtc *sp_rtc = dev_get_drvdata(dev);
331 disable_irq_wake(sp_rtc->irq);