diff --git a/drivers/gpio/gpio_stm32.c b/drivers/gpio/gpio_stm32.c index fea5c34944d30..e58183b812587 100644 --- a/drivers/gpio/gpio_stm32.c +++ b/drivers/gpio/gpio_stm32.c @@ -775,21 +775,16 @@ __maybe_unused static int gpio_stm32_init(const struct device *dev) IF_ENABLED(DT_NODE_HAS_STATUS_OKAY(DT_NODELABEL(gpio##__suffix)), \ (GPIO_DEVICE_INIT_STM32(__suffix, __SUFFIX))) -GPIO_DEVICE_INIT_STM32_IF_OKAY(a, A); -GPIO_DEVICE_INIT_STM32_IF_OKAY(b, B); -GPIO_DEVICE_INIT_STM32_IF_OKAY(c, C); -GPIO_DEVICE_INIT_STM32_IF_OKAY(d, D); -GPIO_DEVICE_INIT_STM32_IF_OKAY(e, E); -GPIO_DEVICE_INIT_STM32_IF_OKAY(f, F); -GPIO_DEVICE_INIT_STM32_IF_OKAY(g, G); -GPIO_DEVICE_INIT_STM32_IF_OKAY(h, H); -GPIO_DEVICE_INIT_STM32_IF_OKAY(i, I); -GPIO_DEVICE_INIT_STM32_IF_OKAY(j, J); -GPIO_DEVICE_INIT_STM32_IF_OKAY(k, K); - -GPIO_DEVICE_INIT_STM32_IF_OKAY(m, M); -GPIO_DEVICE_INIT_STM32_IF_OKAY(n, N); -GPIO_DEVICE_INIT_STM32_IF_OKAY(o, O); -GPIO_DEVICE_INIT_STM32_IF_OKAY(p, P); -GPIO_DEVICE_INIT_STM32_IF_OKAY(q, Q); -GPIO_DEVICE_INIT_STM32_IF_OKAY(z, Z); +/* + * !!!Keep both lists in sync!!! + */ +#define GPIO_PORTS_LWR \ + a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, x, y, z + +#define GPIO_PORTS_UPR \ + A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, X, Y, Z + +#define DEVICE_INIT_IF_OKAY(idx, __suffix) \ + GPIO_DEVICE_INIT_STM32_IF_OKAY(__suffix, GET_ARG_N(UTIL_INC(idx), GPIO_PORTS_UPR)) + +FOR_EACH_IDX(DEVICE_INIT_IF_OKAY, (;), GPIO_PORTS_LWR);