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, cfg: nvmem_config); |
26 | if (IS_ERR(ptr: nvmem)) |
27 | dev_err(dev, "failed to register nvmem device for RTC\n"); |
28 | |
29 | return PTR_ERR_OR_ZERO(ptr: nvmem); |
30 | } |
31 | EXPORT_SYMBOL_GPL(devm_rtc_nvmem_register); |
32 |