Skip to content

Commit 89b6698

Browse files
authored
Merge pull request #4477 from c1728p9/workshop_rebase_4054
Silicon Labs: Fix bug with SPI MISO and CS handling
2 parents 8998a55 + 9e999bd commit 89b6698

File tree

1 file changed

+3
-2
lines changed
  • targets/TARGET_Silicon_Labs/TARGET_EFM32

1 file changed

+3
-2
lines changed

targets/TARGET_Silicon_Labs/TARGET_EFM32/spi_api.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ void spi_enable_pins(spi_t *obj, uint8_t enable, PinName mosi, PinName miso, Pin
196196
/* Enabling pins and setting location */
197197
#ifdef _USART_ROUTEPEN_RESETVALUE
198198
uint32_t route = USART_ROUTEPEN_CLKPEN;
199+
199200
obj->spi.spi->ROUTELOC0 &= ~_USART_ROUTELOC0_CLKLOC_MASK;
200201
obj->spi.spi->ROUTELOC0 |= pin_location(clk, PinMap_SPI_CLK)<<_USART_ROUTELOC0_CLKLOC_SHIFT;
201202
if (mosi != NC) {
@@ -206,12 +207,12 @@ void spi_enable_pins(spi_t *obj, uint8_t enable, PinName mosi, PinName miso, Pin
206207
if (miso != NC) {
207208
route |= USART_ROUTEPEN_RXPEN;
208209
obj->spi.spi->ROUTELOC0 &= ~_USART_ROUTELOC0_RXLOC_MASK;
209-
obj->spi.spi->ROUTELOC0 |= pin_location(miso, PinMap_SPI_MOSI)<<_USART_ROUTELOC0_RXLOC_SHIFT;
210+
obj->spi.spi->ROUTELOC0 |= pin_location(miso, PinMap_SPI_MISO)<<_USART_ROUTELOC0_RXLOC_SHIFT;
210211
}
211212
if (!obj->spi.master) {
212213
route |= USART_ROUTEPEN_CSPEN;
213214
obj->spi.spi->ROUTELOC0 &= ~_USART_ROUTELOC0_CSLOC_MASK;
214-
obj->spi.spi->ROUTELOC0 |= pin_location(cs, PinMap_SPI_MOSI)<<_USART_ROUTELOC0_CSLOC_SHIFT;
215+
obj->spi.spi->ROUTELOC0 |= pin_location(cs, PinMap_SPI_CS)<<_USART_ROUTELOC0_CSLOC_SHIFT;
215216
}
216217
obj->spi.location = obj->spi.spi->ROUTELOC0;
217218
obj->spi.route = route;

0 commit comments

Comments
 (0)