#include <linux/nvmem-consumer.h>
static const char nvram_warning[] = "Deprecated ABI, please use nvmem";
rtc_nvram_read(struct file *filp, struct kobject *kobj,
struct bin_attribute *attr,
char *buf, loff_t off, size_t count)
dev_warn_once(kobj_to_dev(kobj), nvram_warning);
return nvmem_device_read(attr->private, off, count, buf);
rtc_nvram_write(struct file *filp, struct kobject *kobj,
struct bin_attribute *attr,
char *buf, loff_t off, size_t count)
dev_warn_once(kobj_to_dev(kobj), nvram_warning);
return nvmem_device_write(attr->private, off, count, buf);
static int rtc_nvram_register(struct rtc_device *rtc,
struct nvmem_device *nvmem, size_t size)
rtc->nvram = kzalloc(sizeof(struct bin_attribute), GFP_KERNEL);
rtc->nvram->attr.name = "nvram";
rtc->nvram->attr.mode = 0644;
rtc->nvram->private = nvmem;
sysfs_bin_attr_init(rtc->nvram);
rtc->nvram->read = rtc_nvram_read;
rtc->nvram->write = rtc_nvram_write;
err = sysfs_create_bin_file(&rtc->dev.parent->kobj,