@@ -33,8 +33,8 @@ struct ns2_led_modval {
33
33
struct ns2_led {
34
34
const char * name ;
35
35
const char * default_trigger ;
36
- unsigned cmd ;
37
- unsigned slow ;
36
+ struct gpio_desc * cmd ;
37
+ struct gpio_desc * slow ;
38
38
int num_modes ;
39
39
struct ns2_led_modval * modval ;
40
40
};
@@ -53,8 +53,8 @@ struct ns2_led_platform_data {
53
53
54
54
struct ns2_led_data {
55
55
struct led_classdev cdev ;
56
- unsigned int cmd ;
57
- unsigned int slow ;
56
+ struct gpio_desc * cmd ;
57
+ struct gpio_desc * slow ;
58
58
bool can_sleep ;
59
59
unsigned char sata ; /* True when SATA mode active. */
60
60
rwlock_t rw_lock ; /* Lock GPIOs. */
@@ -70,8 +70,8 @@ static int ns2_led_get_mode(struct ns2_led_data *led_dat,
70
70
int cmd_level ;
71
71
int slow_level ;
72
72
73
- cmd_level = gpio_get_value_cansleep (led_dat -> cmd );
74
- slow_level = gpio_get_value_cansleep (led_dat -> slow );
73
+ cmd_level = gpiod_get_value_cansleep (led_dat -> cmd );
74
+ slow_level = gpiod_get_value_cansleep (led_dat -> slow );
75
75
76
76
for (i = 0 ; i < led_dat -> num_modes ; i ++ ) {
77
77
if (cmd_level == led_dat -> modval [i ].cmd_level &&
@@ -104,15 +104,15 @@ static void ns2_led_set_mode(struct ns2_led_data *led_dat,
104
104
write_lock_irqsave (& led_dat -> rw_lock , flags );
105
105
106
106
if (!led_dat -> can_sleep ) {
107
- gpio_set_value (led_dat -> cmd ,
108
- led_dat -> modval [i ].cmd_level );
109
- gpio_set_value (led_dat -> slow ,
110
- led_dat -> modval [i ].slow_level );
107
+ gpiod_set_value (led_dat -> cmd ,
108
+ led_dat -> modval [i ].cmd_level );
109
+ gpiod_set_value (led_dat -> slow ,
110
+ led_dat -> modval [i ].slow_level );
111
111
goto exit_unlock ;
112
112
}
113
113
114
- gpio_set_value_cansleep (led_dat -> cmd , led_dat -> modval [i ].cmd_level );
115
- gpio_set_value_cansleep (led_dat -> slow , led_dat -> modval [i ].slow_level );
114
+ gpiod_set_value_cansleep (led_dat -> cmd , led_dat -> modval [i ].cmd_level );
115
+ gpiod_set_value_cansleep (led_dat -> slow , led_dat -> modval [i ].slow_level );
116
116
117
117
exit_unlock :
118
118
write_unlock_irqrestore (& led_dat -> rw_lock , flags );
@@ -200,26 +200,6 @@ create_ns2_led(struct platform_device *pdev, struct ns2_led_data *led_dat,
200
200
int ret ;
201
201
enum ns2_led_modes mode ;
202
202
203
- ret = devm_gpio_request_one (& pdev -> dev , template -> cmd ,
204
- gpio_get_value_cansleep (template -> cmd ) ?
205
- GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW ,
206
- template -> name );
207
- if (ret ) {
208
- dev_err (& pdev -> dev , "%s: failed to setup command GPIO\n" ,
209
- template -> name );
210
- return ret ;
211
- }
212
-
213
- ret = devm_gpio_request_one (& pdev -> dev , template -> slow ,
214
- gpio_get_value_cansleep (template -> slow ) ?
215
- GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW ,
216
- template -> name );
217
- if (ret ) {
218
- dev_err (& pdev -> dev , "%s: failed to setup slow GPIO\n" ,
219
- template -> name );
220
- return ret ;
221
- }
222
-
223
203
rwlock_init (& led_dat -> rw_lock );
224
204
225
205
led_dat -> cdev .name = template -> name ;
@@ -229,8 +209,8 @@ create_ns2_led(struct platform_device *pdev, struct ns2_led_data *led_dat,
229
209
led_dat -> cdev .groups = ns2_led_groups ;
230
210
led_dat -> cmd = template -> cmd ;
231
211
led_dat -> slow = template -> slow ;
232
- led_dat -> can_sleep = gpio_cansleep (led_dat -> cmd ) |
233
- gpio_cansleep (led_dat -> slow );
212
+ led_dat -> can_sleep = gpiod_cansleep (led_dat -> cmd ) |
213
+ gpiod_cansleep (led_dat -> slow );
234
214
if (led_dat -> can_sleep )
235
215
led_dat -> cdev .brightness_set_blocking = ns2_led_set_blocking ;
236
216
else
@@ -285,17 +265,26 @@ ns2_leds_get_of_pdata(struct device *dev, struct ns2_led_platform_data *pdata)
285
265
const char * string ;
286
266
int i , num_modes ;
287
267
struct ns2_led_modval * modval ;
268
+ struct gpio_desc * gd ;
288
269
289
- ret = of_get_named_gpio (child , "cmd-gpio" , 0 );
290
- if (ret < 0 )
291
- goto err_node_put ;
292
- led -> cmd = ret ;
293
- ret = of_get_named_gpio (child , "slow-gpio" , 0 );
294
- if (ret < 0 )
295
- goto err_node_put ;
296
- led -> slow = ret ;
297
270
ret = of_property_read_string (child , "label" , & string );
298
271
led -> name = (ret == 0 ) ? string : child -> name ;
272
+
273
+ gd = gpiod_get_from_of_node (child , "cmd-gpio" , 0 ,
274
+ GPIOD_ASIS , led -> name );
275
+ if (IS_ERR (gd )) {
276
+ ret = PTR_ERR (gd );
277
+ goto err_node_put ;
278
+ }
279
+ led -> cmd = gd ;
280
+ gd = gpiod_get_from_of_node (child , "slow-gpio" , 0 ,
281
+ GPIOD_ASIS , led -> name );
282
+ if (IS_ERR (gd )) {
283
+ ret = PTR_ERR (gd );
284
+ goto err_node_put ;
285
+ }
286
+ led -> slow = gd ;
287
+
299
288
ret = of_property_read_string (child , "linux,default-trigger" ,
300
289
& string );
301
290
if (ret == 0 )
0 commit comments