machine/rp2040: correct issue with spi pin validation

Signed-off-by: deadprogram <ron@hybridgroup.com>
Этот коммит содержится в:
deadprogram 2023-02-23 18:52:24 +01:00 коммит произвёл Ron Evans
родитель 6df303ff19
коммит ad1da7d26f

Просмотреть файл

@ -181,22 +181,24 @@ func (spi SPI) Configure(config SPIConfig) error {
var okSDI, okSDO, okSCK bool var okSDI, okSDO, okSCK bool
switch spi.Bus { switch spi.Bus {
case rp.SPI0: 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 okSDO = config.SDO == 3 || config.SDO == 7 || config.SDO == 19
okSCK = config.SCK == 2 || config.SCK == 6 || config.SCK == 18 okSCK = config.SCK == 2 || config.SCK == 6 || config.SCK == 18
case rp.SPI1: case rp.SPI1:
okSDI = config.SDI == 8 || config.SDI == 12 okSDI = config.SDI == 8 || config.SDI == 12 || config.SDI == 28
okSDO = config.SDO == 11 || config.SDO == 15 okSDO = config.SDO == 11 || config.SDO == 15 || config.SDO == 27
okSDO = config.SCK == 10 || config.SCK == 14 okSCK = config.SCK == 10 || config.SCK == 14 || config.SCK == 26
} }
if !okSDI { switch {
case !okSDI:
return errSPIInvalidSDI return errSPIInvalidSDI
} else if !okSDO { case !okSDO:
return errSPIInvalidSDO return errSPIInvalidSDO
} else if !okSCK { case !okSCK:
return errSPIInvalidSCK return errSPIInvalidSCK
} }
if config.DataBits < 4 || config.DataBits > 16 { if config.DataBits < 4 || config.DataBits > 16 {
config.DataBits = 8 config.DataBits = 8
} }