1cdf7545aSAlexandre Belloni // SPDX-License-Identifier: GPL-2.0 2697e5a47SAlexandre Belloni /* 3697e5a47SAlexandre Belloni * RTC subsystem, nvmem interface 4697e5a47SAlexandre Belloni * 5697e5a47SAlexandre Belloni * Copyright (C) 2017 Alexandre Belloni 6697e5a47SAlexandre Belloni */ 7697e5a47SAlexandre Belloni 8697e5a47SAlexandre Belloni #include <linux/err.h> 9697e5a47SAlexandre Belloni #include <linux/types.h> 10697e5a47SAlexandre Belloni #include <linux/nvmem-consumer.h> 11697e5a47SAlexandre Belloni #include <linux/rtc.h> 12697e5a47SAlexandre Belloni devm_rtc_nvmem_register(struct rtc_device * rtc,struct nvmem_config * nvmem_config)133a905c2dSBartosz Golaszewskiint devm_rtc_nvmem_register(struct rtc_device *rtc, 144cce9d39SAlexandre Belloni struct nvmem_config *nvmem_config) 15697e5a47SAlexandre Belloni { 166746bc09SBartosz Golaszewski struct device *dev = rtc->dev.parent; 1741c9e132SAlexandre Belloni struct nvmem_device *nvmem; 18ab3ea36eSAlexandre Belloni 194cce9d39SAlexandre Belloni if (!nvmem_config) 202cc82121SAlexandre Belloni return -ENODEV; 21697e5a47SAlexandre Belloni 226746bc09SBartosz Golaszewski nvmem_config->dev = dev; 234cce9d39SAlexandre Belloni nvmem_config->owner = rtc->owner; 24*26e2fe4cSRafał Miłecki nvmem_config->add_legacy_fixed_of_cells = true; 256746bc09SBartosz Golaszewski nvmem = devm_nvmem_register(dev, nvmem_config); 266746bc09SBartosz Golaszewski if (IS_ERR(nvmem)) 276746bc09SBartosz Golaszewski dev_err(dev, "failed to register nvmem device for RTC\n"); 28697e5a47SAlexandre Belloni 2925ece305SAlexandre Belloni return PTR_ERR_OR_ZERO(nvmem); 30697e5a47SAlexandre Belloni } 313a905c2dSBartosz Golaszewski EXPORT_SYMBOL_GPL(devm_rtc_nvmem_register); 32