@@ -202,8 +202,6 @@ static void amd_gpio_dbg_show(struct seq_file *s, struct gpio_chip *gc)
202
202
struct amd_gpio * gpio_dev = gpiochip_get_data (gc );
203
203
204
204
bool tmr_out_unit ;
205
- unsigned int time ;
206
- unsigned int unit ;
207
205
bool tmr_large ;
208
206
209
207
char * level_trig ;
@@ -217,13 +215,14 @@ static void amd_gpio_dbg_show(struct seq_file *s, struct gpio_chip *gc)
217
215
char * pull_up_sel ;
218
216
char * pull_up_enable ;
219
217
char * pull_down_enable ;
220
- char * output_value ;
218
+ char * orientation ;
221
219
char * output_enable ;
222
220
char debounce_value [40 ];
223
221
char * debounce_enable ;
224
222
225
223
for (bank = 0 ; bank < gpio_dev -> hwbank_num ; bank ++ ) {
226
- seq_printf (s , "GPIO bank%d\n" , bank );
224
+ unsigned int time = 0 ;
225
+ unsigned int unit = 0 ;
227
226
228
227
switch (bank ) {
229
228
case 0 :
@@ -246,93 +245,101 @@ static void amd_gpio_dbg_show(struct seq_file *s, struct gpio_chip *gc)
246
245
/* Illegal bank number, ignore */
247
246
continue ;
248
247
}
248
+ seq_printf (s , "GPIO bank%d\n" , bank );
249
249
for (; i < pin_num ; i ++ ) {
250
- seq_printf (s , "pin %d\t" , i );
250
+ seq_printf (s , "📌 %d\t" , i );
251
251
raw_spin_lock_irqsave (& gpio_dev -> lock , flags );
252
252
pin_reg = readl (gpio_dev -> base + i * 4 );
253
253
raw_spin_unlock_irqrestore (& gpio_dev -> lock , flags );
254
254
255
255
if (pin_reg & BIT (INTERRUPT_ENABLE_OFF )) {
256
256
u8 level = (pin_reg >> ACTIVE_LEVEL_OFF ) &
257
257
ACTIVE_LEVEL_MASK ;
258
- interrupt_enable = "interrupt is enabled| " ;
258
+ interrupt_enable = "+ " ;
259
259
260
260
if (level == ACTIVE_LEVEL_HIGH )
261
- active_level = "Active high| " ;
261
+ active_level = "↑ " ;
262
262
else if (level == ACTIVE_LEVEL_LOW )
263
- active_level = "Active low| " ;
263
+ active_level = "↓ " ;
264
264
else if (!(pin_reg & BIT (LEVEL_TRIG_OFF )) &&
265
265
level == ACTIVE_LEVEL_BOTH )
266
- active_level = "Active on both| " ;
266
+ active_level = "b " ;
267
267
else
268
- active_level = "Unknown Active level| " ;
268
+ active_level = "? " ;
269
269
270
270
if (pin_reg & BIT (LEVEL_TRIG_OFF ))
271
- level_trig = "Level trigger| " ;
271
+ level_trig = "level " ;
272
272
else
273
- level_trig = "Edge trigger| " ;
273
+ level_trig = " edge " ;
274
274
275
275
} else {
276
- interrupt_enable =
277
- "interrupt is disabled|" ;
278
- active_level = " " ;
279
- level_trig = " " ;
276
+ interrupt_enable = "∅" ;
277
+ active_level = "∅" ;
278
+ level_trig = " ∅" ;
280
279
}
281
280
282
281
if (pin_reg & BIT (INTERRUPT_MASK_OFF ))
283
- interrupt_mask =
284
- "interrupt is unmasked|" ;
282
+ interrupt_mask = "-" ;
285
283
else
286
- interrupt_mask =
287
- "interrupt is masked|" ;
284
+ interrupt_mask = "+" ;
285
+ seq_printf (s , "int %s (🎭 %s)| active-%s| %s-🔫| " ,
286
+ interrupt_enable ,
287
+ interrupt_mask ,
288
+ active_level ,
289
+ level_trig );
288
290
289
291
if (pin_reg & BIT (WAKE_CNTRL_OFF_S0I3 ))
290
- wake_cntrl0 = "enable wakeup in S0i3 state| " ;
292
+ wake_cntrl0 = "+ " ;
291
293
else
292
- wake_cntrl0 = "disable wakeup in S0i3 state|" ;
294
+ wake_cntrl0 = "∅" ;
295
+ seq_printf (s , "S0i3 🌅 %s| " , wake_cntrl0 );
293
296
294
297
if (pin_reg & BIT (WAKE_CNTRL_OFF_S3 ))
295
- wake_cntrl1 = "enable wakeup in S3 state| " ;
298
+ wake_cntrl1 = "+ " ;
296
299
else
297
- wake_cntrl1 = "disable wakeup in S3 state|" ;
300
+ wake_cntrl1 = "∅" ;
301
+ seq_printf (s , "S3 🌅 %s| " , wake_cntrl1 );
298
302
299
303
if (pin_reg & BIT (WAKE_CNTRL_OFF_S4 ))
300
- wake_cntrl2 = "enable wakeup in S4/S5 state| " ;
304
+ wake_cntrl2 = "+ " ;
301
305
else
302
- wake_cntrl2 = "disable wakeup in S4/S5 state|" ;
306
+ wake_cntrl2 = "∅" ;
307
+ seq_printf (s , "S4/S5 🌅 %s| " , wake_cntrl2 );
303
308
304
309
if (pin_reg & BIT (PULL_UP_ENABLE_OFF )) {
305
- pull_up_enable = "pull-up is enabled| " ;
310
+ pull_up_enable = "+ " ;
306
311
if (pin_reg & BIT (PULL_UP_SEL_OFF ))
307
- pull_up_sel = "8k pull-up| " ;
312
+ pull_up_sel = "8k" ;
308
313
else
309
- pull_up_sel = "4k pull-up| " ;
314
+ pull_up_sel = "4k" ;
310
315
} else {
311
- pull_up_enable = "pull-up is disabled| " ;
312
- pull_up_sel = " " ;
316
+ pull_up_enable = "∅ " ;
317
+ pull_up_sel = " " ;
313
318
}
319
+ seq_printf (s , "pull-↑ %s (%s)| " ,
320
+ pull_up_enable ,
321
+ pull_up_sel );
314
322
315
323
if (pin_reg & BIT (PULL_DOWN_ENABLE_OFF ))
316
- pull_down_enable = "pull-down is enabled| " ;
324
+ pull_down_enable = "+ " ;
317
325
else
318
- pull_down_enable = "Pull-down is disabled|" ;
326
+ pull_down_enable = "∅" ;
327
+ seq_printf (s , "pull-↓ %s| " , pull_down_enable );
319
328
320
329
if (pin_reg & BIT (OUTPUT_ENABLE_OFF )) {
321
- pin_sts = " " ;
322
- output_enable = "output is enabled|" ;
330
+ pin_sts = "output" ;
323
331
if (pin_reg & BIT (OUTPUT_VALUE_OFF ))
324
- output_value = "output is high| " ;
332
+ orientation = "↑ " ;
325
333
else
326
- output_value = "output is low| " ;
334
+ orientation = "↓ " ;
327
335
} else {
328
- output_enable = "output is disabled|" ;
329
- output_value = " " ;
330
-
336
+ pin_sts = "input " ;
331
337
if (pin_reg & BIT (PIN_STS_OFF ))
332
- pin_sts = "input is high| " ;
338
+ orientation = "↑ " ;
333
339
else
334
- pin_sts = "input is low| " ;
340
+ orientation = "↓ " ;
335
341
}
342
+ seq_printf (s , "%s %s| " , pin_sts , orientation );
336
343
337
344
db_cntrl = (DB_CNTRl_MASK << DB_CNTRL_OFF ) & pin_reg ;
338
345
if (db_cntrl ) {
@@ -351,27 +358,18 @@ static void amd_gpio_dbg_show(struct seq_file *s, struct gpio_chip *gc)
351
358
unit = 61 ;
352
359
}
353
360
if ((DB_TYPE_REMOVE_GLITCH << DB_CNTRL_OFF ) == db_cntrl )
354
- debounce_enable = "debouncing filter (high and low) enabled| " ;
361
+ debounce_enable = "b + " ;
355
362
else if ((DB_TYPE_PRESERVE_LOW_GLITCH << DB_CNTRL_OFF ) == db_cntrl )
356
- debounce_enable = "debouncing filter (low) enabled| " ;
363
+ debounce_enable = "↓ + " ;
357
364
else
358
- debounce_enable = "debouncing filter (high) enabled| " ;
365
+ debounce_enable = "↑ + " ;
359
366
360
- snprintf (debounce_value , sizeof (debounce_value ),
361
- "debouncing timeout is %u (us)|" , time * unit );
362
367
} else {
363
- debounce_enable = "debouncing filter disabled|" ;
364
- snprintf (debounce_value , sizeof (debounce_value ), " " );
368
+ debounce_enable = " ∅" ;
365
369
}
366
-
367
- seq_printf (s , "%s %s %s %s %s %s\n"
368
- " %s %s %s %s %s %s %s %s %s 0x%x\n" ,
369
- level_trig , active_level , interrupt_enable ,
370
- interrupt_mask , wake_cntrl0 , wake_cntrl1 ,
371
- wake_cntrl2 , pin_sts , pull_up_sel ,
372
- pull_up_enable , pull_down_enable ,
373
- output_value , output_enable ,
374
- debounce_enable , debounce_value , pin_reg );
370
+ snprintf (debounce_value , sizeof (debounce_value ), "%u" , time * unit );
371
+ seq_printf (s , "debounce %s (⏰ %sus)| " , debounce_enable , debounce_value );
372
+ seq_printf (s , " 0x%x\n" , pin_reg );
375
373
}
376
374
}
377
375
}
0 commit comments