/* * Gets current rc5t583 RTC time and date parameters. * * The RTC's time/alarm representation is not what gmtime(3) requires * Linux to use: * * - Months are 1..12 vs Linux 0-11 * - Years are 0..99 vs Linux 1900..N (we assume 21st century)
*/ staticint rc5t583_rtc_read_time(struct device *dev, struct rtc_time *tm)
{ struct rc5t583 *rc5t583 = dev_get_drvdata(dev->parent);
u8 rtc_data[NUM_TIME_REGS]; int ret;
ret = regmap_bulk_read(rc5t583->regmap, RC5T583_RTC_SEC, rtc_data,
NUM_TIME_REGS); if (ret < 0) {
dev_err(dev, "RTC read time failed with err:%d\n", ret); return ret;
}
ret = regmap_bulk_write(rc5t583->regmap, RC5T583_RTC_SEC, rtc_data,
NUM_TIME_REGS); if (ret < 0) {
dev_err(dev, "RTC set time failed with error %d\n", ret); return ret;
}
staticint rc5t583_rtc_probe(struct platform_device *pdev)
{ struct rc5t583 *rc5t583 = dev_get_drvdata(pdev->dev.parent); struct rc5t583_rtc *ricoh_rtc; struct rc5t583_platform_data *pmic_plat_data; int ret; int irq;
ricoh_rtc = devm_kzalloc(&pdev->dev, sizeof(struct rc5t583_rtc),
GFP_KERNEL); if (!ricoh_rtc) return -ENOMEM;
platform_set_drvdata(pdev, ricoh_rtc);
/* Clear pending interrupts */
ret = regmap_write(rc5t583->regmap, RC5T583_RTC_CTL2, 0); if (ret < 0) return ret;
/* clear RTC Adjust register */
ret = regmap_write(rc5t583->regmap, RC5T583_RTC_ADJ, 0); if (ret < 0) {
dev_err(&pdev->dev, "unable to program rtc_adjust reg\n"); return -EBUSY;
}
pmic_plat_data = dev_get_platdata(rc5t583->dev);
irq = pmic_plat_data->irq_base; if (irq <= 0) {
dev_warn(&pdev->dev, "Wake up is not possible as irq = %d\n",
irq); return ret;
}
irq += RC5T583_IRQ_YALE;
ret = devm_request_threaded_irq(&pdev->dev, irq, NULL,
rc5t583_rtc_interrupt, IRQF_TRIGGER_LOW, "rtc-rc5t583", &pdev->dev); if (ret < 0) {
dev_err(&pdev->dev, "IRQ is not free.\n"); return ret;
}
device_init_wakeup(&pdev->dev, true);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.