From d3745c0f9ec3f35e0fd6c8973e2aac12c8ff8fd3 Mon Sep 17 00:00:00 2001 From: rusefi Date: Mon, 6 Apr 2020 14:13:29 -0400 Subject: [PATCH] smart gpio clean-up --- firmware/config/boards/kinetis/efifeatures.h | 1 - firmware/config/boards/prometheus/efifeatures.h | 3 --- firmware/config/boards/skeleton/efifeatures.h | 1 - firmware/config/boards/subaru-ej20gn/board.h | 3 --- firmware/config/stm32f4ems/efifeatures.h | 2 -- firmware/config/stm32f7ems/efifeatures.h | 2 -- firmware/controllers/system/efi_gpio.h | 1 + firmware/hw_layer/drivers/gpio/core.c | 1 + firmware/hw_layer/smart_gpio.h | 10 ++++++++-- simulator/simulator/efifeatures.h | 6 ------ unit_tests/efifeatures.h | 2 -- 11 files changed, 10 insertions(+), 22 deletions(-) diff --git a/firmware/config/boards/kinetis/efifeatures.h b/firmware/config/boards/kinetis/efifeatures.h index be0073d6ac..be1a0353a4 100644 --- a/firmware/config/boards/kinetis/efifeatures.h +++ b/firmware/config/boards/kinetis/efifeatures.h @@ -343,7 +343,6 @@ //#define CONSOLE_THREAD_STACK_SIZE UTILITY_THREAD_STACK_SIZE -#define BOARD_EXT_GPIOCHIPS 1 #define BOARD_TLE6240_COUNT 1 #define BOARD_MC33972_COUNT 0 #define BOARD_TLE8888_COUNT 0 diff --git a/firmware/config/boards/prometheus/efifeatures.h b/firmware/config/boards/prometheus/efifeatures.h index 41545c8934..d33c8ecbaa 100644 --- a/firmware/config/boards/prometheus/efifeatures.h +++ b/firmware/config/boards/prometheus/efifeatures.h @@ -67,9 +67,6 @@ #define BOARD_TLE8888_COUNT 0 #endif -// todo: move this outside of efifeatures.h -#define BOARD_EXT_GPIOCHIPS (BOARD_TLE6240_COUNT + BOARD_MC33972_COUNT + BOARD_TLE8888_COUNT) - #undef EFI_CONSOLE_TX_PORT #define EFI_CONSOLE_TX_PORT GPIOA diff --git a/firmware/config/boards/skeleton/efifeatures.h b/firmware/config/boards/skeleton/efifeatures.h index 2f44af7dd0..4983ecdc9e 100644 --- a/firmware/config/boards/skeleton/efifeatures.h +++ b/firmware/config/boards/skeleton/efifeatures.h @@ -87,7 +87,6 @@ #define BOARD_TLE8888_COUNT 0 // Future: move these outside of efifeatures.h -#define BOARD_EXT_GPIOCHIPS (BOARD_TLE6240_COUNT + BOARD_MC33972_COUNT + BOARD_TLE8888_COUNT) #define BOARD_EXT_PINREPOPINS 24 diff --git a/firmware/config/boards/subaru-ej20gn/board.h b/firmware/config/boards/subaru-ej20gn/board.h index 077460348c..75715169b1 100644 --- a/firmware/config/boards/subaru-ej20gn/board.h +++ b/firmware/config/boards/subaru-ej20gn/board.h @@ -34,9 +34,6 @@ #undef BOARD_TLE8888_COUNT #define BOARD_TLE8888_COUNT 0 -#undef BOARD_EXT_GPIOCHIPS -#define BOARD_EXT_GPIOCHIPS (BOARD_TLE6240_COUNT + BOARD_MC33972_COUNT + BOARD_TLE8888_COUNT) - /* * Board oscillators-related settings. * NOTE: LSE not fitted. diff --git a/firmware/config/stm32f4ems/efifeatures.h b/firmware/config/stm32f4ems/efifeatures.h index 62d1447adc..59689fc7d6 100644 --- a/firmware/config/stm32f4ems/efifeatures.h +++ b/firmware/config/stm32f4ems/efifeatures.h @@ -146,8 +146,6 @@ #define BOARD_TLE8888_COUNT 1 #endif -// todo: move this outside of efifeatures.h -#define BOARD_EXT_GPIOCHIPS (BOARD_TLE6240_COUNT + BOARD_MC33972_COUNT + BOARD_TLE8888_COUNT) // todo: move this outside of efifeatures.h #define BOARD_EXT_PINREPOPINS 24 diff --git a/firmware/config/stm32f7ems/efifeatures.h b/firmware/config/stm32f7ems/efifeatures.h index ff9956cc80..d80f34fc06 100644 --- a/firmware/config/stm32f7ems/efifeatures.h +++ b/firmware/config/stm32f7ems/efifeatures.h @@ -50,8 +50,6 @@ #define BOARD_TLE8888_COUNT 1 #endif -// todo: move this outside of efifeatures.h -#define BOARD_EXT_GPIOCHIPS (BOARD_TLE6240_COUNT + BOARD_MC33972_COUNT + BOARD_TLE8888_COUNT) #undef EFI_CAN_SUPPORT diff --git a/firmware/controllers/system/efi_gpio.h b/firmware/controllers/system/efi_gpio.h index 09a10db6e7..19ec69ae6f 100644 --- a/firmware/controllers/system/efi_gpio.h +++ b/firmware/controllers/system/efi_gpio.h @@ -12,6 +12,7 @@ #include "global.h" #include "io_pins.h" #include "engine_configuration.h" +#include "smart_gpio.h" void initPrimaryPins(Logging *sharedLogger); void initOutputPins(DECLARE_ENGINE_PARAMETER_SIGNATURE); diff --git a/firmware/hw_layer/drivers/gpio/core.c b/firmware/hw_layer/drivers/gpio/core.c index 2dbbcefe8e..2aa1e5de9f 100644 --- a/firmware/hw_layer/drivers/gpio/core.c +++ b/firmware/hw_layer/drivers/gpio/core.c @@ -8,6 +8,7 @@ #include "global.h" #include "gpio/gpio_ext.h" +#include "smart_gpio.h" #define STRING2(x) #x #define STRING(x) STRING2(x) diff --git a/firmware/hw_layer/smart_gpio.h b/firmware/hw_layer/smart_gpio.h index fa1c210d17..12fa1fc6e6 100644 --- a/firmware/hw_layer/smart_gpio.h +++ b/firmware/hw_layer/smart_gpio.h @@ -16,12 +16,18 @@ #else /* EFI_PROD_CODE */ #endif /* EFI_PROD_CODE */ +#if EFI_UNIT_TEST + #define BOARD_EXT_GPIOCHIPS 3 +#else + #define BOARD_EXT_GPIOCHIPS (BOARD_TLE6240_COUNT + BOARD_MC33972_COUNT + BOARD_TLE8888_COUNT) +#endif + /* TLE6240 pins go right after on chips */ #define TLE6240_PIN(n) ((brain_pin_e)((int)BRAIN_PIN_LAST_ONCHIP + 1 + (n))) /* MC33972 pins go right after TLE6240 */ #define MC33972_PIN(n) ((brain_pin_e)((int)BRAIN_PIN_LAST_ONCHIP + 1 + 16 + (n))) void initSmartGpio(void); -void startSmartCsPins(); -void stopSmartCsPins(); +void startSmartCsPins(void); +void stopSmartCsPins(void); diff --git a/simulator/simulator/efifeatures.h b/simulator/simulator/efifeatures.h index da667200d6..52124a3f13 100644 --- a/simulator/simulator/efifeatures.h +++ b/simulator/simulator/efifeatures.h @@ -39,8 +39,6 @@ #define BOARD_MC33972_COUNT 0 #define BOARD_TLE8888_COUNT 0 -#define BOARD_EXT_GPIOCHIPS (BOARD_TLE6240_COUNT + BOARD_MC33972_COUNT + BOARD_TLE8888_COUNT) - #define EFI_CLOCK_LOCKS FALSE #define EFI_FSIO TRUE @@ -92,10 +90,6 @@ #define EFI_CAN_SUPPORT FALSE #define EFI_MAX_31855 FALSE -#define BOARD_TLE6240_COUNT 0 -#define BOARD_MC33972_COUNT 0 -#define BOARD_TLE8888_COUNT 0 - #define EFI_ELECTRONIC_THROTTLE_BODY TRUE #define EFI_AUX_PID TRUE #define EFI_ICU_INPUTS FALSE diff --git a/unit_tests/efifeatures.h b/unit_tests/efifeatures.h index b38f006a4d..910f15331f 100644 --- a/unit_tests/efifeatures.h +++ b/unit_tests/efifeatures.h @@ -63,8 +63,6 @@ #define EFI_ANALOG_SENSORS TRUE -#define BOARD_EXT_GPIOCHIPS 3 - #define EFI_BOARD_TEST FALSE #define EFI_JOYSTICK FALSE