machine/atsamd51: refactor SPI pin configuration to only look at pin numbers

This commit does the same thing as
https://github.com/tinygo-org/tinygo/pull/597 but for samd51 series
chips. Pin mode and pad numbers are automatically calculated from pin
numbers, returning an error if no valid pinout is possible.
This commit is contained in:
Ayke van Laethem
2019-12-23 00:27:49 +01:00
committed by Ron Evans
parent 7ace991a2b
commit 31d3ac725f
5 changed files with 224 additions and 83 deletions
+7 -15
View File
@@ -120,15 +120,9 @@ const (
// SPI on the PyBadge.
var (
SPI0 = SPI{Bus: sam.SERCOM1_SPIM,
SCK: SPI0_SCK_PIN,
MOSI: SPI0_MOSI_PIN,
MISO: SPI0_MISO_PIN,
DOpad: spiTXPad3SCK1,
DIpad: sercomRXPad2,
MISOPinMode: PinSERCOM,
MOSIPinMode: PinSERCOM,
SCKPinMode: PinSERCOM,
SPI0 = SPI{
Bus: sam.SERCOM1_SPIM,
SERCOM: 1,
}
)
@@ -136,15 +130,13 @@ var (
const (
SPI1_SCK_PIN = PB13 // SCK: SERCOM4/PAD[1]
SPI1_MOSI_PIN = PB15 // MOSI: SERCOM4/PAD[3]
SPI1_MISO_PIN = NoPin
)
// TFT SPI on the PyBadge.
var (
SPI1 = SPI{Bus: sam.SERCOM4_SPIM,
SCK: SPI1_SCK_PIN,
MOSI: SPI1_MOSI_PIN,
DOpad: spiTXPad3SCK1,
MOSIPinMode: PinSERCOM,
SCKPinMode: PinSERCOM,
SPI1 = SPI{
Bus: sam.SERCOM4_SPIM,
SERCOM: 4,
}
)