diff options
Diffstat (limited to 'drivers/rtc/rtc-m48t86.c')
| -rw-r--r-- | drivers/rtc/rtc-m48t86.c | 25 |
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 | ||
| 106 | static int m48t86_rtc_set_time(struct device *dev, struct rtc_time *tm) | 106 | static 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 | ||
| 221 | static 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 | |||
| 230 | static int m48t86_rtc_probe(struct platform_device *pdev) | 221 | static 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", |
