From cd5b6ec7d877cd82848887475b1af7d82bfa0cf0 Mon Sep 17 00:00:00 2001 From: rusEfi Date: Fri, 21 Apr 2017 19:59:05 -0400 Subject: [PATCH] refactoring - reducing GPIO complexity --- firmware/controllers/system/efiGpio.cpp | 2 +- firmware/development/engine_emulator.cpp | 8 +++----- firmware/hw_layer/digital_input_hw.cpp | 5 +---- firmware/hw_layer/io_pins.cpp | 1 + firmware/hw_layer/mcp3208.c | 3 ++- 5 files changed, 8 insertions(+), 11 deletions(-) diff --git a/firmware/controllers/system/efiGpio.cpp b/firmware/controllers/system/efiGpio.cpp index 003f68ea77..2f624cb4d6 100644 --- a/firmware/controllers/system/efiGpio.cpp +++ b/firmware/controllers/system/efiGpio.cpp @@ -313,7 +313,7 @@ void OutputPin::initPin(const char *msg, brain_pin_e brainPin, pin_output_mode_e this->port = port; this->pin = pin; - mySetPadMode(msg, port, pin, mode); + mySetPadMode2(msg, brainPin, mode); setDefaultPinState(outputMode); #endif /* EFI_GPIO_HARDWARE */ diff --git a/firmware/development/engine_emulator.cpp b/firmware/development/engine_emulator.cpp index 4f9ea244ec..fda64bbb16 100644 --- a/firmware/development/engine_emulator.cpp +++ b/firmware/development/engine_emulator.cpp @@ -24,12 +24,11 @@ extern bool hasFirmwareErrorFlag; static THD_WORKING_AREA(eeThreadStack, UTILITY_THREAD_STACK_SIZE); -#define DIAG_PORT GPIOD -#define DIAG_PIN 0 +#define DIAG_PIN GPIOD_0 void setDiag(int value) { print("Setting diag: %d\r\n", value); - palWritePad(DIAG_PORT, DIAG_PIN, value); +// todo: convert to new api palWritePad(DIAG_PORT, DIAG_PIN, value); } #define PERIOD 3000 @@ -84,8 +83,7 @@ void startEmulator(void) { //} static void initECUstimulator(Engine *engine) { - mySetPadMode("TEN", DIAG_PORT, DIAG_PIN, - PAL_MODE_OUTPUT_PUSHPULL); + mySetPadMode2("TEN", DIAG_PIN, PAL_MODE_OUTPUT_PUSHPULL); addConsoleActionI("diag", setDiag); addConsoleAction("emu", startEmulator); diff --git a/firmware/hw_layer/digital_input_hw.cpp b/firmware/hw_layer/digital_input_hw.cpp index 24e05c5fa8..cacea9bc55 100644 --- a/firmware/hw_layer/digital_input_hw.cpp +++ b/firmware/hw_layer/digital_input_hw.cpp @@ -176,13 +176,10 @@ ICUDriver * getInputCaptureDriver(const char *msg, brain_pin_e hwPin) { } void turnOnCapturePin(const char *msg, brain_pin_e brainPin) { - ioportid_t port = getHwPort(brainPin); - ioportmask_t pin = getHwPin(brainPin); - ICUDriver *driver = getInputCaptureDriver(msg, brainPin); if (driver != NULL) { iomode_t mode = (iomode_t) PAL_MODE_ALTERNATE(getAlternateFunctions(driver)); - mySetPadMode(msg, port, pin, mode); + mySetPadMode2(msg, brainPin, mode); } } diff --git a/firmware/hw_layer/io_pins.cpp b/firmware/hw_layer/io_pins.cpp index 02b1dbdc85..c17decfc0b 100644 --- a/firmware/hw_layer/io_pins.cpp +++ b/firmware/hw_layer/io_pins.cpp @@ -54,6 +54,7 @@ ioportmask_t getHwPin(brain_pin_e brainPin) { } /** + * @deprecated: todo finish migration to 'mySetPadMode2' with 'brain_pin_e' parameter * This method would set an error condition if pin is already used */ void mySetPadMode(const char *msg, ioportid_t port, ioportmask_t pin, iomode_t mode) { diff --git a/firmware/hw_layer/mcp3208.c b/firmware/hw_layer/mcp3208.c index b080be3f4e..da39e3c5c5 100644 --- a/firmware/hw_layer/mcp3208.c +++ b/firmware/hw_layer/mcp3208.c @@ -131,7 +131,8 @@ void init_adc_mcp3208(McpAdcState *state, SPIDriver *driver) { hack = state; - mySetPadMode("ext adc chip select", MCP3208_CS_PORT, MCP3208_CS_PIN, PAL_STM32_MODE_OUTPUT); + todo: convert to new API, todo: array of CS + mySetPadMod("ext adc chip select", MCP3208_CS_PORT, MCP3208_CS_PIN, PAL_STM32_MODE_OUTPUT); spiStart(driver, &spicfg);