Many RTCs have an on board non volatile storage. It can be battery backed RAM or an EEPROM. Use the nvmem subsystem to export it to both userspace and in-kernel consumers. This stays compatible with the previous (non documented) ABI that was using /sys/class/rtc/rtcx/device/nvram to export that memory. But will warn about the deprecation. Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
56 lines
1.1 KiB
C
56 lines
1.1 KiB
C
#ifdef CONFIG_RTC_INTF_DEV
|
|
|
|
extern void __init rtc_dev_init(void);
|
|
extern void __exit rtc_dev_exit(void);
|
|
extern void rtc_dev_prepare(struct rtc_device *rtc);
|
|
|
|
#else
|
|
|
|
static inline void rtc_dev_init(void)
|
|
{
|
|
}
|
|
|
|
static inline void rtc_dev_exit(void)
|
|
{
|
|
}
|
|
|
|
static inline void rtc_dev_prepare(struct rtc_device *rtc)
|
|
{
|
|
}
|
|
|
|
#endif
|
|
|
|
#ifdef CONFIG_RTC_INTF_PROC
|
|
|
|
extern void rtc_proc_add_device(struct rtc_device *rtc);
|
|
extern void rtc_proc_del_device(struct rtc_device *rtc);
|
|
|
|
#else
|
|
|
|
static inline void rtc_proc_add_device(struct rtc_device *rtc)
|
|
{
|
|
}
|
|
|
|
static inline void rtc_proc_del_device(struct rtc_device *rtc)
|
|
{
|
|
}
|
|
|
|
#endif
|
|
|
|
#ifdef CONFIG_RTC_INTF_SYSFS
|
|
const struct attribute_group **rtc_get_dev_attribute_groups(void);
|
|
#else
|
|
static inline const struct attribute_group **rtc_get_dev_attribute_groups(void)
|
|
{
|
|
return NULL;
|
|
}
|
|
#endif
|
|
|
|
#ifdef CONFIG_RTC_NVMEM
|
|
void rtc_nvmem_register(struct rtc_device *rtc);
|
|
void rtc_nvmem_unregister(struct rtc_device *rtc);
|
|
#else
|
|
static inline void rtc_nvmem_register(struct rtc_device *rtc) {}
|
|
static inline void rtc_nvmem_unregister(struct rtc_device *rtc) {}
|
|
#endif
|