@@ -156,16 +156,15 @@ static inline int pca955x_ledstate(u8 ls, int led_num)
156
156
* Write to frequency prescaler register, used to program the
157
157
* period of the PWM output. period = (PSCx + 1) / 38
158
158
*/
159
- static int pca955x_write_psc (struct i2c_client * client , int n , u8 val )
159
+ static int pca955x_write_psc (struct pca955x * pca955x , int n , u8 val )
160
160
{
161
- struct pca955x * pca955x = i2c_get_clientdata (client );
162
161
u8 cmd = pca955x_num_input_regs (pca955x -> chipdef -> bits ) + (2 * n );
163
162
int ret ;
164
163
165
- ret = i2c_smbus_write_byte_data (client , cmd , val );
164
+ ret = i2c_smbus_write_byte_data (pca955x -> client , cmd , val );
166
165
if (ret < 0 )
167
- dev_err (& client -> dev , "%s: reg 0x%x, val 0x%x, err %d\n" ,
168
- __func__ , n , val , ret );
166
+ dev_err (& pca955x -> client -> dev , "%s: reg 0x%x, val 0x%x, err %d\n" , __func__ , n ,
167
+ val , ret );
169
168
return ret ;
170
169
}
171
170
@@ -176,66 +175,60 @@ static int pca955x_write_psc(struct i2c_client *client, int n, u8 val)
176
175
*
177
176
* Duty cycle is (256 - PWMx) / 256
178
177
*/
179
- static int pca955x_write_pwm (struct i2c_client * client , int n , u8 val )
178
+ static int pca955x_write_pwm (struct pca955x * pca955x , int n , u8 val )
180
179
{
181
- struct pca955x * pca955x = i2c_get_clientdata (client );
182
180
u8 cmd = pca955x_num_input_regs (pca955x -> chipdef -> bits ) + 1 + (2 * n );
183
181
int ret ;
184
182
185
- ret = i2c_smbus_write_byte_data (client , cmd , val );
183
+ ret = i2c_smbus_write_byte_data (pca955x -> client , cmd , val );
186
184
if (ret < 0 )
187
- dev_err (& client -> dev , "%s: reg 0x%x, val 0x%x, err %d\n" ,
188
- __func__ , n , val , ret );
185
+ dev_err (& pca955x -> client -> dev , "%s: reg 0x%x, val 0x%x, err %d\n" , __func__ , n ,
186
+ val , ret );
189
187
return ret ;
190
188
}
191
189
192
190
/*
193
191
* Write to LED selector register, which determines the source that
194
192
* drives the LED output.
195
193
*/
196
- static int pca955x_write_ls (struct i2c_client * client , int n , u8 val )
194
+ static int pca955x_write_ls (struct pca955x * pca955x , int n , u8 val )
197
195
{
198
- struct pca955x * pca955x = i2c_get_clientdata (client );
199
196
u8 cmd = pca955x_num_input_regs (pca955x -> chipdef -> bits ) + 4 + n ;
200
197
int ret ;
201
198
202
- ret = i2c_smbus_write_byte_data (client , cmd , val );
199
+ ret = i2c_smbus_write_byte_data (pca955x -> client , cmd , val );
203
200
if (ret < 0 )
204
- dev_err (& client -> dev , "%s: reg 0x%x, val 0x%x, err %d\n" ,
205
- __func__ , n , val , ret );
201
+ dev_err (& pca955x -> client -> dev , "%s: reg 0x%x, val 0x%x, err %d\n" , __func__ , n ,
202
+ val , ret );
206
203
return ret ;
207
204
}
208
205
209
206
/*
210
207
* Read the LED selector register, which determines the source that
211
208
* drives the LED output.
212
209
*/
213
- static int pca955x_read_ls (struct i2c_client * client , int n , u8 * val )
210
+ static int pca955x_read_ls (struct pca955x * pca955x , int n , u8 * val )
214
211
{
215
- struct pca955x * pca955x = i2c_get_clientdata (client );
216
212
u8 cmd = pca955x_num_input_regs (pca955x -> chipdef -> bits ) + 4 + n ;
217
213
int ret ;
218
214
219
- ret = i2c_smbus_read_byte_data (client , cmd );
215
+ ret = i2c_smbus_read_byte_data (pca955x -> client , cmd );
220
216
if (ret < 0 ) {
221
- dev_err (& client -> dev , "%s: reg 0x%x, err %d\n" ,
222
- __func__ , n , ret );
217
+ dev_err (& pca955x -> client -> dev , "%s: reg 0x%x, err %d\n" , __func__ , n , ret );
223
218
return ret ;
224
219
}
225
220
* val = (u8 )ret ;
226
221
return 0 ;
227
222
}
228
223
229
- static int pca955x_read_pwm (struct i2c_client * client , int n , u8 * val )
224
+ static int pca955x_read_pwm (struct pca955x * pca955x , int n , u8 * val )
230
225
{
231
- struct pca955x * pca955x = i2c_get_clientdata (client );
232
226
u8 cmd = pca955x_num_input_regs (pca955x -> chipdef -> bits ) + 1 + (2 * n );
233
227
int ret ;
234
228
235
- ret = i2c_smbus_read_byte_data (client , cmd );
229
+ ret = i2c_smbus_read_byte_data (pca955x -> client , cmd );
236
230
if (ret < 0 ) {
237
- dev_err (& client -> dev , "%s: reg 0x%x, err %d\n" ,
238
- __func__ , n , ret );
231
+ dev_err (& pca955x -> client -> dev , "%s: reg 0x%x, err %d\n" , __func__ , n , ret );
239
232
return ret ;
240
233
}
241
234
* val = (u8 )ret ;
@@ -249,7 +242,7 @@ static enum led_brightness pca955x_led_get(struct led_classdev *led_cdev)
249
242
u8 ls , pwm ;
250
243
int ret ;
251
244
252
- ret = pca955x_read_ls (pca955x -> client , pca955x_led -> led_num / 4 , & ls );
245
+ ret = pca955x_read_ls (pca955x , pca955x_led -> led_num / 4 , & ls );
253
246
if (ret )
254
247
return ret ;
255
248
@@ -264,7 +257,7 @@ static enum led_brightness pca955x_led_get(struct led_classdev *led_cdev)
264
257
ret = LED_HALF ;
265
258
break ;
266
259
case PCA955X_LS_BLINK1 :
267
- ret = pca955x_read_pwm (pca955x -> client , 1 , & pwm );
260
+ ret = pca955x_read_pwm (pca955x , 1 , & pwm );
268
261
if (ret )
269
262
return ret ;
270
263
ret = 255 - pwm ;
@@ -286,7 +279,7 @@ static int pca955x_led_set(struct led_classdev *led_cdev,
286
279
287
280
mutex_lock (& pca955x -> lock );
288
281
289
- ret = pca955x_read_ls (pca955x -> client , reg , & ls );
282
+ ret = pca955x_read_ls (pca955x , reg , & ls );
290
283
if (ret )
291
284
goto out ;
292
285
@@ -308,14 +301,14 @@ static int pca955x_led_set(struct led_classdev *led_cdev,
308
301
* OFF, HALF, or FULL. But, this is probably better than
309
302
* just turning off for all other values.
310
303
*/
311
- ret = pca955x_write_pwm (pca955x -> client , 1 , 255 - value );
304
+ ret = pca955x_write_pwm (pca955x , 1 , 255 - value );
312
305
if (ret )
313
306
goto out ;
314
307
ls = pca955x_ledsel (ls , bit , PCA955X_LS_BLINK1 );
315
308
break ;
316
309
}
317
310
318
- ret = pca955x_write_ls (pca955x -> client , reg , ls );
311
+ ret = pca955x_write_ls (pca955x , reg , ls );
319
312
320
313
out :
321
314
mutex_unlock (& pca955x -> lock );
@@ -579,22 +572,22 @@ static int pca955x_probe(struct i2c_client *client)
579
572
}
580
573
581
574
/* PWM0 is used for half brightness or 50% duty cycle */
582
- err = pca955x_write_pwm (client , 0 , 255 - LED_HALF );
575
+ err = pca955x_write_pwm (pca955x , 0 , 255 - LED_HALF );
583
576
if (err )
584
577
return err ;
585
578
586
579
if (!keep_pwm ) {
587
580
/* PWM1 is used for variable brightness, default to OFF */
588
- err = pca955x_write_pwm (client , 1 , 0 );
581
+ err = pca955x_write_pwm (pca955x , 1 , 0 );
589
582
if (err )
590
583
return err ;
591
584
}
592
585
593
586
/* Set to fast frequency so we do not see flashing */
594
- err = pca955x_write_psc (client , 0 , 0 );
587
+ err = pca955x_write_psc (pca955x , 0 , 0 );
595
588
if (err )
596
589
return err ;
597
- err = pca955x_write_psc (client , 1 , 0 );
590
+ err = pca955x_write_psc (pca955x , 1 , 0 );
598
591
if (err )
599
592
return err ;
600
593
0 commit comments