From 46f02fb3f7a52a500736779916bf24770859d499 Mon Sep 17 00:00:00 2001 From: rusefi Date: Fri, 21 Apr 2017 17:08:04 -0400 Subject: [PATCH] refactoring - reducing GPIO complexity --- firmware/config/stm32f4ems/efifeatures.h | 5 +++-- firmware/console/status_loop.cpp | 3 +-- firmware/controllers/system/efiGpio.cpp | 6 +----- firmware/controllers/system/efiGpio.h | 2 -- 4 files changed, 5 insertions(+), 11 deletions(-) diff --git a/firmware/config/stm32f4ems/efifeatures.h b/firmware/config/stm32f4ems/efifeatures.h index 91fee21780..3a7e8c440d 100644 --- a/firmware/config/stm32f4ems/efifeatures.h +++ b/firmware/config/stm32f4ems/efifeatures.h @@ -264,9 +264,10 @@ // todo: this should be detected automatically based on pin selection #define TS_SERIAL_AF 7 -#define LED_WARNING_PORT GPIOD -#define LED_WARNING_PIN 13 +#define LED_WARNING_BRAIN_PIN GPIOD_13 +// LED_ERROR_BRAIN_PIN should match LED_ERROR_PORT/LED_ERROR_PIN +#define LED_ERROR_BRAIN_PIN GPIOD_14 #define LED_ERROR_PORT GPIOD #define LED_ERROR_PIN 14 diff --git a/firmware/console/status_loop.cpp b/firmware/console/status_loop.cpp index b141fa8941..9f93f2fec8 100644 --- a/firmware/console/status_loop.cpp +++ b/firmware/console/status_loop.cpp @@ -557,8 +557,7 @@ static void initStatusLeds(void) { #endif #if EFI_WARNING_LED || defined(__DOXYGEN__) - outputPinRegister("led: warning status", &enginePins.warningPin, LED_WARNING_PORT, - LED_WARNING_PIN); + outputPinRegisterExt2("led: warning status", &enginePins.warningPin, LED_WARNING_BRAIN_PIN, &DEFAULT_OUTPUT); outputPinRegisterExt2("led: running status", &enginePins.runningPin, engineConfiguration->runningPin, &DEFAULT_OUTPUT); #endif /* EFI_WARNING_LED */ diff --git a/firmware/controllers/system/efiGpio.cpp b/firmware/controllers/system/efiGpio.cpp index 2a99ecb0eb..b8b86c02a8 100644 --- a/firmware/controllers/system/efiGpio.cpp +++ b/firmware/controllers/system/efiGpio.cpp @@ -184,10 +184,6 @@ void initOutputPins(void) { // todo: it's too late to clear now? this breaks default status LEDs // todo: fix this? // memset(&outputs, 0, sizeof(outputs)); -// outputPinRegister("ext led 1", LED_EXT_1, EXTRA_LED_1_PORT, EXTRA_LED_1_PIN); -// outputPinRegister("ext led 2", LED_EXT_2, EXTRA_LED_2_PORT, EXTRA_LED_2_PIN); -// outputPinRegister("ext led 3", LED_EXT_3, EXTRA_LED_2_PORT, EXTRA_LED_3_PIN); -// outputPinRegister("alive1", LED_DEBUG, GPIOD, 6); #if HAL_USE_SPI || defined(__DOXYGEN__) outputPinRegisterExt2("spi CS5", &enginePins.sdCsPin, boardConfiguration->sdCardCsPin, &DEFAULT_OUTPUT); @@ -262,7 +258,7 @@ void outputPinRegister(const char *msg, OutputPin *output, ioportid_t port, uint } void initPrimaryPins(void) { - outputPinRegister("led: ERROR status", &enginePins.errorLedPin, LED_ERROR_PORT, LED_ERROR_PIN); + outputPinRegisterExt2("led: ERROR status", &enginePins.errorLedPin, LED_ERROR_BRAIN_PIN, &DEFAULT_OUTPUT); } void outputPinRegisterExt2(const char *msg, OutputPin *output, brain_pin_e brainPin, pin_output_mode_e *outputMode) { diff --git a/firmware/controllers/system/efiGpio.h b/firmware/controllers/system/efiGpio.h index faee054025..956f1668d9 100644 --- a/firmware/controllers/system/efiGpio.h +++ b/firmware/controllers/system/efiGpio.h @@ -143,9 +143,7 @@ void turnPinHigh(NamedOutputPin *output); void turnPinLow(NamedOutputPin *output); #if EFI_GPIO_HARDWARE || defined(__DOXYGEN__) -void initOutputPin(const char *msg, OutputPin *outputPin, ioportid_t port, uint32_t pinNumber); void initOutputPinExt(const char *msg, OutputPin *outputPin, ioportid_t port, uint32_t pinNumber, iomode_t mode); -void outputPinRegister(const char *msg, OutputPin *output, ioportid_t port, uint32_t pin); void outputPinRegisterExt2(const char *msg, OutputPin *output, brain_pin_e brainPin, pin_output_mode_e *outputMode); ioportmask_t getHwPin(brain_pin_e brainPin);