rtcdrv 39 drivers/rtc/rtc-goldfish.c struct goldfish_rtc *rtcdrv; rtcdrv 41 drivers/rtc/rtc-goldfish.c rtcdrv = dev_get_drvdata(dev); rtcdrv 42 drivers/rtc/rtc-goldfish.c base = rtcdrv->base; rtcdrv 64 drivers/rtc/rtc-goldfish.c struct goldfish_rtc *rtcdrv; rtcdrv 69 drivers/rtc/rtc-goldfish.c rtcdrv = dev_get_drvdata(dev); rtcdrv 70 drivers/rtc/rtc-goldfish.c base = rtcdrv->base; rtcdrv 94 drivers/rtc/rtc-goldfish.c struct goldfish_rtc *rtcdrv; rtcdrv 96 drivers/rtc/rtc-goldfish.c rtcdrv = dev_get_drvdata(dev); rtcdrv 97 drivers/rtc/rtc-goldfish.c base = rtcdrv->base; rtcdrv 109 drivers/rtc/rtc-goldfish.c struct goldfish_rtc *rtcdrv = dev_id; rtcdrv 110 drivers/rtc/rtc-goldfish.c void __iomem *base = rtcdrv->base; rtcdrv 114 drivers/rtc/rtc-goldfish.c rtc_update_irq(rtcdrv->rtc, 1, RTC_IRQF | RTC_AF); rtcdrv 121 drivers/rtc/rtc-goldfish.c struct goldfish_rtc *rtcdrv; rtcdrv 127 drivers/rtc/rtc-goldfish.c rtcdrv = dev_get_drvdata(dev); rtcdrv 128 drivers/rtc/rtc-goldfish.c base = rtcdrv->base; rtcdrv 143 drivers/rtc/rtc-goldfish.c struct goldfish_rtc *rtcdrv; rtcdrv 147 drivers/rtc/rtc-goldfish.c rtcdrv = dev_get_drvdata(dev); rtcdrv 148 drivers/rtc/rtc-goldfish.c base = rtcdrv->base; rtcdrv 167 drivers/rtc/rtc-goldfish.c struct goldfish_rtc *rtcdrv; rtcdrv 171 drivers/rtc/rtc-goldfish.c rtcdrv = devm_kzalloc(&pdev->dev, sizeof(*rtcdrv), GFP_KERNEL); rtcdrv 172 drivers/rtc/rtc-goldfish.c if (!rtcdrv) rtcdrv 175 drivers/rtc/rtc-goldfish.c platform_set_drvdata(pdev, rtcdrv); rtcdrv 181 drivers/rtc/rtc-goldfish.c rtcdrv->base = devm_ioremap_resource(&pdev->dev, r); rtcdrv 182 drivers/rtc/rtc-goldfish.c if (IS_ERR(rtcdrv->base)) rtcdrv 185 drivers/rtc/rtc-goldfish.c rtcdrv->irq = platform_get_irq(pdev, 0); rtcdrv 186 drivers/rtc/rtc-goldfish.c if (rtcdrv->irq < 0) rtcdrv 189 drivers/rtc/rtc-goldfish.c rtcdrv->rtc = devm_rtc_allocate_device(&pdev->dev); rtcdrv 190 drivers/rtc/rtc-goldfish.c if (IS_ERR(rtcdrv->rtc)) rtcdrv 191 drivers/rtc/rtc-goldfish.c return PTR_ERR(rtcdrv->rtc); rtcdrv 193 drivers/rtc/rtc-goldfish.c rtcdrv->rtc->ops = &goldfish_rtc_ops; rtcdrv 194 drivers/rtc/rtc-goldfish.c rtcdrv->rtc->range_max = U64_MAX / NSEC_PER_SEC; rtcdrv 196 drivers/rtc/rtc-goldfish.c err = devm_request_irq(&pdev->dev, rtcdrv->irq, rtcdrv 198 drivers/rtc/rtc-goldfish.c 0, pdev->name, rtcdrv); rtcdrv 202 drivers/rtc/rtc-goldfish.c return rtc_register_device(rtcdrv->rtc); rtcdrv 58 drivers/rtc/rtc-sirfsoc.c static u32 sirfsoc_rtc_readl(struct sirfsoc_rtc_drv *rtcdrv, u32 offset) rtcdrv 62 drivers/rtc/rtc-sirfsoc.c regmap_read(rtcdrv->regmap, rtcdrv->rtc_base + offset, &val); rtcdrv 66 drivers/rtc/rtc-sirfsoc.c static void sirfsoc_rtc_writel(struct sirfsoc_rtc_drv *rtcdrv, rtcdrv 69 drivers/rtc/rtc-sirfsoc.c regmap_write(rtcdrv->regmap, rtcdrv->rtc_base + offset, val); rtcdrv 76 drivers/rtc/rtc-sirfsoc.c struct sirfsoc_rtc_drv *rtcdrv; rtcdrv 78 drivers/rtc/rtc-sirfsoc.c rtcdrv = dev_get_drvdata(dev); rtcdrv 80 drivers/rtc/rtc-sirfsoc.c spin_lock_irq(&rtcdrv->lock); rtcdrv 82 drivers/rtc/rtc-sirfsoc.c rtc_count = sirfsoc_rtc_readl(rtcdrv, RTC_CN); rtcdrv 84 drivers/rtc/rtc-sirfsoc.c rtc_alarm = sirfsoc_rtc_readl(rtcdrv, RTC_ALARM0); rtcdrv 93 drivers/rtc/rtc-sirfsoc.c rtc_time_to_tm((rtcdrv->overflow_rtc + 1) rtcdrv 97 drivers/rtc/rtc-sirfsoc.c rtc_time_to_tm(rtcdrv->overflow_rtc rtcdrv 100 drivers/rtc/rtc-sirfsoc.c if (sirfsoc_rtc_readl(rtcdrv, RTC_STATUS) & SIRFSOC_RTC_AL0E) rtcdrv 103 drivers/rtc/rtc-sirfsoc.c spin_unlock_irq(&rtcdrv->lock); rtcdrv 112 drivers/rtc/rtc-sirfsoc.c struct sirfsoc_rtc_drv *rtcdrv; rtcdrv 113 drivers/rtc/rtc-sirfsoc.c rtcdrv = dev_get_drvdata(dev); rtcdrv 118 drivers/rtc/rtc-sirfsoc.c spin_lock_irq(&rtcdrv->lock); rtcdrv 120 drivers/rtc/rtc-sirfsoc.c rtc_status_reg = sirfsoc_rtc_readl(rtcdrv, RTC_STATUS); rtcdrv 129 drivers/rtc/rtc-sirfsoc.c sirfsoc_rtc_writel(rtcdrv, RTC_ALARM0, rtc_alarm << RTC_SHIFT); rtcdrv 138 drivers/rtc/rtc-sirfsoc.c sirfsoc_rtc_writel(rtcdrv, RTC_STATUS, rtc_status_reg); rtcdrv 140 drivers/rtc/rtc-sirfsoc.c spin_unlock_irq(&rtcdrv->lock); rtcdrv 147 drivers/rtc/rtc-sirfsoc.c spin_lock_irq(&rtcdrv->lock); rtcdrv 149 drivers/rtc/rtc-sirfsoc.c rtc_status_reg = sirfsoc_rtc_readl(rtcdrv, RTC_STATUS); rtcdrv 158 drivers/rtc/rtc-sirfsoc.c sirfsoc_rtc_writel(rtcdrv, RTC_STATUS, rtcdrv 162 drivers/rtc/rtc-sirfsoc.c spin_unlock_irq(&rtcdrv->lock); rtcdrv 172 drivers/rtc/rtc-sirfsoc.c struct sirfsoc_rtc_drv *rtcdrv; rtcdrv 173 drivers/rtc/rtc-sirfsoc.c rtcdrv = dev_get_drvdata(dev); rtcdrv 180 drivers/rtc/rtc-sirfsoc.c tmp_rtc = sirfsoc_rtc_readl(rtcdrv, RTC_CN); rtcdrv 182 drivers/rtc/rtc-sirfsoc.c } while (tmp_rtc != sirfsoc_rtc_readl(rtcdrv, RTC_CN)); rtcdrv 184 drivers/rtc/rtc-sirfsoc.c rtc_time_to_tm(rtcdrv->overflow_rtc << (BITS_PER_LONG - RTC_SHIFT) | rtcdrv 193 drivers/rtc/rtc-sirfsoc.c struct sirfsoc_rtc_drv *rtcdrv; rtcdrv 194 drivers/rtc/rtc-sirfsoc.c rtcdrv = dev_get_drvdata(dev); rtcdrv 198 drivers/rtc/rtc-sirfsoc.c rtcdrv->overflow_rtc = rtc_time >> (BITS_PER_LONG - RTC_SHIFT); rtcdrv 200 drivers/rtc/rtc-sirfsoc.c sirfsoc_rtc_writel(rtcdrv, RTC_SW_VALUE, rtcdrv->overflow_rtc); rtcdrv 201 drivers/rtc/rtc-sirfsoc.c sirfsoc_rtc_writel(rtcdrv, RTC_CN, rtc_time << RTC_SHIFT); rtcdrv 210 drivers/rtc/rtc-sirfsoc.c struct sirfsoc_rtc_drv *rtcdrv; rtcdrv 212 drivers/rtc/rtc-sirfsoc.c rtcdrv = dev_get_drvdata(dev); rtcdrv 214 drivers/rtc/rtc-sirfsoc.c spin_lock_irq(&rtcdrv->lock); rtcdrv 216 drivers/rtc/rtc-sirfsoc.c rtc_status_reg = sirfsoc_rtc_readl(rtcdrv, RTC_STATUS); rtcdrv 222 drivers/rtc/rtc-sirfsoc.c sirfsoc_rtc_writel(rtcdrv, RTC_STATUS, rtc_status_reg); rtcdrv 224 drivers/rtc/rtc-sirfsoc.c spin_unlock_irq(&rtcdrv->lock); rtcdrv 240 drivers/rtc/rtc-sirfsoc.c struct sirfsoc_rtc_drv *rtcdrv = pdata; rtcdrv 244 drivers/rtc/rtc-sirfsoc.c spin_lock(&rtcdrv->lock); rtcdrv 246 drivers/rtc/rtc-sirfsoc.c rtc_status_reg = sirfsoc_rtc_readl(rtcdrv, RTC_STATUS); rtcdrv 263 drivers/rtc/rtc-sirfsoc.c sirfsoc_rtc_writel(rtcdrv, RTC_STATUS, rtc_status_reg); rtcdrv 265 drivers/rtc/rtc-sirfsoc.c spin_unlock(&rtcdrv->lock); rtcdrv 271 drivers/rtc/rtc-sirfsoc.c rtc_update_irq(rtcdrv->rtc, 1, events); rtcdrv 293 drivers/rtc/rtc-sirfsoc.c struct sirfsoc_rtc_drv *rtcdrv; rtcdrv 296 drivers/rtc/rtc-sirfsoc.c rtcdrv = devm_kzalloc(&pdev->dev, rtcdrv 298 drivers/rtc/rtc-sirfsoc.c if (rtcdrv == NULL) rtcdrv 301 drivers/rtc/rtc-sirfsoc.c spin_lock_init(&rtcdrv->lock); rtcdrv 303 drivers/rtc/rtc-sirfsoc.c err = of_property_read_u32(np, "reg", &rtcdrv->rtc_base); rtcdrv 309 drivers/rtc/rtc-sirfsoc.c platform_set_drvdata(pdev, rtcdrv); rtcdrv 314 drivers/rtc/rtc-sirfsoc.c rtcdrv->regmap = devm_regmap_init_iobg(&pdev->dev, rtcdrv 316 drivers/rtc/rtc-sirfsoc.c if (IS_ERR(rtcdrv->regmap)) { rtcdrv 317 drivers/rtc/rtc-sirfsoc.c err = PTR_ERR(rtcdrv->regmap); rtcdrv 329 drivers/rtc/rtc-sirfsoc.c sirfsoc_rtc_writel(rtcdrv, RTC_DIV, rtc_div); rtcdrv 332 drivers/rtc/rtc-sirfsoc.c sirfsoc_rtc_writel(rtcdrv, RTC_CLOCK_SWITCH, SIRFSOC_RTC_CLK); rtcdrv 335 drivers/rtc/rtc-sirfsoc.c sirfsoc_rtc_writel(rtcdrv, RTC_ALARM0, 0x0); rtcdrv 338 drivers/rtc/rtc-sirfsoc.c sirfsoc_rtc_writel(rtcdrv, RTC_ALARM1, 0x0); rtcdrv 341 drivers/rtc/rtc-sirfsoc.c rtcdrv->overflow_rtc = rtcdrv 342 drivers/rtc/rtc-sirfsoc.c sirfsoc_rtc_readl(rtcdrv, RTC_SW_VALUE); rtcdrv 344 drivers/rtc/rtc-sirfsoc.c rtcdrv->rtc = devm_rtc_device_register(&pdev->dev, pdev->name, rtcdrv 346 drivers/rtc/rtc-sirfsoc.c if (IS_ERR(rtcdrv->rtc)) { rtcdrv 347 drivers/rtc/rtc-sirfsoc.c err = PTR_ERR(rtcdrv->rtc); rtcdrv 352 drivers/rtc/rtc-sirfsoc.c rtcdrv->irq = platform_get_irq(pdev, 0); rtcdrv 355 drivers/rtc/rtc-sirfsoc.c rtcdrv->irq, rtcdrv 359 drivers/rtc/rtc-sirfsoc.c rtcdrv); rtcdrv 378 drivers/rtc/rtc-sirfsoc.c struct sirfsoc_rtc_drv *rtcdrv = dev_get_drvdata(dev); rtcdrv 379 drivers/rtc/rtc-sirfsoc.c rtcdrv->overflow_rtc = rtcdrv 380 drivers/rtc/rtc-sirfsoc.c sirfsoc_rtc_readl(rtcdrv, RTC_SW_VALUE); rtcdrv 382 drivers/rtc/rtc-sirfsoc.c rtcdrv->saved_counter = rtcdrv 383 drivers/rtc/rtc-sirfsoc.c sirfsoc_rtc_readl(rtcdrv, RTC_CN); rtcdrv 384 drivers/rtc/rtc-sirfsoc.c rtcdrv->saved_overflow_rtc = rtcdrv->overflow_rtc; rtcdrv 385 drivers/rtc/rtc-sirfsoc.c if (device_may_wakeup(dev) && !enable_irq_wake(rtcdrv->irq)) rtcdrv 386 drivers/rtc/rtc-sirfsoc.c rtcdrv->irq_wake = 1; rtcdrv 394 drivers/rtc/rtc-sirfsoc.c struct sirfsoc_rtc_drv *rtcdrv = dev_get_drvdata(dev); rtcdrv 400 drivers/rtc/rtc-sirfsoc.c if (SIRFSOC_RTC_CLK != sirfsoc_rtc_readl(rtcdrv, RTC_CLOCK_SWITCH)) { rtcdrv 403 drivers/rtc/rtc-sirfsoc.c sirfsoc_rtc_writel(rtcdrv, RTC_CLOCK_SWITCH, SIRFSOC_RTC_CLK); rtcdrv 411 drivers/rtc/rtc-sirfsoc.c sirfsoc_rtc_writel(rtcdrv, RTC_DIV, rtc_div); rtcdrv 414 drivers/rtc/rtc-sirfsoc.c sirfsoc_rtc_writel(rtcdrv, RTC_ALARM0, 0x0); rtcdrv 417 drivers/rtc/rtc-sirfsoc.c sirfsoc_rtc_writel(rtcdrv, RTC_ALARM1, 0x0); rtcdrv 419 drivers/rtc/rtc-sirfsoc.c rtcdrv->overflow_rtc = rtcdrv->saved_overflow_rtc; rtcdrv 425 drivers/rtc/rtc-sirfsoc.c tmp = sirfsoc_rtc_readl(rtcdrv, RTC_CN); rtcdrv 426 drivers/rtc/rtc-sirfsoc.c if (tmp <= rtcdrv->saved_counter) rtcdrv 427 drivers/rtc/rtc-sirfsoc.c rtcdrv->overflow_rtc++; rtcdrv 432 drivers/rtc/rtc-sirfsoc.c sirfsoc_rtc_writel(rtcdrv, RTC_SW_VALUE, rtcdrv->overflow_rtc); rtcdrv 434 drivers/rtc/rtc-sirfsoc.c if (device_may_wakeup(dev) && rtcdrv->irq_wake) { rtcdrv 435 drivers/rtc/rtc-sirfsoc.c disable_irq_wake(rtcdrv->irq); rtcdrv 436 drivers/rtc/rtc-sirfsoc.c rtcdrv->irq_wake = 0;