From afdeba9811d788cc6ebc22d3edd1fad7c4874aa9 Mon Sep 17 00:00:00 2001 From: 0xc0170 Date: Thu, 7 Aug 2014 08:53:55 +0100 Subject: [PATCH] [Kinetis K] K64F and K20D50M - SPI Slave read bug fix - Spi Slave - read() needs to clear Drain Request flag --- .../mbed/targets/hal/TARGET_Freescale/TARGET_K20D50M/spi_api.c | 1 + .../hal/TARGET_Freescale/TARGET_KPSDK_MCUS/TARGET_K64F/spi_api.c | 1 + 2 files changed, 2 insertions(+) diff --git a/libraries/mbed/targets/hal/TARGET_Freescale/TARGET_K20D50M/spi_api.c b/libraries/mbed/targets/hal/TARGET_Freescale/TARGET_K20D50M/spi_api.c index 974da330e9..49746e6d5f 100644 --- a/libraries/mbed/targets/hal/TARGET_Freescale/TARGET_K20D50M/spi_api.c +++ b/libraries/mbed/targets/hal/TARGET_Freescale/TARGET_K20D50M/spi_api.c @@ -165,6 +165,7 @@ int spi_slave_receive(spi_t *obj) { } int spi_slave_read(spi_t *obj) { + obj->spi->SR |= SPI_SR_RFDF_MASK; return obj->spi->POPR; } diff --git a/libraries/mbed/targets/hal/TARGET_Freescale/TARGET_KPSDK_MCUS/TARGET_K64F/spi_api.c b/libraries/mbed/targets/hal/TARGET_Freescale/TARGET_KPSDK_MCUS/TARGET_K64F/spi_api.c index d1fd528d5b..2dd4514082 100644 --- a/libraries/mbed/targets/hal/TARGET_Freescale/TARGET_KPSDK_MCUS/TARGET_K64F/spi_api.c +++ b/libraries/mbed/targets/hal/TARGET_Freescale/TARGET_KPSDK_MCUS/TARGET_K64F/spi_api.c @@ -133,6 +133,7 @@ int spi_slave_receive(spi_t *obj) { } int spi_slave_read(spi_t *obj) { + dspi_hal_clear_status_flag(obj->instance, kDspiRxFifoDrainRequest); return dspi_hal_read_data(obj->instance); }