aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/rtc/rtc-m48t86.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/rtc/rtc-m48t86.c')
-rw-r--r--drivers/rtc/rtc-m48t86.c25
1 files changed, 12 insertions, 13 deletions
diff --git a/drivers/rtc/rtc-m48t86.c b/drivers/rtc/rtc-m48t86.c
index d9aea9b6d9cd..a9533535c3b7 100644
--- a/drivers/rtc/rtc-m48t86.c
+++ b/drivers/rtc/rtc-m48t86.c
@@ -100,7 +100,7 @@ static int m48t86_rtc_read_time(struct device *dev, struct rtc_time *tm)
100 if (m48t86_readb(dev, M48T86_HOUR) & 0x80) 100 if (m48t86_readb(dev, M48T86_HOUR) & 0x80)
101 tm->tm_hour += 12; 101 tm->tm_hour += 12;
102 102
103 return rtc_valid_tm(tm); 103 return 0;
104} 104}
105 105
106static int m48t86_rtc_set_time(struct device *dev, struct rtc_time *tm) 106static int m48t86_rtc_set_time(struct device *dev, struct rtc_time *tm)
@@ -218,21 +218,21 @@ static bool m48t86_verify_chip(struct platform_device *pdev)
218 return false; 218 return false;
219} 219}
220 220
221static struct nvmem_config m48t86_nvmem_cfg = {
222 .name = "m48t86_nvram",
223 .word_size = 1,
224 .stride = 1,
225 .size = M48T86_NVRAM_LEN,
226 .reg_read = m48t86_nvram_read,
227 .reg_write = m48t86_nvram_write,
228};
229
230static int m48t86_rtc_probe(struct platform_device *pdev) 221static int m48t86_rtc_probe(struct platform_device *pdev)
231{ 222{
232 struct m48t86_rtc_info *info; 223 struct m48t86_rtc_info *info;
233 struct resource *res; 224 struct resource *res;
234 unsigned char reg; 225 unsigned char reg;
235 int err; 226 int err;
227 struct nvmem_config m48t86_nvmem_cfg = {
228 .name = "m48t86_nvram",
229 .word_size = 1,
230 .stride = 1,
231 .size = M48T86_NVRAM_LEN,
232 .reg_read = m48t86_nvram_read,
233 .reg_write = m48t86_nvram_write,
234 .priv = &pdev->dev,
235 };
236 236
237 info = devm_kzalloc(&pdev->dev, sizeof(*info), GFP_KERNEL); 237 info = devm_kzalloc(&pdev->dev, sizeof(*info), GFP_KERNEL);
238 if (!info) 238 if (!info)
@@ -264,15 +264,14 @@ static int m48t86_rtc_probe(struct platform_device *pdev)
264 return PTR_ERR(info->rtc); 264 return PTR_ERR(info->rtc);
265 265
266 info->rtc->ops = &m48t86_rtc_ops; 266 info->rtc->ops = &m48t86_rtc_ops;
267
268 m48t86_nvmem_cfg.priv = &pdev->dev;
269 info->rtc->nvmem_config = &m48t86_nvmem_cfg;
270 info->rtc->nvram_old_abi = true; 267 info->rtc->nvram_old_abi = true;
271 268
272 err = rtc_register_device(info->rtc); 269 err = rtc_register_device(info->rtc);
273 if (err) 270 if (err)
274 return err; 271 return err;
275 272
273 rtc_nvmem_register(info->rtc, &m48t86_nvmem_cfg);
274
276 /* read battery status */ 275 /* read battery status */
277 reg = m48t86_readb(&pdev->dev, M48T86_D); 276 reg = m48t86_readb(&pdev->dev, M48T86_D);
278 dev_info(&pdev->dev, "battery %s\n", 277 dev_info(&pdev->dev, "battery %s\n",