From 1238758c0ff3a96811c8f5a93479b6103e60f932 Mon Sep 17 00:00:00 2001 From: rusefi Date: Thu, 26 Nov 2020 00:16:59 -0500 Subject: [PATCH] Starter is engaged on start-up in pull-up configuration #1969 --- firmware/controllers/system/efi_gpio.cpp | 2 +- firmware/hw_layer/io_pins.cpp | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/firmware/controllers/system/efi_gpio.cpp b/firmware/controllers/system/efi_gpio.cpp index 0ccaa6d7bb..52a7f6c5fe 100644 --- a/firmware/controllers/system/efi_gpio.cpp +++ b/firmware/controllers/system/efi_gpio.cpp @@ -563,7 +563,7 @@ void OutputPin::unregisterOutput(brain_pin_e oldPin) { if (oldPin != GPIO_UNASSIGNED) { scheduleMsg(logger, "unregistering %s", hwPortname(oldPin)); #if EFI_GPIO_HARDWARE && EFI_PROD_CODE - brain_pin_markUnused(oldPin); + efiSetPadUnused(oldPin); port = nullptr; #endif /* EFI_GPIO_HARDWARE */ } diff --git a/firmware/hw_layer/io_pins.cpp b/firmware/hw_layer/io_pins.cpp index 4a185caa5d..3b3fe53af8 100644 --- a/firmware/hw_layer/io_pins.cpp +++ b/firmware/hw_layer/io_pins.cpp @@ -58,7 +58,7 @@ void efiSetPadMode(const char *msg, brain_pin_e brainPin, iomode_t mode) if (!wasUsed) { /*check if on-chip pin or external */ if (brain_pin_is_onchip(brainPin)) { - /* on-cip */ + /* on-chip */ ioportid_t port = getHwPort(msg, brainPin); ioportmask_t pin = getHwPin(msg, brainPin); /* paranoid */ @@ -84,8 +84,11 @@ void efiSetPadUnused(brain_pin_e brainPin) ioportid_t port = getHwPort("unused", brainPin); ioportmask_t pin = getHwPin("unused", brainPin); - /* input with pull up, is it safe? */ + /* input with pull up, is it safe? + * todo: shall we reuse 'default state' constants with board.h? + * */ palSetPadMode(port, pin, mode); + palWritePad(port, pin, false); } #if (BOARD_EXT_GPIOCHIPS > 0) else {