From 3a11645afeaf5573a0f244a65c8533a513799395 Mon Sep 17 00:00:00 2001 From: minicx <39405619+loss-and-quick@users.noreply.github.com> Date: Thu, 21 Aug 2025 18:41:07 +0300 Subject: [PATCH] stm32: Fix N32G45x ADC pin mapping (#7016) Fixes PA0 (GPIO 0) incorrectly mapping to ADC1_IN0 due to collision with placeholder zeros. Signed-off-by: Lev Voronov Co-authored-by: Alexander Simonov --- src/stm32/n32g45x_adc.c | 56 +++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/src/stm32/n32g45x_adc.c b/src/stm32/n32g45x_adc.c index d27e70c9..52cee2f5 100644 --- a/src/stm32/n32g45x_adc.c +++ b/src/stm32/n32g45x_adc.c @@ -14,6 +14,8 @@ #include "sched.h" // sched_shutdown #include "n32g45x_adc.h" // ADC +#define ADC_INVALID_PIN 0xFF + DECL_CONSTANT("ADC_MAX", 4095); #define ADC_TEMPERATURE_PIN 0xfe @@ -21,42 +23,42 @@ DECL_ENUMERATION("pin", "ADC_TEMPERATURE", ADC_TEMPERATURE_PIN); static const uint8_t adc_pins[] = { // ADC1 - 0, GPIO('A', 0), GPIO('A', 1), GPIO('A', 6), - GPIO('A', 3), GPIO('F', 4), 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - ADC_TEMPERATURE_PIN, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, + ADC_INVALID_PIN, GPIO('A', 0), GPIO('A', 1), GPIO('A', 6), + GPIO('A', 3), GPIO('F', 4), ADC_INVALID_PIN, ADC_INVALID_PIN, + ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, + ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, + ADC_TEMPERATURE_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, + ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, + ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, + ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, // ADC2 - 0, GPIO('A', 4), GPIO('A', 5), GPIO('B', 1), + ADC_INVALID_PIN, GPIO('A', 4), GPIO('A', 5), GPIO('B', 1), GPIO('A', 7), GPIO('C', 4), GPIO('C', 0), GPIO('C', 1), GPIO('C', 2), GPIO('C', 3), GPIO('F', 2), GPIO('A', 2), - GPIO('C', 5), GPIO('B', 2), 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, + GPIO('C', 5), GPIO('B', 2), ADC_INVALID_PIN, ADC_INVALID_PIN, + ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, + ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, + ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, + ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, #if CONFIG_MACH_N32G455 // ADC3/4 for G455 only // ADC3 - 0, GPIO('B', 11), GPIO('E', 9), GPIO('E', 13), + ADC_INVALID_PIN, GPIO('B', 11), GPIO('E', 9), GPIO('E', 13), GPIO('E', 12), GPIO('B', 13), GPIO('E', 8), GPIO('D', 10), GPIO('D', 11), GPIO('D', 12), GPIO('D', 13), GPIO('D', 14), GPIO('B', 0), GPIO('E', 7), GPIO('E', 10), GPIO('E', 11), - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, + ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, + ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, + ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, + ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, // ADC4 - 0, GPIO('E', 14), GPIO('E', 15), GPIO('B', 12), - GPIO('B', 14), GPIO('B', 15), 0, 0, - 0, 0, 0, 0, - GPIO('D', 8), GPIO('D', 9), 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, + ADC_INVALID_PIN, GPIO('E', 14), GPIO('E', 15), GPIO('B', 12), + GPIO('B', 14), GPIO('B', 15), ADC_INVALID_PIN, ADC_INVALID_PIN, + ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, + GPIO('D', 8), GPIO('D', 9), ADC_INVALID_PIN, ADC_INVALID_PIN, + ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, + ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, + ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, + ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, ADC_INVALID_PIN, #endif };