nvmem.c 703 B

123456789101112131415161718192021222324252627282930
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * RTC subsystem, nvmem interface
  4. *
  5. * Copyright (C) 2017 Alexandre Belloni
  6. */
  7. #include <linux/err.h>
  8. #include <linux/types.h>
  9. #include <linux/nvmem-consumer.h>
  10. #include <linux/rtc.h>
  11. int devm_rtc_nvmem_register(struct rtc_device *rtc,
  12. struct nvmem_config *nvmem_config)
  13. {
  14. struct device *dev = rtc->dev.parent;
  15. struct nvmem_device *nvmem;
  16. if (!nvmem_config)
  17. return -ENODEV;
  18. nvmem_config->dev = dev;
  19. nvmem_config->owner = rtc->owner;
  20. nvmem = devm_nvmem_register(dev, nvmem_config);
  21. if (IS_ERR(nvmem))
  22. dev_err(dev, "failed to register nvmem device for RTC\n");
  23. return PTR_ERR_OR_ZERO(nvmem);
  24. }
  25. EXPORT_SYMBOL_GPL(devm_rtc_nvmem_register);