From ad1da7d26f735a9edbd30383b1972f99512baf85 Mon Sep 17 00:00:00 2001 From: deadprogram Date: Thu, 23 Feb 2023 18:52:24 +0100 Subject: [PATCH] machine/rp2040: correct issue with spi pin validation Signed-off-by: deadprogram --- src/machine/machine_rp2040_spi.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/machine/machine_rp2040_spi.go b/src/machine/machine_rp2040_spi.go index 569a452a..b7c06def 100644 --- a/src/machine/machine_rp2040_spi.go +++ b/src/machine/machine_rp2040_spi.go @@ -181,22 +181,24 @@ func (spi SPI) Configure(config SPIConfig) error { var okSDI, okSDO, okSCK bool switch spi.Bus { case rp.SPI0: - okSDI = config.SDI == 0 || config.SDI == 4 || config.SDI == 17 + okSDI = config.SDI == 0 || config.SDI == 4 || config.SDI == 16 okSDO = config.SDO == 3 || config.SDO == 7 || config.SDO == 19 okSCK = config.SCK == 2 || config.SCK == 6 || config.SCK == 18 case rp.SPI1: - okSDI = config.SDI == 8 || config.SDI == 12 - okSDO = config.SDO == 11 || config.SDO == 15 - okSDO = config.SCK == 10 || config.SCK == 14 + okSDI = config.SDI == 8 || config.SDI == 12 || config.SDI == 28 + okSDO = config.SDO == 11 || config.SDO == 15 || config.SDO == 27 + okSCK = config.SCK == 10 || config.SCK == 14 || config.SCK == 26 } - if !okSDI { + switch { + case !okSDI: return errSPIInvalidSDI - } else if !okSDO { + case !okSDO: return errSPIInvalidSDO - } else if !okSCK { + case !okSCK: return errSPIInvalidSCK } + if config.DataBits < 4 || config.DataBits > 16 { config.DataBits = 8 }