From 740d18fc0fba53be18fff06efe823ce34468a06a Mon Sep 17 00:00:00 2001 From: rusefi Date: Wed, 27 Mar 2019 04:02:34 -0400 Subject: [PATCH] we need TLE8888 driver #714 --- firmware/hw_layer/drivers/drivers.mk | 2 +- firmware/hw_layer/drivers/gpio/tle8888.cpp | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/firmware/hw_layer/drivers/drivers.mk b/firmware/hw_layer/drivers/drivers.mk index 783533a735..4db34d1aca 100644 --- a/firmware/hw_layer/drivers/drivers.mk +++ b/firmware/hw_layer/drivers/drivers.mk @@ -2,7 +2,7 @@ DRIVERS_DIR=$(PROJECT_DIR)/hw_layer/drivers HW_LAYER_DRIVERS_INC = \ $(DRIVERS_DIR) \ - $(DRIVERS_DIR)\gpio \ + $(DRIVERS_DIR)/gpio \ HW_LAYER_DRIVERS_CORE = \ $(DRIVERS_DIR)/gpio/core.c \ diff --git a/firmware/hw_layer/drivers/gpio/tle8888.cpp b/firmware/hw_layer/drivers/gpio/tle8888.cpp index 9755103c1e..7bdf6dcae5 100644 --- a/firmware/hw_layer/drivers/gpio/tle8888.cpp +++ b/firmware/hw_layer/drivers/gpio/tle8888.cpp @@ -21,6 +21,7 @@ #define DATA_OE_ENABLE 0b00000010 static unsigned char tx_buff[2]; +static unsigned char rx_buff[2]; extern TunerStudioOutputChannels tsOutputChannels; @@ -63,5 +64,19 @@ void initTle8888(DECLARE_ENGINE_PARAMETER_SIGNATURE) { if (engineConfiguration->debugMode == DBG_TLE8888) { tsOutputChannels.debugIntField1 = 2; } + /** + * 15.1 SPI Protocol + * + * after a read or write command: the address and content of the selected register + * is transmitted with the next SPI transmission (for not existing addresses or + * wrong access mode the data is always “0”) + */ + + spiReceive(driver, 2, rx_buff); + + if (engineConfiguration->debugMode == DBG_TLE8888) { + tsOutputChannels.debugIntField2 = (rx_buff[1] << 8) + rx_buff[0]; + } + spiUnselect(driver); }