mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-17 11:13:27 +00:00
rp2: allow SPI transmit-only without SDI (#5437)
* rp2: allow SPI transmit-only without SDI * ci: rerun --------- Co-authored-by: rdon <you@example.com>
This commit is contained in:
@@ -130,11 +130,11 @@ func (spi *SPI) validPins(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 == 16 || config.SDI == 20
|
okSDI = config.SDI == NoPin || config.SDI == 0 || config.SDI == 4 || config.SDI == 16 || config.SDI == 20
|
||||||
okSDO = config.SDO == 3 || config.SDO == 7 || config.SDO == 19 || config.SDO == 23
|
okSDO = config.SDO == 3 || config.SDO == 7 || config.SDO == 19 || config.SDO == 23
|
||||||
okSCK = config.SCK == 2 || config.SCK == 6 || config.SCK == 18 || config.SCK == 22
|
okSCK = config.SCK == 2 || config.SCK == 6 || config.SCK == 18 || config.SCK == 22
|
||||||
case rp.SPI1:
|
case rp.SPI1:
|
||||||
okSDI = config.SDI == 8 || config.SDI == 12 || config.SDI == 24 || config.SDI == 28
|
okSDI = config.SDI == NoPin || config.SDI == 8 || config.SDI == 12 || config.SDI == 24 || config.SDI == 28
|
||||||
okSDO = config.SDO == 11 || config.SDO == 15 || config.SDO == 27
|
okSDO = config.SDO == 11 || config.SDO == 15 || config.SDO == 27
|
||||||
okSCK = config.SCK == 10 || config.SCK == 14 || config.SCK == 26
|
okSCK = config.SCK == 10 || config.SCK == 14 || config.SCK == 26
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,11 +21,11 @@ func (spi *SPI) validPins(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 == 16 || config.SDI == 20
|
okSDI = config.SDI == NoPin || config.SDI == 0 || config.SDI == 4 || config.SDI == 16 || config.SDI == 20
|
||||||
okSDO = config.SDO == 3 || config.SDO == 7 || config.SDO == 19 || config.SDO == 23
|
okSDO = config.SDO == 3 || config.SDO == 7 || config.SDO == 19 || config.SDO == 23
|
||||||
okSCK = config.SCK == 2 || config.SCK == 6 || config.SCK == 18 || config.SCK == 22
|
okSCK = config.SCK == 2 || config.SCK == 6 || config.SCK == 18 || config.SCK == 22
|
||||||
case rp.SPI1:
|
case rp.SPI1:
|
||||||
okSDI = config.SDI == 8 || config.SDI == 12 || config.SDI == 24 || config.SDI == 28
|
okSDI = config.SDI == NoPin || config.SDI == 8 || config.SDI == 12 || config.SDI == 24 || config.SDI == 28
|
||||||
okSDO = config.SDO == 11 || config.SDO == 15 || config.SDO == 27
|
okSDO = config.SDO == 11 || config.SDO == 15 || config.SDO == 27
|
||||||
okSCK = config.SCK == 10 || config.SCK == 14 || config.SCK == 26
|
okSCK = config.SCK == 10 || config.SCK == 14 || config.SCK == 26
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,11 +55,11 @@ func (spi *SPI) validPins(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 == 16 || config.SDI == 20 || config.SDI == 32 || config.SDI == 36
|
okSDI = config.SDI == NoPin || config.SDI == 0 || config.SDI == 4 || config.SDI == 16 || config.SDI == 20 || config.SDI == 32 || config.SDI == 36
|
||||||
okSDO = config.SDO == 3 || config.SDO == 7 || config.SDO == 19 || config.SDO == 23 || config.SDO == 35 || config.SDO == 39
|
okSDO = config.SDO == 3 || config.SDO == 7 || config.SDO == 19 || config.SDO == 23 || config.SDO == 35 || config.SDO == 39
|
||||||
okSCK = config.SCK == 2 || config.SCK == 6 || config.SCK == 18 || config.SCK == 22 || config.SCK == 34 || config.SCK == 38
|
okSCK = config.SCK == 2 || config.SCK == 6 || config.SCK == 18 || config.SCK == 22 || config.SCK == 34 || config.SCK == 38
|
||||||
case rp.SPI1:
|
case rp.SPI1:
|
||||||
okSDI = config.SDI == 8 || config.SDI == 12 || config.SDI == 24 || config.SDI == 28 || config.SDI == 40 || config.SDI == 44
|
okSDI = config.SDI == NoPin || config.SDI == 8 || config.SDI == 12 || config.SDI == 24 || config.SDI == 28 || config.SDI == 40 || config.SDI == 44
|
||||||
okSDO = config.SDO == 11 || config.SDO == 15 || config.SDO == 27 || config.SDO == 31 || config.SDO == 43 || config.SDO == 47
|
okSDO = config.SDO == 11 || config.SDO == 15 || config.SDO == 27 || config.SDO == 31 || config.SDO == 43 || config.SDO == 47
|
||||||
okSCK = config.SCK == 10 || config.SCK == 14 || config.SCK == 26 || config.SCK == 30 || config.SCK == 42 || config.SCK == 46
|
okSCK = config.SCK == 10 || config.SCK == 14 || config.SCK == 26 || config.SCK == 30 || config.SCK == 42 || config.SCK == 46
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -174,7 +174,9 @@ func (spi *SPI) Configure(config SPIConfig) error {
|
|||||||
// SPI pin configuration
|
// SPI pin configuration
|
||||||
config.SCK.setFunc(fnSPI)
|
config.SCK.setFunc(fnSPI)
|
||||||
config.SDO.setFunc(fnSPI)
|
config.SDO.setFunc(fnSPI)
|
||||||
config.SDI.setFunc(fnSPI)
|
if config.SDI != NoPin {
|
||||||
|
config.SDI.setFunc(fnSPI)
|
||||||
|
}
|
||||||
|
|
||||||
return spi.initSPI(config)
|
return spi.initSPI(config)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user