Lines Matching defs:rtcdev

61 static void mpfs_rtc_start(struct mpfs_rtc_dev *rtcdev)
65 ctrl = readl(rtcdev->base + CONTROL_REG);
68 writel(ctrl, rtcdev->base + CONTROL_REG);
71 static void mpfs_rtc_clear_irq(struct mpfs_rtc_dev *rtcdev)
73 u32 val = readl(rtcdev->base + CONTROL_REG);
77 writel(val, rtcdev->base + CONTROL_REG);
83 (void)readl(rtcdev->base + CONTROL_REG);
88 struct mpfs_rtc_dev *rtcdev = dev_get_drvdata(dev);
91 time = readl(rtcdev->base + DATETIME_LOWER_REG);
92 time |= ((u64)readl(rtcdev->base + DATETIME_UPPER_REG) & DATETIME_UPPER_MASK) << 32;
100 struct mpfs_rtc_dev *rtcdev = dev_get_drvdata(dev);
107 writel((u32)time, rtcdev->base + DATETIME_LOWER_REG);
108 writel((u32)(time >> 32) & DATETIME_UPPER_MASK, rtcdev->base + DATETIME_UPPER_REG);
110 ctrl = readl(rtcdev->base + CONTROL_REG);
113 writel(ctrl, rtcdev->base + CONTROL_REG);
116 false, rtcdev->base + CONTROL_REG);
121 mpfs_rtc_start(rtcdev);
128 struct mpfs_rtc_dev *rtcdev = dev_get_drvdata(dev);
129 u32 mode = readl(rtcdev->base + MODE_REG);
134 time = (u64)readl(rtcdev->base + ALARM_LOWER_REG) << 32;
135 time |= (readl(rtcdev->base + ALARM_UPPER_REG) & ALARM_UPPER_MASK);
143 struct mpfs_rtc_dev *rtcdev = dev_get_drvdata(dev);
148 ctrl = readl(rtcdev->base + CONTROL_REG);
150 writel(ctrl, rtcdev->base + CONTROL_REG);
154 writel((u32)time, rtcdev->base + ALARM_LOWER_REG);
155 writel((u32)(time >> 32) & ALARM_UPPER_MASK, rtcdev->base + ALARM_UPPER_REG);
158 writel(GENMASK(31, 0), rtcdev->base + COMPARE_LOWER_REG);
159 writel(GENMASK(29, 0), rtcdev->base + COMPARE_UPPER_REG);
162 ctrl = readl(rtcdev->base + CONTROL_REG);
163 mode = readl(rtcdev->base + MODE_REG);
172 writel(ctrl, rtcdev->base + CONTROL_REG);
173 writel(mode, rtcdev->base + MODE_REG);
180 struct mpfs_rtc_dev *rtcdev = dev_get_drvdata(dev);
183 ctrl = readl(rtcdev->base + CONTROL_REG);
191 writel(ctrl, rtcdev->base + CONTROL_REG);
198 struct mpfs_rtc_dev *rtcdev = dev;
200 mpfs_rtc_clear_irq(rtcdev);
202 rtc_update_irq(rtcdev->rtc, 1, RTC_IRQF | RTC_AF);
217 struct mpfs_rtc_dev *rtcdev;
222 rtcdev = devm_kzalloc(&pdev->dev, sizeof(struct mpfs_rtc_dev), GFP_KERNEL);
223 if (!rtcdev)
226 platform_set_drvdata(pdev, rtcdev);
228 rtcdev->rtc = devm_rtc_allocate_device(&pdev->dev);
229 if (IS_ERR(rtcdev->rtc))
230 return PTR_ERR(rtcdev->rtc);
232 rtcdev->rtc->ops = &mpfs_rtc_ops;
235 rtcdev->rtc->range_max = GENMASK_ULL(42, 0);
241 rtcdev->base = devm_platform_ioremap_resource(pdev, 0);
242 if (IS_ERR(rtcdev->base)) {
244 return PTR_ERR(rtcdev->base);
253 dev_name(&pdev->dev), rtcdev);
266 writel(prescaler, rtcdev->base + PRESCALER_REG);
274 return devm_rtc_register_device(rtcdev->rtc);