Skip to content

Commit 769a5dd

Browse files
committed
santiago: port getPinCfg from H33
Former-commit-id: b1ad94f
1 parent dd7da0c commit 769a5dd

File tree

1 file changed

+38
-42
lines changed

1 file changed

+38
-42
lines changed

variants/SANTIAGO/variant.cpp

Lines changed: 38 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -7,66 +7,61 @@ uint16_t getPinCfg(const uint16_t *cfg, PinCfgReq_t req, bool prefer_sci /*= fal
77
}
88
bool thats_all = false;
99
uint8_t index = 0;
10-
while(!thats_all) {
11-
12-
/* usually not SCI peripheral have higher priority (they came
13-
first in the table) but it is possible to prefer SCI peripheral */
14-
if(prefer_sci && !IS_SCI(*(cfg + index))) {
15-
if(IS_LAST_ITEM(*(cfg + index))) {
16-
thats_all = true;
17-
}
18-
else {
19-
index++;
20-
}
21-
continue;
22-
}
2310

24-
if(!prefer_sci && IS_SCI(*(cfg + index))) {
25-
if(IS_LAST_ITEM(*(cfg + index))) {
26-
thats_all = true;
27-
}
28-
else {
29-
index++;
30-
}
31-
continue;
32-
}
11+
uint16_t config = 0;
12+
uint16_t config_sci = 0;
3313

14+
while(!thats_all) {
3415

3516
if(PIN_CFG_REQ_UART_TX == req && IS_PIN_UART_TX(*(cfg + index))) {
36-
return *(cfg + index);
17+
config = *(cfg + index);
3718
}
3819
else if(PIN_CFG_REQ_UART_RX == req && IS_PIN_UART_RX(*(cfg + index))) {
39-
return *(cfg + index);
20+
config = *(cfg + index);
4021
}
4122
else if(PIN_CFG_REQ_SCL == req && IS_PIN_SCL(*(cfg + index))) {
42-
return *(cfg + index);
23+
if (IS_SCI(*(cfg + index))) {
24+
config_sci = *(cfg + index);
25+
} else {
26+
config = *(cfg + index);
27+
}
4328
}
4429
else if(PIN_CFG_REQ_SDA == req && IS_PIN_SDA(*(cfg + index))) {
45-
return *(cfg + index);
30+
if (IS_SCI(*(cfg + index))) {
31+
config_sci = *(cfg + index);
32+
} else {
33+
config = *(cfg + index);
34+
}
4635
}
4736
else if(PIN_CFG_REQ_MISO == req && IS_PIN_MISO(*(cfg + index))) {
48-
return *(cfg + index);
37+
if (IS_SCI(*(cfg + index))) {
38+
config_sci = *(cfg + index);
39+
} else {
40+
config = *(cfg + index);
41+
}
4942
}
5043
else if(PIN_CFG_REQ_MOSI == req && IS_PIN_MOSI(*(cfg + index))) {
51-
return *(cfg + index);
44+
if (IS_SCI(*(cfg + index))) {
45+
config_sci = *(cfg + index);
46+
} else {
47+
config = *(cfg + index);
48+
}
5249
}
5350
else if(PIN_CFG_REQ_SCK == req && IS_PIN_SCK(*(cfg + index))) {
54-
return *(cfg + index);
51+
if (IS_SCI(*(cfg + index))) {
52+
config_sci = *(cfg + index);
53+
} else {
54+
config = *(cfg + index);
55+
}
5556
}
5657
else if(PIN_CFG_REQ_PWM == req && IS_PIN_PWM(*(cfg + index))) {
57-
return *(cfg + index);
58+
config = *(cfg + index);
5859
}
5960
else if(PIN_CFG_REQ_INTERRUPT == req && IS_PIN_INTERRUPT(*(cfg + index))) {
60-
return *(cfg + index);
61+
config = *(cfg + index);
6162
}
6263
else if(PIN_CFG_REQ_ADC == req && IS_PIN_ANALOG(*(cfg + index))) {
63-
return *(cfg + index);
64-
}
65-
else if(PIN_CFG_REQ_CAN_RX == req && IS_PIN_CAN_RX(*(cfg + index))) {
66-
return *(cfg + index);
67-
}
68-
else if(PIN_CFG_REQ_CAN_TX == req && IS_PIN_CAN_TX(*(cfg + index))) {
69-
return *(cfg + index);
64+
config = *(cfg + index);
7065
}
7166

7267
if(IS_LAST_ITEM(*(cfg + index))) {
@@ -76,10 +71,11 @@ uint16_t getPinCfg(const uint16_t *cfg, PinCfgReq_t req, bool prefer_sci /*= fal
7671
index++;
7772
}
7873
}
79-
return 0;
80-
}
81-
82-
74+
if (config_sci != 0 && (prefer_sci || config == 0)) {
75+
config = config_sci;
76+
}
77+
return config;
78+
}
8379

8480
extern "C" const PinMuxCfg_t g_pin_cfg[] = {
8581
{ BSP_IO_PORT_03_PIN_01, P301 }, /* (0) D0 ------------------------- DIGITAL */

0 commit comments

Comments
 (0)