Skip to content

Commit 93d6587

Browse files
hhk7734joshua-yang
authored andcommitted
remove dublicate code
1 parent 4a8be24 commit 93d6587

File tree

2 files changed

+66
-199
lines changed

2 files changed

+66
-199
lines changed

wiringPi/odroidc1.c

Lines changed: 37 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -316,46 +316,25 @@ static int _getAlt (int pin)
316316
case C1_GPIOX_PIN_START ...C1_GPIOX_PIN_END:
317317
switch (shift) {
318318
case 0:
319-
if (*(gpio + C1_MUX_REG_8_OFFSET) & (1 << 5)) { mode = 1; break; }
320-
if (*(gpio + C1_MUX_REG_5_OFFSET) & (1 << 14)) { mode = 2; break; }
319+
if (*(gpio + C1_MUX_REG_8_OFFSET) & (1 << 5)) { mode = 1; break; }
320+
if (*(gpio + C1_MUX_REG_5_OFFSET) & (1 << 14)) { mode = 2; break; }
321321
break;
322-
case 1:
323-
if (*(gpio + C1_MUX_REG_8_OFFSET) & (1 << 4)) { mode = 1; break; }
324-
if (*(gpio + C1_MUX_REG_5_OFFSET) & (1 << 13)) { mode = 2; break; }
322+
case 1 ... 3:
323+
if (*(gpio + C1_MUX_REG_8_OFFSET) & (1 << (5-shift))) { mode = 1; break; }
324+
if (*(gpio + C1_MUX_REG_5_OFFSET) & (1 << 13)) { mode = 2; break; }
325325
break;
326-
case 2:
327-
if (*(gpio + C1_MUX_REG_8_OFFSET) & (1 << 3)) { mode = 1; break; }
328-
if (*(gpio + C1_MUX_REG_5_OFFSET) & (1 << 13)) { mode = 2; break; }
326+
case 4 ... 5:
327+
if ((*(gpio + C1_MUX_REG_5_OFFSET) & (1 << (33 - shift))) &&
328+
(*(gpio + C1_MUX_REG_5_OFFSET) & (1 << 12))) { mode = 1; break; }
329+
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << (34 - shift))) { mode = 2; break; }
330+
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << (21 - shift))) { mode = 3; break; }
329331
break;
330-
case 3:
331-
if (*(gpio + C1_MUX_REG_8_OFFSET) & (1 << 2)) { mode = 1; break; }
332-
if (*(gpio + C1_MUX_REG_5_OFFSET) & (1 << 13)) { mode = 2; break; }
333-
break;
334-
case 4:
335-
if ((*(gpio + C1_MUX_REG_5_OFFSET) & (1 << 29)) &&
336-
(*(gpio + C1_MUX_REG_5_OFFSET) & (1 << 12))) { mode = 1; break; }
337-
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << 30)) { mode = 2; break; }
338-
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << 17)) { mode = 3; break; }
339-
break;
340-
case 5:
341-
if ((*(gpio + C1_MUX_REG_5_OFFSET) & (1 << 28)) &&
342-
(*(gpio + C1_MUX_REG_5_OFFSET) & (1 << 12))) { mode = 1; break; }
343-
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << 29)) { mode = 2; break; }
344-
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << 16)) { mode = 3; break; }
345-
break;
346-
case 6:
347-
if ((*(gpio + C1_MUX_REG_5_OFFSET) & (1 << 28)) &&
348-
(*(gpio + C1_MUX_REG_5_OFFSET) & (1 << 12))) { mode = 1; break; }
349-
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << 27)) { mode = 2; break; }
350-
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << 15)) { mode = 3; break; }
351-
if (*(gpio + C1_MUX_REG_5_OFFSET) & (1 << 9)) { mode = 4; break; }
352-
break;
353-
case 7:
332+
case 6 ... 7:
354333
if ((*(gpio + C1_MUX_REG_5_OFFSET) & (1 << 28)) &&
355-
(*(gpio + C1_MUX_REG_5_OFFSET) & (1 << 12))) { mode = 1; break; }
356-
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << 27)) { mode = 2; break; }
357-
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << 14)) { mode = 3; break; }
358-
if (*(gpio + C1_MUX_REG_5_OFFSET) & (1 << 8)) { mode = 4; break; }
334+
(*(gpio + C1_MUX_REG_5_OFFSET) & (1 << 12))) { mode = 1; break; }
335+
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << 27)) { mode = 2; break; }
336+
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << (21 - shift))) { mode = 3; break; }
337+
if (*(gpio + C1_MUX_REG_5_OFFSET) & (1 << (15 - shift))) { mode = 4; break; }
359338
break;
360339
case 8:
361340
if (*(gpio + C1_MUX_REG_8_OFFSET) & (1 << 1)) { mode = 1; break; }
@@ -384,91 +363,53 @@ static int _getAlt (int pin)
384363
if (*(gpio + C1_MUX_REG_7_OFFSET) & (1 << 30)) { mode = 2; break; }
385364
if (*(gpio + C1_MUX_REG_2_OFFSET) & (1 << 3)) { mode = 5; break; }
386365
break;
387-
case 16:
388-
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << 9)) { mode = 1; break; }
389-
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << 21)) { mode = 4; break; }
390-
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << 5)) { mode = 5; break; }
391-
break;
392-
case 17:
393-
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << 8)) { mode = 1; break; }
394-
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << 20)) { mode = 4; break; }
395-
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << 4)) { mode = 5; break; }
366+
case 16 ... 17:
367+
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << (25 - shift))) { mode = 1; break; }
368+
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << (37 - shift))) { mode = 4; break; }
369+
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << (21 - shift))) { mode = 5; break; }
396370
break;
397-
case 18:
398-
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << 7)) { mode = 1; break; }
399-
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << 19)) { mode = 4; break; }
400-
break;
401-
case 19:
402-
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << 6)) { mode = 1; break; }
403-
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << 18)) { mode = 4; break; }
371+
case 18 ... 19:
372+
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << (25 - shift))) { mode = 1; break; }
373+
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << (37 - shift))) { mode = 4; break; }
404374
break;
405375
case 20:
406-
if (*(gpio + C1_MUX_REG_6_OFFSET) & (1 << 16)) { mode = 3; break; }
407-
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << 25)) { mode = 4; break; }
408-
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << 9)) { mode = 5; break; }
376+
if (*(gpio + C1_MUX_REG_6_OFFSET) & (1 << 16)) { mode = 3; break; }
377+
if (*(gpio + C1_MUX_REG_4_OFFSET) & (1 << 25)) { mode = 4; break; }
378+
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << 9)) { mode = 5; break; }
409379
break;
410380
}
411381
break;
382+
412383
case C1_GPIOY_PIN_START ...C1_GPIOY_PIN_END:
413384
switch (shift) {
414-
case 0:
415-
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << 2)) { mode = 1; break; }
416-
break;
417-
case 1:
418-
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << 1)) { mode = 1; break; }
385+
case 0 ... 1:
386+
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << (2 - shift))) { mode = 1; break; }
419387
break;
420388
case 3:
421389
if (*(gpio + C1_MUX_REG_1_OFFSET) & (1 << 7)) { mode = 2; break; }
422390
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << 18)) { mode = 3; break; }
423391
break;
424-
case 6:
425-
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << 5)) { mode = 1; break; }
426-
break;
427-
case 7:
428-
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << 5)) { mode = 1; break; }
429-
break;
430392
case 8:
431393
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << 0)) { mode = 1; break; }
432394
break;
433395
case 9:
434396
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << 4)) { mode = 1; break; }
435397
break;
436-
case 10:
437-
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << 5)) { mode = 1; break; }
438-
break;
439-
case 11:
440-
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << 5)) { mode = 1; break; }
441-
break;
442-
case 12:
398+
case 6 ... 7:
399+
case 10 ... 12:
443400
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << 5)) { mode = 1; break; }
444401
break;
445-
case 13:
446-
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << 5)) { mode = 1; break; }
447-
if (*(gpio + C1_MUX_REG_5_OFFSET) & (1 << 7)) { mode = 3; break; }
448-
break;
449-
case 14:
450-
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << 5)) { mode = 1; break; }
451-
if (*(gpio + C1_MUX_REG_5_OFFSET) & (1 << 6)) { mode = 3; break; }
402+
case 13 ... 14:
403+
if (*(gpio + C1_MUX_REG_3_OFFSET) & (1 << 5)) { mode = 1; break; }
404+
if (*(gpio + C1_MUX_REG_5_OFFSET) & (1 << (20 - shift))) { mode = 3; break; }
452405
break;
453406
}
454407
break;
455408
case C1_GPIODV_PIN_START...C1_GPIODV_PIN_END:
456409
switch (shift) {
457-
case 24:
458-
if (*(gpio + C1_MUX_REG_6_OFFSET) & (1 << 23)) { mode = 4; break; }
459-
if (*(gpio + C1_MUX_REG_9_OFFSET) & (1 << 31)) { mode = 5; break; }
460-
break;
461-
case 25:
462-
if (*(gpio + C1_MUX_REG_6_OFFSET) & (1 << 22)) { mode = 4; break; }
463-
if (*(gpio + C1_MUX_REG_9_OFFSET) & (1 << 30)) { mode = 5; break; }
464-
break;
465-
case 26:
466-
if (*(gpio + C1_MUX_REG_6_OFFSET) & (1 << 21)) { mode = 4; break; }
467-
if (*(gpio + C1_MUX_REG_9_OFFSET) & (1 << 29)) { mode = 5; break; }
468-
break;
469-
case 27:
470-
if (*(gpio + C1_MUX_REG_6_OFFSET) & (1 << 20)) { mode = 4; break; }
471-
if (*(gpio + C1_MUX_REG_9_OFFSET) & (1 << 28)) { mode = 5; break; }
410+
case 24 ... 27:
411+
if (*(gpio + C1_MUX_REG_6_OFFSET) & (1 << (47 - shift))) { mode = 4; break; }
412+
if (*(gpio + C1_MUX_REG_9_OFFSET) & (1 << (55 - shift))) { mode = 5; break; }
472413
break;
473414
}
474415
break;
@@ -742,3 +683,4 @@ void init_odroidc1 (struct libodroid *libwiring)
742683

