Merge tag 'nfsd-6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux
[linux-2.6-microblaze.git] / drivers / rtc / nvmem.c
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * RTC subsystem, nvmem interface
4  *
5  * Copyright (C) 2017 Alexandre Belloni
6  */
7
8 #include <linux/err.h>
9 #include <linux/types.h>
10 #include <linux/nvmem-consumer.h>
11 #include <linux/rtc.h>
12
13 int devm_rtc_nvmem_register(struct rtc_device *rtc,
14                        struct nvmem_config *nvmem_config)
15 {
16         struct device *dev = rtc->dev.parent;
17         struct nvmem_device *nvmem;
18
19         if (!nvmem_config)
20                 return -ENODEV;
21
22         nvmem_config->dev = dev;
23         nvmem_config->owner = rtc->owner;
24         nvmem_config->add_legacy_fixed_of_cells = true;
25         nvmem = devm_nvmem_register(dev, nvmem_config);
26         if (IS_ERR(nvmem))
27                 dev_err(dev, "failed to register nvmem device for RTC\n");
28
29         return PTR_ERR_OR_ZERO(nvmem);
30 }
31 EXPORT_SYMBOL_GPL(devm_rtc_nvmem_register);