From 82e33e45afe094480776d38a41cf6da7ae26c19a Mon Sep 17 00:00:00 2001 From: dron0gus Date: Wed, 12 Feb 2020 01:49:14 +0300 Subject: [PATCH] Tle8888 wd (#1143) * tle8888: watchdog: debug over TS: remove tailing register address * tle8888: ann console command to dump all regs --- firmware/hw_layer/drivers/gpio/tle8888.c | 14 +++++++++++--- firmware/hw_layer/pin_repository.cpp | 19 +++++++++++++++++++ 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/firmware/hw_layer/drivers/gpio/tle8888.c b/firmware/hw_layer/drivers/gpio/tle8888.c index d527f7e864..5a82528295 100644 --- a/firmware/hw_layer/drivers/gpio/tle8888.c +++ b/firmware/hw_layer/drivers/gpio/tle8888.c @@ -207,9 +207,9 @@ static const char* tle8888_pin_names[TLE8888_OUTPUTS] = { #if EFI_TUNER_STUDIO void tle8888PostState(TsDebugChannels *debugChannels) { - debugChannels->debugIntField1 = WindowWatchdogErrorCounterValue; - debugChannels->debugIntField2 = FunctionalWatchdogPassCounterValue; - debugChannels->debugIntField3 = TotalErrorCounterValue; + debugChannels->debugIntField1 = (WindowWatchdogErrorCounterValue >> 8) & 0x3f; + debugChannels->debugIntField2 = (FunctionalWatchdogPassCounterValue >> 8) & 0x3f; + debugChannels->debugIntField3 = (TotalErrorCounterValue >> 8) & 0x3f; //debugChannels->debugIntField1 = tle8888SpiCounter; //debugChannels->debugIntField2 = spiTxb; //debugChannels->debugIntField3 = spiRxb; @@ -685,6 +685,14 @@ err_gpios: return ret; } +/* DEBUG */ +void tle8888_read_reg(uint16_t reg, uint16_t *val) +{ + struct tle8888_priv *chip = &chips[0]; + + tle8888_spi_rw(chip, CMD_R(reg), val); +} + int tle8888_init(void * data) { int ret; diff --git a/firmware/hw_layer/pin_repository.cpp b/firmware/hw_layer/pin_repository.cpp index eedaf745f9..d6f9e347fd 100644 --- a/firmware/hw_layer/pin_repository.cpp +++ b/firmware/hw_layer/pin_repository.cpp @@ -52,6 +52,24 @@ PinRepository::PinRepository() { static PinRepository instance; +/* DEBUG */ +extern "C" { + extern void tle8888_read_reg(uint16_t reg, uint16_t *val); +} +static void tle8888_dump_regs(void) +{ + int i; + uint16_t tmp; + + tle8888_read_reg(0, NULL); + + for (i = 0; i < 0x7e + 1; i++) { + tle8888_read_reg(i, &tmp); + + scheduleMsg(&logger, "%02x: %02x", tmp & 0x7f ,(tmp >> 8) & 0xff); + } +} + static void reportPins(void) { for (unsigned int i = 0; i < getNumBrainPins(); i++) { const char *pin_user = getBrainUsedPin(i); @@ -161,6 +179,7 @@ void initPinRepository(void) { initialized = true; addConsoleAction(CMD_PINS, reportPins); + addConsoleAction("tle8888", tle8888_dump_regs); } bool brain_pin_is_onchip(brain_pin_e brainPin)