.. | .. |
---|
34 | 34 | |
---|
35 | 35 | t = alchemy_rdsys(AU1000_SYS_TOYREAD); |
---|
36 | 36 | |
---|
37 | | - rtc_time_to_tm(t, tm); |
---|
| 37 | + rtc_time64_to_tm(t, tm); |
---|
38 | 38 | |
---|
39 | 39 | return 0; |
---|
40 | 40 | } |
---|
.. | .. |
---|
43 | 43 | { |
---|
44 | 44 | unsigned long t; |
---|
45 | 45 | |
---|
46 | | - rtc_tm_to_time(tm, &t); |
---|
| 46 | + t = rtc_tm_to_time64(tm); |
---|
47 | 47 | |
---|
48 | 48 | alchemy_wrsys(t, AU1000_SYS_TOYWRITE); |
---|
49 | 49 | |
---|
.. | .. |
---|
65 | 65 | { |
---|
66 | 66 | struct rtc_device *rtcdev; |
---|
67 | 67 | unsigned long t; |
---|
68 | | - int ret; |
---|
69 | 68 | |
---|
70 | 69 | t = alchemy_rdsys(AU1000_SYS_CNTRCTRL); |
---|
71 | 70 | if (!(t & CNTR_OK)) { |
---|
72 | 71 | dev_err(&pdev->dev, "counters not working; aborting.\n"); |
---|
73 | | - ret = -ENODEV; |
---|
74 | | - goto out_err; |
---|
| 72 | + return -ENODEV; |
---|
75 | 73 | } |
---|
76 | | - |
---|
77 | | - ret = -ETIMEDOUT; |
---|
78 | 74 | |
---|
79 | 75 | /* set counter0 tickrate to 1Hz if necessary */ |
---|
80 | 76 | if (alchemy_rdsys(AU1000_SYS_TOYTRIM) != 32767) { |
---|
.. | .. |
---|
88 | 84 | * counters are unusable. |
---|
89 | 85 | */ |
---|
90 | 86 | dev_err(&pdev->dev, "timeout waiting for access\n"); |
---|
91 | | - goto out_err; |
---|
| 87 | + return -ETIMEDOUT; |
---|
92 | 88 | } |
---|
93 | 89 | |
---|
94 | 90 | /* set 1Hz TOY tick rate */ |
---|
.. | .. |
---|
99 | 95 | while (alchemy_rdsys(AU1000_SYS_CNTRCTRL) & SYS_CNTRL_C0S) |
---|
100 | 96 | msleep(1); |
---|
101 | 97 | |
---|
102 | | - rtcdev = devm_rtc_device_register(&pdev->dev, "rtc-au1xxx", |
---|
103 | | - &au1xtoy_rtc_ops, THIS_MODULE); |
---|
104 | | - if (IS_ERR(rtcdev)) { |
---|
105 | | - ret = PTR_ERR(rtcdev); |
---|
106 | | - goto out_err; |
---|
107 | | - } |
---|
| 98 | + rtcdev = devm_rtc_allocate_device(&pdev->dev); |
---|
| 99 | + if (IS_ERR(rtcdev)) |
---|
| 100 | + return PTR_ERR(rtcdev); |
---|
| 101 | + |
---|
| 102 | + rtcdev->ops = &au1xtoy_rtc_ops; |
---|
| 103 | + rtcdev->range_max = U32_MAX; |
---|
108 | 104 | |
---|
109 | 105 | platform_set_drvdata(pdev, rtcdev); |
---|
110 | 106 | |
---|
111 | | - return 0; |
---|
112 | | - |
---|
113 | | -out_err: |
---|
114 | | - return ret; |
---|
| 107 | + return rtc_register_device(rtcdev); |
---|
115 | 108 | } |
---|
116 | 109 | |
---|
117 | 110 | static struct platform_driver au1xrtc_driver = { |
---|