46
46
47
47
static struct i2c_driver isl12022_driver ;
48
48
49
- struct isl12022 {
50
- struct rtc_device * rtc ;
51
- struct regmap * regmap ;
52
- };
53
-
54
49
static umode_t isl12022_hwmon_is_visible (const void * data ,
55
50
enum hwmon_sensor_types type ,
56
51
u32 attr , int channel )
@@ -67,8 +62,7 @@ static umode_t isl12022_hwmon_is_visible(const void *data,
67
62
*/
68
63
static int isl12022_hwmon_read_temp (struct device * dev , long * mC )
69
64
{
70
- struct isl12022 * isl12022 = dev_get_drvdata (dev );
71
- struct regmap * regmap = isl12022 -> regmap ;
65
+ struct regmap * regmap = dev_get_drvdata (dev );
72
66
u8 temp_buf [2 ];
73
67
int temp , ret ;
74
68
@@ -115,23 +109,21 @@ static const struct hwmon_chip_info isl12022_hwmon_chip_info = {
115
109
116
110
static void isl12022_hwmon_register (struct device * dev )
117
111
{
118
- struct isl12022 * isl12022 ;
112
+ struct regmap * regmap = dev_get_drvdata ( dev ) ;
119
113
struct device * hwmon ;
120
114
int ret ;
121
115
122
116
if (!IS_REACHABLE (CONFIG_HWMON ))
123
117
return ;
124
118
125
- isl12022 = dev_get_drvdata (dev );
126
-
127
- ret = regmap_update_bits (isl12022 -> regmap , ISL12022_REG_BETA ,
119
+ ret = regmap_update_bits (regmap , ISL12022_REG_BETA ,
128
120
ISL12022_BETA_TSE , ISL12022_BETA_TSE );
129
121
if (ret ) {
130
122
dev_warn (dev , "unable to enable temperature sensor\n" );
131
123
return ;
132
124
}
133
125
134
- hwmon = devm_hwmon_device_register_with_info (dev , "isl12022" , isl12022 ,
126
+ hwmon = devm_hwmon_device_register_with_info (dev , "isl12022" , regmap ,
135
127
& isl12022_hwmon_chip_info ,
136
128
NULL );
137
129
if (IS_ERR (hwmon ))
@@ -144,8 +136,7 @@ static void isl12022_hwmon_register(struct device *dev)
144
136
*/
145
137
static int isl12022_rtc_read_time (struct device * dev , struct rtc_time * tm )
146
138
{
147
- struct isl12022 * isl12022 = dev_get_drvdata (dev );
148
- struct regmap * regmap = isl12022 -> regmap ;
139
+ struct regmap * regmap = dev_get_drvdata (dev );
149
140
uint8_t buf [ISL12022_REG_INT + 1 ];
150
141
int ret ;
151
142
@@ -190,8 +181,7 @@ static int isl12022_rtc_read_time(struct device *dev, struct rtc_time *tm)
190
181
191
182
static int isl12022_rtc_set_time (struct device * dev , struct rtc_time * tm )
192
183
{
193
- struct isl12022 * isl12022 = dev_get_drvdata (dev );
194
- struct regmap * regmap = isl12022 -> regmap ;
184
+ struct regmap * regmap = dev_get_drvdata (dev );
195
185
int ret ;
196
186
uint8_t buf [ISL12022_REG_DW + 1 ];
197
187
@@ -218,8 +208,7 @@ static int isl12022_rtc_set_time(struct device *dev, struct rtc_time *tm)
218
208
219
209
buf [ISL12022_REG_DW ] = tm -> tm_wday & 0x07 ;
220
210
221
- return regmap_bulk_write (isl12022 -> regmap , ISL12022_REG_SC ,
222
- buf , sizeof (buf ));
211
+ return regmap_bulk_write (regmap , ISL12022_REG_SC , buf , sizeof (buf ));
223
212
}
224
213
225
214
static const struct rtc_class_ops isl12022_rtc_ops = {
@@ -235,34 +224,31 @@ static const struct regmap_config regmap_config = {
235
224
236
225
static int isl12022_probe (struct i2c_client * client )
237
226
{
238
- struct isl12022 * isl12022 ;
227
+ struct rtc_device * rtc ;
228
+ struct regmap * regmap ;
239
229
240
230
if (!i2c_check_functionality (client -> adapter , I2C_FUNC_I2C ))
241
231
return - ENODEV ;
242
232
243
- isl12022 = devm_kzalloc (& client -> dev , sizeof (struct isl12022 ),
244
- GFP_KERNEL );
245
- if (!isl12022 )
246
- return - ENOMEM ;
247
- dev_set_drvdata (& client -> dev , isl12022 );
248
-
249
- isl12022 -> regmap = devm_regmap_init_i2c (client , & regmap_config );
250
- if (IS_ERR (isl12022 -> regmap )) {
233
+ regmap = devm_regmap_init_i2c (client , & regmap_config );
234
+ if (IS_ERR (regmap )) {
251
235
dev_err (& client -> dev , "regmap allocation failed\n" );
252
- return PTR_ERR (isl12022 -> regmap );
236
+ return PTR_ERR (regmap );
253
237
}
254
238
239
+ dev_set_drvdata (& client -> dev , regmap );
240
+
255
241
isl12022_hwmon_register (& client -> dev );
256
242
257
- isl12022 -> rtc = devm_rtc_allocate_device (& client -> dev );
258
- if (IS_ERR (isl12022 -> rtc ))
259
- return PTR_ERR (isl12022 -> rtc );
243
+ rtc = devm_rtc_allocate_device (& client -> dev );
244
+ if (IS_ERR (rtc ))
245
+ return PTR_ERR (rtc );
260
246
261
- isl12022 -> rtc -> ops = & isl12022_rtc_ops ;
262
- isl12022 -> rtc -> range_min = RTC_TIMESTAMP_BEGIN_2000 ;
263
- isl12022 -> rtc -> range_max = RTC_TIMESTAMP_END_2099 ;
247
+ rtc -> ops = & isl12022_rtc_ops ;
248
+ rtc -> range_min = RTC_TIMESTAMP_BEGIN_2000 ;
249
+ rtc -> range_max = RTC_TIMESTAMP_END_2099 ;
264
250
265
- return devm_rtc_register_device (isl12022 -> rtc );
251
+ return devm_rtc_register_device (rtc );
266
252
}
267
253
268
254
#ifdef CONFIG_OF
0 commit comments