@@ -885,7 +885,6 @@ static int m41t80_probe(struct i2c_client *client,
885
885
{
886
886
struct i2c_adapter * adapter = to_i2c_adapter (client -> dev .parent );
887
887
int rc = 0 ;
888
- struct rtc_device * rtc = NULL ;
889
888
struct rtc_time tm ;
890
889
struct m41t80_data * m41t80_data = NULL ;
891
890
bool wakeup_source = false;
@@ -909,6 +908,10 @@ static int m41t80_probe(struct i2c_client *client,
909
908
m41t80_data -> features = id -> driver_data ;
910
909
i2c_set_clientdata (client , m41t80_data );
911
910
911
+ m41t80_data -> rtc = devm_rtc_allocate_device (& client -> dev );
912
+ if (IS_ERR (m41t80_data -> rtc ))
913
+ return PTR_ERR (m41t80_data -> rtc );
914
+
912
915
#ifdef CONFIG_OF
913
916
wakeup_source = of_property_read_bool (client -> dev .of_node ,
914
917
"wakeup-source" );
@@ -932,15 +935,11 @@ static int m41t80_probe(struct i2c_client *client,
932
935
device_init_wakeup (& client -> dev , true);
933
936
}
934
937
935
- rtc = devm_rtc_device_register (& client -> dev , client -> name ,
936
- & m41t80_rtc_ops , THIS_MODULE );
937
- if (IS_ERR (rtc ))
938
- return PTR_ERR (rtc );
938
+ m41t80_data -> rtc -> ops = & m41t80_rtc_ops ;
939
939
940
- m41t80_data -> rtc = rtc ;
941
940
if (client -> irq <= 0 ) {
942
941
/* We cannot support UIE mode if we do not have an IRQ line */
943
- rtc -> uie_unsupported = 1 ;
942
+ m41t80_data -> rtc -> uie_unsupported = 1 ;
944
943
}
945
944
946
945
/* Make sure HT (Halt Update) bit is cleared */
@@ -993,6 +992,11 @@ static int m41t80_probe(struct i2c_client *client,
993
992
if (m41t80_data -> features & M41T80_FEATURE_SQ )
994
993
m41t80_sqw_register_clk (m41t80_data );
995
994
#endif
995
+
996
+ rc = rtc_register_device (m41t80_data -> rtc );
997
+ if (rc )
998
+ return rc ;
999
+
996
1000
return 0 ;
997
1001
}
998
1002
0 commit comments