From eada3c394c8bf9d307343cc18b7d618da47621b3 Mon Sep 17 00:00:00 2001 From: GitHub build-firmware Action Date: Tue, 10 Nov 2020 17:39:01 +0000 Subject: [PATCH 1/2] Auto-generated configs and docs --- ...ngine_configuration_generated_structures.h | 6 +++--- .../controllers/algo/rusefi_generated.h | 6 +++--- ...ngine_configuration_generated_structures.h | 6 +++--- .../controllers/algo/rusefi_generated.h | 6 +++--- ...ngine_configuration_generated_structures.h | 6 +++--- .../generated/fsio_enums_generated.def | 2 +- .../controllers/generated/fsio_getters.def | 2 +- firmware/controllers/generated/fsio_names.def | 2 +- .../controllers/generated/fsio_strings.def | 2 +- .../controllers/generated/rusefi_generated.h | 6 +++--- .../controllers/generated/signature_all.h | 4 ++-- .../generated/signature_frankenso_na6.h | 4 ++-- .../generated/signature_hellen_cypress.h | 4 ++-- .../controllers/generated/signature_kin.h | 4 ++-- .../controllers/generated/signature_mre_f4.h | 4 ++-- .../controllers/generated/signature_mre_f7.h | 4 ++-- .../generated/signature_prometheus_405.h | 4 ++-- .../generated/signature_prometheus_469.h | 4 ++-- .../generated/signature_proteus_f4.h | 4 ++-- .../generated/signature_proteus_f7.h | 4 ++-- firmware/tunerstudio/generated/cache.zip | Bin 961159 -> 961269 bytes firmware/tunerstudio/generated/rusefi.ini | 9 +++++---- .../generated/rusefi_frankenso_na6.ini | 9 +++++---- .../generated/rusefi_hellen_cypress.ini | 9 +++++---- .../tunerstudio/generated/rusefi_kinetis.ini | 9 +++++---- .../tunerstudio/generated/rusefi_mre_f4.ini | 9 +++++---- .../tunerstudio/generated/rusefi_mre_f7.ini | 9 +++++---- .../generated/rusefi_prometheus_405.ini | 9 +++++---- .../generated/rusefi_prometheus_469.ini | 9 +++++---- .../generated/rusefi_proteus_f4.ini | 9 +++++---- .../generated/rusefi_proteus_f7.ini | 9 +++++---- .../com/rusefi/config/generated/Fields.java | 12 ++++++------ java_console/rusefi.xml | 2 +- 33 files changed, 99 insertions(+), 89 deletions(-) diff --git a/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h b/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h index 02c0b96330..b1dfc0d61f 100644 --- a/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Tue Nov 10 03:09:13 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Tue Nov 10 17:38:43 UTC 2020 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -731,7 +731,7 @@ struct engine_configuration_s { bool displayLogicLevelsInEngineSniffer : 1; /** offset 76 bit 25 */ - bool issue_294_26 : 1; + bool useTLE8888_stepper : 1; /** offset 76 bit 26 */ bool issue_294_27 : 1; @@ -3761,4 +3761,4 @@ struct persistent_config_s { typedef struct persistent_config_s persistent_config_s; // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Tue Nov 10 03:09:13 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Tue Nov 10 17:38:43 UTC 2020 diff --git a/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h index 20d07df62b..95a956d396 100644 --- a/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h @@ -938,7 +938,6 @@ #define isManualSpinningMode_offset 1476 #define isMapAveragingEnabled_offset 1476 #define isSdCardEnabled_offset 744 -#define issue_294_26_offset 76 #define issue_294_27_offset 76 #define issue_294_28_offset 76 #define issue_294_29_offset 76 @@ -1210,7 +1209,7 @@ #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD hellen_cypress #define SIGNATURE_DATE 2020.11.10 -#define SIGNATURE_HASH 2716187410 +#define SIGNATURE_HASH 2313619380 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1530,7 +1529,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2020.11.10.hellen_cypress.2716187410" +#define TS_SIGNATURE "rusEFI 2020.11.10.hellen_cypress.2313619380" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' // 0x74 @@ -1655,6 +1654,7 @@ #define useSerialPort_offset 744 #define useStepperIdle_offset 744 #define useTLE8888_cranking_hack_offset 76 +#define useTLE8888_stepper_offset 76 #define useTpicAdvancedMode_offset 744 #define VBAT_INJECTOR_CURVE_SIZE 8 #define vbattAdcChannel_offset 513 diff --git a/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h b/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h index 37f9fdd912..a8c381f959 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Tue Nov 10 03:09:11 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Tue Nov 10 17:38:42 UTC 2020 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -731,7 +731,7 @@ struct engine_configuration_s { bool displayLogicLevelsInEngineSniffer : 1; /** offset 76 bit 25 */ - bool issue_294_26 : 1; + bool useTLE8888_stepper : 1; /** offset 76 bit 26 */ bool issue_294_27 : 1; @@ -3761,4 +3761,4 @@ struct persistent_config_s { typedef struct persistent_config_s persistent_config_s; // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Tue Nov 10 03:09:11 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Tue Nov 10 17:38:42 UTC 2020 diff --git a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h index 0d919453e6..3c08c80156 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h @@ -938,7 +938,6 @@ #define isManualSpinningMode_offset 1476 #define isMapAveragingEnabled_offset 1476 #define isSdCardEnabled_offset 744 -#define issue_294_26_offset 76 #define issue_294_27_offset 76 #define issue_294_28_offset 76 #define issue_294_29_offset 76 @@ -1210,7 +1209,7 @@ #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD kin #define SIGNATURE_DATE 2020.11.10 -#define SIGNATURE_HASH 4042883560 +#define SIGNATURE_HASH 3640343886 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1530,7 +1529,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator true #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2020.11.10.kin.4042883560" +#define TS_SIGNATURE "rusEFI 2020.11.10.kin.3640343886" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' // 0x74 @@ -1655,6 +1654,7 @@ #define useSerialPort_offset 744 #define useStepperIdle_offset 744 #define useTLE8888_cranking_hack_offset 76 +#define useTLE8888_stepper_offset 76 #define useTpicAdvancedMode_offset 744 #define VBAT_INJECTOR_CURVE_SIZE 8 #define vbattAdcChannel_offset 513 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures.h b/firmware/controllers/generated/engine_configuration_generated_structures.h index 516b6ce60e..e2cff3b064 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 10 03:08:56 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 10 17:38:23 UTC 2020 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -731,7 +731,7 @@ struct engine_configuration_s { bool displayLogicLevelsInEngineSniffer : 1; /** offset 76 bit 25 */ - bool issue_294_26 : 1; + bool useTLE8888_stepper : 1; /** offset 76 bit 26 */ bool issue_294_27 : 1; @@ -3761,4 +3761,4 @@ struct persistent_config_s { typedef struct persistent_config_s persistent_config_s; // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 10 03:08:56 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 10 17:38:23 UTC 2020 diff --git a/firmware/controllers/generated/fsio_enums_generated.def b/firmware/controllers/generated/fsio_enums_generated.def index d11820efe0..5aa8d67d62 100644 --- a/firmware/controllers/generated/fsio_enums_generated.def +++ b/firmware/controllers/generated/fsio_enums_generated.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 10 03:08:56 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 10 17:38:23 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer FSIO_SETTING_FANONTEMPERATURE = 1000, diff --git a/firmware/controllers/generated/fsio_getters.def b/firmware/controllers/generated/fsio_getters.def index e1deef673a..d433d0280d 100644 --- a/firmware/controllers/generated/fsio_getters.def +++ b/firmware/controllers/generated/fsio_getters.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 10 03:08:56 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 10 17:38:23 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_FANONTEMPERATURE: diff --git a/firmware/controllers/generated/fsio_names.def b/firmware/controllers/generated/fsio_names.def index d3238e306d..71bb083001 100644 --- a/firmware/controllers/generated/fsio_names.def +++ b/firmware/controllers/generated/fsio_names.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 10 03:08:56 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 10 17:38:23 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer static LENameOrdinalPair lefanOnTemperature(FSIO_SETTING_FANONTEMPERATURE, "cfg_fanOnTemperature"); diff --git a/firmware/controllers/generated/fsio_strings.def b/firmware/controllers/generated/fsio_strings.def index ea96ea122f..4c064357db 100644 --- a/firmware/controllers/generated/fsio_strings.def +++ b/firmware/controllers/generated/fsio_strings.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 10 03:08:56 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 10 17:38:23 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_FANONTEMPERATURE: diff --git a/firmware/controllers/generated/rusefi_generated.h b/firmware/controllers/generated/rusefi_generated.h index 9b1eec605e..1299b96e54 100644 --- a/firmware/controllers/generated/rusefi_generated.h +++ b/firmware/controllers/generated/rusefi_generated.h @@ -938,7 +938,6 @@ #define isManualSpinningMode_offset 1476 #define isMapAveragingEnabled_offset 1476 #define isSdCardEnabled_offset 744 -#define issue_294_26_offset 76 #define issue_294_27_offset 76 #define issue_294_28_offset 76 #define issue_294_29_offset 76 @@ -1210,7 +1209,7 @@ #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD all #define SIGNATURE_DATE 2020.11.10 -#define SIGNATURE_HASH 1746148817 +#define SIGNATURE_HASH 1075224951 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1530,7 +1529,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2020.11.10.all.1746148817" +#define TS_SIGNATURE "rusEFI 2020.11.10.all.1075224951" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' // 0x74 @@ -1655,6 +1654,7 @@ #define useSerialPort_offset 744 #define useStepperIdle_offset 744 #define useTLE8888_cranking_hack_offset 76 +#define useTLE8888_stepper_offset 76 #define useTpicAdvancedMode_offset 744 #define VBAT_INJECTOR_CURVE_SIZE 8 #define vbattAdcChannel_offset 513 diff --git a/firmware/controllers/generated/signature_all.h b/firmware/controllers/generated/signature_all.h index 4c5c75ba40..270070cf50 100644 --- a/firmware/controllers/generated/signature_all.h +++ b/firmware/controllers/generated/signature_all.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD all #define SIGNATURE_DATE 2020.11.10 -#define SIGNATURE_HASH 1746148817 -#define TS_SIGNATURE "rusEFI 2020.11.10.all.1746148817" +#define SIGNATURE_HASH 1075224951 +#define TS_SIGNATURE "rusEFI 2020.11.10.all.1075224951" diff --git a/firmware/controllers/generated/signature_frankenso_na6.h b/firmware/controllers/generated/signature_frankenso_na6.h index 063c3ffec7..6fd15abd90 100644 --- a/firmware/controllers/generated/signature_frankenso_na6.h +++ b/firmware/controllers/generated/signature_frankenso_na6.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD frankenso_na6 #define SIGNATURE_DATE 2020.11.10 -#define SIGNATURE_HASH 4268010538 -#define TS_SIGNATURE "rusEFI 2020.11.10.frankenso_na6.4268010538" +#define SIGNATURE_HASH 3597013132 +#define TS_SIGNATURE "rusEFI 2020.11.10.frankenso_na6.3597013132" diff --git a/firmware/controllers/generated/signature_hellen_cypress.h b/firmware/controllers/generated/signature_hellen_cypress.h index 255a6ab095..23da1b2680 100644 --- a/firmware/controllers/generated/signature_hellen_cypress.h +++ b/firmware/controllers/generated/signature_hellen_cypress.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD hellen_cypress #define SIGNATURE_DATE 2020.11.10 -#define SIGNATURE_HASH 2716187410 -#define TS_SIGNATURE "rusEFI 2020.11.10.hellen_cypress.2716187410" +#define SIGNATURE_HASH 2313619380 +#define TS_SIGNATURE "rusEFI 2020.11.10.hellen_cypress.2313619380" diff --git a/firmware/controllers/generated/signature_kin.h b/firmware/controllers/generated/signature_kin.h index 7caa295069..e2d2d4a5da 100644 --- a/firmware/controllers/generated/signature_kin.h +++ b/firmware/controllers/generated/signature_kin.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD kin #define SIGNATURE_DATE 2020.11.10 -#define SIGNATURE_HASH 4042883560 -#define TS_SIGNATURE "rusEFI 2020.11.10.kin.4042883560" +#define SIGNATURE_HASH 3640343886 +#define TS_SIGNATURE "rusEFI 2020.11.10.kin.3640343886" diff --git a/firmware/controllers/generated/signature_mre_f4.h b/firmware/controllers/generated/signature_mre_f4.h index 9e320e8598..2ed84917b7 100644 --- a/firmware/controllers/generated/signature_mre_f4.h +++ b/firmware/controllers/generated/signature_mre_f4.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD mre_f4 #define SIGNATURE_DATE 2020.11.10 -#define SIGNATURE_HASH 4175295 -#define TS_SIGNATURE "rusEFI 2020.11.10.mre_f4.4175295" +#define SIGNATURE_HASH 675088665 +#define TS_SIGNATURE "rusEFI 2020.11.10.mre_f4.675088665" diff --git a/firmware/controllers/generated/signature_mre_f7.h b/firmware/controllers/generated/signature_mre_f7.h index 6c6c54bbdf..9e7d3e4070 100644 --- a/firmware/controllers/generated/signature_mre_f7.h +++ b/firmware/controllers/generated/signature_mre_f7.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD mre_f7 #define SIGNATURE_DATE 2020.11.10 -#define SIGNATURE_HASH 4175295 -#define TS_SIGNATURE "rusEFI 2020.11.10.mre_f7.4175295" +#define SIGNATURE_HASH 675088665 +#define TS_SIGNATURE "rusEFI 2020.11.10.mre_f7.675088665" diff --git a/firmware/controllers/generated/signature_prometheus_405.h b/firmware/controllers/generated/signature_prometheus_405.h index e37fcb15a6..c9ddfc1094 100644 --- a/firmware/controllers/generated/signature_prometheus_405.h +++ b/firmware/controllers/generated/signature_prometheus_405.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD prometheus_405 #define SIGNATURE_DATE 2020.11.10 -#define SIGNATURE_HASH 718019456 -#define TS_SIGNATURE "rusEFI 2020.11.10.prometheus_405.718019456" +#define SIGNATURE_HASH 47097638 +#define TS_SIGNATURE "rusEFI 2020.11.10.prometheus_405.47097638" diff --git a/firmware/controllers/generated/signature_prometheus_469.h b/firmware/controllers/generated/signature_prometheus_469.h index 5d22983f4f..3c2ce1bdd7 100644 --- a/firmware/controllers/generated/signature_prometheus_469.h +++ b/firmware/controllers/generated/signature_prometheus_469.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD prometheus_469 #define SIGNATURE_DATE 2020.11.10 -#define SIGNATURE_HASH 718019456 -#define TS_SIGNATURE "rusEFI 2020.11.10.prometheus_469.718019456" +#define SIGNATURE_HASH 47097638 +#define TS_SIGNATURE "rusEFI 2020.11.10.prometheus_469.47097638" diff --git a/firmware/controllers/generated/signature_proteus_f4.h b/firmware/controllers/generated/signature_proteus_f4.h index 66fddc7b0b..d190e88c97 100644 --- a/firmware/controllers/generated/signature_proteus_f4.h +++ b/firmware/controllers/generated/signature_proteus_f4.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD proteus_f4 #define SIGNATURE_DATE 2020.11.10 -#define SIGNATURE_HASH 2713605903 -#define TS_SIGNATURE "rusEFI 2020.11.10.proteus_f4.2713605903" +#define SIGNATURE_HASH 2310859689 +#define TS_SIGNATURE "rusEFI 2020.11.10.proteus_f4.2310859689" diff --git a/firmware/controllers/generated/signature_proteus_f7.h b/firmware/controllers/generated/signature_proteus_f7.h index dc44c0b955..1c6d2c1198 100644 --- a/firmware/controllers/generated/signature_proteus_f7.h +++ b/firmware/controllers/generated/signature_proteus_f7.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD proteus_f7 #define SIGNATURE_DATE 2020.11.10 -#define SIGNATURE_HASH 2713605903 -#define TS_SIGNATURE "rusEFI 2020.11.10.proteus_f7.2713605903" +#define SIGNATURE_HASH 2310859689 +#define TS_SIGNATURE "rusEFI 2020.11.10.proteus_f7.2310859689" diff --git a/firmware/tunerstudio/generated/cache.zip b/firmware/tunerstudio/generated/cache.zip index 6bf1f23e68c46ec1c12ae2e936c2b8c73b35d1c7..55742e3d8b108900ad60cc1ab591079536f70e9b 100644 GIT binary patch delta 267572 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 - + From 62f441376cf184e6fa4785f63484e2bafd63f3d2 Mon Sep 17 00:00:00 2001 From: Andrey G Date: Tue, 10 Nov 2020 22:16:46 +0300 Subject: [PATCH 2/2] Tle8888 stepper (#1936) * TLE8888: enable PP mode for OUT21..24 in case of useTLE8888_stepper * Lada Kalina is a test mule for stepper idle --- firmware/config/engines/lada_kalina.cpp | 1 + firmware/hw_layer/drivers/gpio/tle8888.c | 7 ++++--- firmware/hw_layer/drivers/gpio/tle8888.h | 3 +++ firmware/hw_layer/smart_gpio.cpp | 2 ++ 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/firmware/config/engines/lada_kalina.cpp b/firmware/config/engines/lada_kalina.cpp index 44152f5f0d..268d1a4094 100644 --- a/firmware/config/engines/lada_kalina.cpp +++ b/firmware/config/engines/lada_kalina.cpp @@ -28,6 +28,7 @@ void setLadaKalina(DECLARE_CONFIG_PARAMETER_SIGNATURE) { engineConfiguration->useStepperIdle = true; engineConfiguration->useHbridges = true; engineConfiguration->idleMode = IM_AUTO; + engineConfiguration->useTLE8888_stepper = true; } #else diff --git a/firmware/hw_layer/drivers/gpio/tle8888.c b/firmware/hw_layer/drivers/gpio/tle8888.c index 3de9fa3621..54ea8c31a3 100644 --- a/firmware/hw_layer/drivers/gpio/tle8888.c +++ b/firmware/hw_layer/drivers/gpio/tle8888.c @@ -1130,9 +1130,10 @@ static int tle8888_chip_init_data(void * data) { } } - /* HACK HERE if you want to enable PP for OUT21..OUT24 - * without approprirate call to setPinMode */ - //chip->o_pp_mask |= BIT(20) | BIT(21) | BIT(22) | BIT(23); + /* Enable Push-Pull mode for OUT21..OUT24 */ + if (cfg->stepper) { + chip->o_pp_mask |= BIT(20) | BIT(21) | BIT(22) | BIT(23); + } /* enable all direct driven */ chip->o_oe_mask |= chip->o_direct_mask; diff --git a/firmware/hw_layer/drivers/gpio/tle8888.h b/firmware/hw_layer/drivers/gpio/tle8888.h index f449eace11..411e54ea2f 100644 --- a/firmware/hw_layer/drivers/gpio/tle8888.h +++ b/firmware/hw_layer/drivers/gpio/tle8888.h @@ -65,6 +65,9 @@ struct tle8888_config { uint_fast8_t pad; } inj_en; tle8888_mode_e mode; + /* this is workaround to enable PP mode for OUT21..OUT24 + * until users won't call setPinMode */ + bool stepper; }; #ifdef __cplusplus diff --git a/firmware/hw_layer/smart_gpio.cpp b/firmware/hw_layer/smart_gpio.cpp index f34ed5a9c5..ead3204341 100644 --- a/firmware/hw_layer/smart_gpio.cpp +++ b/firmware/hw_layer/smart_gpio.cpp @@ -149,6 +149,7 @@ struct tle8888_config tle8888_cfg = { .ign_en = {.port = GPIOD, .pad = 10}, .inj_en = {.port = GPIOD, .pad = 11}, .mode = TL_AUTO, + .stepper = false }; #endif @@ -220,6 +221,7 @@ void initSmartGpio() { tle8888_cfg.spi_bus = getSpiDevice(engineConfiguration->tle8888spiDevice); tle8888_cfg.mode = engineConfiguration->tle8888mode; + tle8888_cfg.stepper = engineConfiguration->useTLE8888_stepper; /* spi_bus == null checked in _add function */ ret = tle8888_add(0, &tle8888_cfg);