743684
/*----------------------------------------------------------------------------*/
744685
/*----------------------------------------------------------------------------*/
686+

wiringPi/odroidc2.c

Lines changed: 29 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -369,23 +369,8 @@ static int _getAlt (int pin)
369369
switch (pin) {
370370
case C2_GPIOX_PIN_START ...C2_GPIOX_PIN_END:
371371
switch (shift) {
372-
case 0:
373-
if (*(gpio + C2_MUX_REG_8_OFFSET) & (1 << 5)) { mode = 1; break; }
374-
break;
375-
case 1:
376-
if (*(gpio + C2_MUX_REG_8_OFFSET) & (1 << 4)) { mode = 1; break; }
377-
break;
378-
case 2:
379-
if (*(gpio + C2_MUX_REG_8_OFFSET) & (1 << 3)) { mode = 1; break; }
380-
break;
381-
case 3:
382-
if (*(gpio + C2_MUX_REG_8_OFFSET) & (1 << 2)) { mode = 1; break; }
383-
break;
384-
case 4:
385-
if (*(gpio + C2_MUX_REG_8_OFFSET) & (1 << 1)) { mode = 1; break; }
386-
break;
387-
case 5:
388-
if (*(gpio + C2_MUX_REG_8_OFFSET) & (1 << 0)) { mode = 1; break; }
372+
case 0 ... 5:
373+
if (*(gpio + C2_MUX_REG_8_OFFSET) & (1 << (5 - shift))) { mode = 1; break; }
389374
break;
390375
case 6:
391376
if (*(gpio + C2_MUX_REG_3_OFFSET) & (1 << 9)) { mode = 4; break; }
@@ -406,27 +391,12 @@ static int _getAlt (int pin)
406391
if (*(gpio + C2_MUX_REG_3_OFFSET) & (1 << 29)) { mode = 3; break; }
407392
if (*(gpio + C2_MUX_REG_3_OFFSET) & (1 << 7)) { mode = 4; break; }
408393
break;
409-
case 10:
410-
if (*(gpio + C2_MUX_REG_3_OFFSET) & (1 << 28)) { mode = 3; break; }
411-
break;
412-
case 11:
413-
if (*(gpio + C2_MUX_REG_3_OFFSET) & (1 << 27)) { mode = 3; break; }
414-
break;
415-
case 12:
416-
if (*(gpio + C2_MUX_REG_4_OFFSET) & (1 << 13)) { mode = 2; break; }
417-
if (*(gpio + C2_MUX_REG_4_OFFSET) & (1 << 17)) { mode = 3; break; }
418-
break;
419-
case 13:
420-
if (*(gpio + C2_MUX_REG_4_OFFSET) & (1 << 12)) { mode = 2; break; }
421-
if (*(gpio + C2_MUX_REG_4_OFFSET) & (1 << 16)) { mode = 3; break; }
394+
case 10 ... 11:
395+
if (*(gpio + C2_MUX_REG_3_OFFSET) & (1 << (38 - shift))) { mode = 3; break; }
422396
break;
423-
case 14:
424-
if (*(gpio + C2_MUX_REG_4_OFFSET) & (1 << 11)) { mode = 2; break; }
425-
if (*(gpio + C2_MUX_REG_4_OFFSET) & (1 << 15)) { mode = 3; break; }
426-
break;
427-
case 15:
428-
if (*(gpio + C2_MUX_REG_4_OFFSET) & (1 << 10)) { mode = 2; break; }
429-
if (*(gpio + C2_MUX_REG_4_OFFSET) & (1 << 14)) { mode = 3; break; }
397+
case 12 ... 15:
398+
if (*(gpio + C2_MUX_REG_4_OFFSET) & (1 << (25 - shift))) { mode = 2; break; }
399+
if (*(gpio + C2_MUX_REG_4_OFFSET) & (1 << (29 - shift))) { mode = 3; break; }
430400
break;
431401
case 19:
432402
if (*(gpio + C2_MUX_REG_2_OFFSET) & (1 << 22)) { mode = 2; break; }
@@ -436,15 +406,10 @@ static int _getAlt (int pin)
436406
break;
437407
case C2_GPIOY_PIN_START ...C2_GPIOY_PIN_END:
438408
switch (shift) {
439-
case 0:
440-
if (*(gpio + C2_MUX_REG_2_OFFSET) & (1 << 19)) { mode = 1; break; }
441-
if (*(gpio + C2_MUX_REG_3_OFFSET) & (1 << 2)) { mode = 2; break; }
442-
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << 0)) { mode = 5; break; }
443-
break;
444-
case 1:
445-
if (*(gpio + C2_MUX_REG_2_OFFSET) & (1 << 18)) { mode = 1; break; }
446-
if (*(gpio + C2_MUX_REG_3_OFFSET) & (1 << 1)) { mode = 2; break; }
447-
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << 1)) { mode = 5; break; }
409+
case 0 ... 1:
410+
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << shift)) { mode = 5; break; }
411+
if (*(gpio + C2_MUX_REG_2_OFFSET) & (1 << (19 - shift))) { mode = 1; break; }
412+
if (*(gpio + C2_MUX_REG_3_OFFSET) & (1 << (2 - shift))) { mode = 2; break; }
448413
break;
449414
case 2:
450415
if (*(gpio + C2_MUX_REG_2_OFFSET) & (1 << 17)) { mode = 1; break; }
@@ -455,57 +420,24 @@ static int _getAlt (int pin)
455420
if (*(gpio + C2_MUX_REG_3_OFFSET) & (1 << 4)) { mode = 2; break; }
456421
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << 2)) { mode = 5; break; }
457422
break;
458-
case 4:
459-
if (*(gpio + C2_MUX_REG_2_OFFSET) & (1 << 16)) { mode = 1; break; }
460-
if (*(gpio + C2_MUX_REG_3_OFFSET) & (1 << 5)) { mode = 2; break; }
461-
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << 12)) { mode = 4; break; }
423+
case 4 ... 5:
424+
if (*(gpio + C2_MUX_REG_2_OFFSET) & (1 << 16)) { mode = 1; break; }
425+
if (*(gpio + C2_MUX_REG_3_OFFSET) & (1 << 5)) { mode = 2; break; }
426+
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << (shift + 8))) { mode = 4; break; }
462427
break;
463-
case 5:
464-
if (*(gpio + C2_MUX_REG_2_OFFSET) & (1 << 16)) { mode = 1; break; }
465-
if (*(gpio + C2_MUX_REG_3_OFFSET) & (1 << 5)) { mode = 2; break; }
466-
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << 13)) { mode = 4; break; }
467-
break;
468-
case 6:
469-
if (*(gpio + C2_MUX_REG_2_OFFSET) & (1 << 16)) { mode = 1; break; }
470-
if (*(gpio + C2_MUX_REG_3_OFFSET) & (1 << 5)) { mode = 2; break; }
471-
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << 3)) { mode = 5; break; }
472-
break;
473-
case 7:
474-
if (*(gpio + C2_MUX_REG_2_OFFSET) & (1 << 16)) { mode = 1; break; }
475-
if (*(gpio + C2_MUX_REG_3_OFFSET) & (1 << 5)) { mode = 2; break; }
476-
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << 4)) { mode = 5; break; }
477-
break;
478-
case 8:
479-
if (*(gpio + C2_MUX_REG_2_OFFSET) & (1 << 16)) { mode = 1; break; }
480-
if (*(gpio + C2_MUX_REG_3_OFFSET) & (1 << 5)) { mode = 2; break; }
481-
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << 5)) { mode = 5; break; }
482-
break;
483-
case 9:
484-
if (*(gpio + C2_MUX_REG_2_OFFSET) & (1 << 16)) { mode = 1; break; }
485-
if (*(gpio + C2_MUX_REG_3_OFFSET) & (1 << 5)) { mode = 2; break; }
486-
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << 6)) { mode = 5; break; }
487-
break;
488-
case 10:
489-
if (*(gpio + C2_MUX_REG_2_OFFSET) & (1 << 16)) { mode = 1; break; }
490-
if (*(gpio + C2_MUX_REG_3_OFFSET) & (1 << 5)) { mode = 2; break; }
491-
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << 7)) { mode = 5; break; }
428+
case 6 ... 10:
429+
if (*(gpio + C2_MUX_REG_2_OFFSET) & (1 << 16)) { mode = 1; break; }
430+
if (*(gpio + C2_MUX_REG_3_OFFSET) & (1 << 5)) { mode = 2; break; }
431+
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << (shift - 3))) { mode = 5; break; }
492432
break;
493433
case 11:
494434
if (*(gpio + C2_MUX_REG_3_OFFSET) & (1 << 3)) { mode = 2; break; }
495435
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << 19)) { mode = 3; break; }
496436
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << 8)) { mode = 5; break; }
497437
break;
498-
case 12:
499-
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << 18)) { mode = 3; break; }
500-
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << 9)) { mode = 5; break; }
501-
break;
502-
case 13:
503-
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << 17)) { mode = 3; break; }
504-
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << 10)) { mode = 5; break; }
505-
break;
506-
case 14:
507-
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << 16)) { mode = 3; break; }
508-
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << 11)) { mode = 5; break; }
438+
case 12 ... 14:
439+
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << (30 - shift))) { mode = 3; break; }
440+
if (*(gpio + C2_MUX_REG_1_OFFSET) & (1 << (shift - 3))) { mode = 5; break; }
509441
break;
510442
case 15:
511443
if (*(gpio + C2_MUX_REG_2_OFFSET) & (1 << 20)) { mode = 1; break; }
@@ -520,19 +452,12 @@ static int _getAlt (int pin)
520452
break;
521453
case C2_GPIODV_PIN_START...C2_GPIODV_PIN_END:
522454
switch (shift) {
523-
case 24:
524-
if (*(gpio + C2_MUX_REG_0_OFFSET) & (1 << 7)) { mode = 1; break; }
525-
if (*(gpio + C2_MUX_REG_0_OFFSET) & (1 << 12)) { mode = 2; break; }
526-
if (*(gpio + C2_MUX_REG_5_OFFSET) & (1 << 12)) { mode = 3; break; }
527-
if (*(gpio + C2_MUX_REG_2_OFFSET) & (1 << 29)) { mode = 5; break; }
528-
if (*(gpio + C2_MUX_REG_7_OFFSET) & (1 << 26)) { mode = 6; break; }
529-
break;
530-
case 25:
531-
if (*(gpio + C2_MUX_REG_0_OFFSET) & (1 << 6)) { mode = 1; break; }
532-
if (*(gpio + C2_MUX_REG_0_OFFSET) & (1 << 11)) { mode = 2; break; }
533-
if (*(gpio + C2_MUX_REG_5_OFFSET) & (1 << 11)) { mode = 3; break; }
534-
if (*(gpio + C2_MUX_REG_2_OFFSET) & (1 << 28)) { mode = 5; break; }
535-
if (*(gpio + C2_MUX_REG_7_OFFSET) & (1 << 27)) { mode = 6; break; }
455+
case 24 ... 25:
456+
if (*(gpio + C2_MUX_REG_0_OFFSET) & (1 << (31 - shift))) { mode = 1; break; }
457+
if (*(gpio + C2_MUX_REG_0_OFFSET) & (1 << (36 - shift))) { mode = 2; break; }
458+
if (*(gpio + C2_MUX_REG_5_OFFSET) & (1 << (36 - shift))) { mode = 3; break; }
459+
if (*(gpio + C2_MUX_REG_2_OFFSET) & (1 << (53 - shift))) { mode = 5; break; }
460+
if (*(gpio + C2_MUX_REG_7_OFFSET) & (1 << (shift + 2))) { mode = 6; break; }
536461
break;
537462
case 26:
538463
if (*(gpio + C2_MUX_REG_0_OFFSET) & (1 << 10)) { mode = 2; break; }
@@ -541,9 +466,9 @@ static int _getAlt (int pin)
541466
if (*(gpio + C2_MUX_REG_7_OFFSET) & (1 << 24)) { mode = 6; break; }
542467
break;
543468
case 27:
469+
if (*(gpio + C2_MUX_REG_5_OFFSET) & (1 << 8)) { mode = 4; break; }
544470
if (*(gpio + C2_MUX_REG_0_OFFSET) & (1 << 9)) { mode = 2; break; }
545471
if (*(gpio + C2_MUX_REG_5_OFFSET) & (1 << 9)) { mode = 3; break; }
546-
if (*(gpio + C2_MUX_REG_5_OFFSET) & (1 << 8)) { mode = 4; break; }
547472
if (*(gpio + C2_MUX_REG_2_OFFSET) & (1 << 26)) { mode = 5; break; }
548473
if (*(gpio + C2_MUX_REG_7_OFFSET) & (1 << 25)) { mode = 6; break; }
549474
break;

0 commit comments

Comments
 (0)