sdcard: support thingplus-rp2040

The instances of SPI interfaces SPI0, SPI1, ... are
pointers to SPI types on rp2040 machines, rather plain
values like other machines.

This needs restructuring the sdcard API to take a pointer
to the SPI interface rather the SPI type itself.

Removed waitserial() since it needs modem control lines
not available on most boards
This commit is contained in:
Olaf Flebbe
2022-04-24 21:06:27 +02:00
committed by Ron Evans
parent ec00fdef9b
commit 9f6783670f
19 changed files with 54 additions and 35 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ import (
) )
func init() { func init() {
spi = machine.SPI0 spi = &machine.SPI0
sckPin = machine.SPI0_SCK_PIN sckPin = machine.SPI0_SCK_PIN
sdoPin = machine.SPI0_SDO_PIN sdoPin = machine.SPI0_SDO_PIN
sdiPin = machine.SPI0_SDI_PIN sdiPin = machine.SPI0_SDI_PIN
+1 -1
View File
@@ -8,7 +8,7 @@ import (
) )
func init() { func init() {
spi = machine.SPI1 spi = &machine.SPI1
sckPin = machine.SDCARD_SCK_PIN sckPin = machine.SDCARD_SCK_PIN
sdoPin = machine.SDCARD_SDO_PIN sdoPin = machine.SDCARD_SDO_PIN
sdiPin = machine.SDCARD_SDI_PIN sdiPin = machine.SDCARD_SDI_PIN
+1 -1
View File
@@ -8,7 +8,7 @@ import (
) )
func init() { func init() {
spi = machine.SPI0 spi = &machine.SPI0
sckPin = machine.SPI0_SCK_PIN sckPin = machine.SPI0_SCK_PIN
sdoPin = machine.SPI0_SDO_PIN sdoPin = machine.SPI0_SDO_PIN
sdiPin = machine.SPI0_SDI_PIN sdiPin = machine.SPI0_SDI_PIN
+1 -9
View File
@@ -9,7 +9,7 @@ import (
) )
var ( var (
spi machine.SPI spi *machine.SPI
sckPin machine.Pin sckPin machine.Pin
sdoPin machine.Pin sdoPin machine.Pin
sdiPin machine.Pin sdiPin machine.Pin
@@ -18,7 +18,6 @@ var (
) )
func main() { func main() {
waitSerial()
fmt.Printf("sdcard console\r\n") fmt.Printf("sdcard console\r\n")
led := ledPin led := ledPin
@@ -42,10 +41,3 @@ func main() {
time.Sleep(200 * time.Millisecond) time.Sleep(200 * time.Millisecond)
} }
} }
// Wait for user to open serial console
func waitSerial() {
for !machine.Serial.DTR() {
time.Sleep(100 * time.Millisecond)
}
}
+1 -1
View File
@@ -8,7 +8,7 @@ import (
) )
func init() { func init() {
spi = machine.SDCARD_SPI spi = &machine.SDCARD_SPI
sckPin = machine.SDCARD_SCK_PIN sckPin = machine.SDCARD_SCK_PIN
sdoPin = machine.SDCARD_SDO_PIN sdoPin = machine.SDCARD_SDO_PIN
sdiPin = machine.SDCARD_SDI_PIN sdiPin = machine.SDCARD_SDI_PIN
+1 -1
View File
@@ -8,7 +8,7 @@ import (
) )
func init() { func init() {
spi = machine.SPI0 spi = &machine.SPI0
sckPin = machine.SPI0_SCK_PIN sckPin = machine.SPI0_SCK_PIN
sdoPin = machine.SPI0_SDO_PIN sdoPin = machine.SPI0_SDO_PIN
sdiPin = machine.SPI0_SDI_PIN sdiPin = machine.SPI0_SDI_PIN
+1 -1
View File
@@ -8,7 +8,7 @@ import (
) )
func init() { func init() {
spi = machine.SPI0 spi = &machine.SPI0
sckPin = machine.SPI0_SCK_PIN sckPin = machine.SPI0_SCK_PIN
sdoPin = machine.SPI0_SDO_PIN sdoPin = machine.SPI0_SDO_PIN
sdiPin = machine.SPI0_SDI_PIN sdiPin = machine.SPI0_SDI_PIN
@@ -0,0 +1,18 @@
//go:build thingplus_rp2040
// +build thingplus_rp2040
package main
import (
"machine"
)
func init() {
spi = machine.SPI1
sckPin = machine.SPI1_SCK_PIN
sdoPin = machine.SPI1_SDO_PIN
sdiPin = machine.SPI1_SDI_PIN
csPin = machine.GPIO9
ledPin = machine.LED
}
+1 -1
View File
@@ -8,7 +8,7 @@ import (
) )
func init() { func init() {
spi = machine.SPI2 spi = &machine.SPI2
sckPin = machine.SCK2 sckPin = machine.SCK2
sdoPin = machine.SDO2 sdoPin = machine.SDO2
sdiPin = machine.SDI2 sdiPin = machine.SDI2
+1 -1
View File
@@ -8,7 +8,7 @@ import (
) )
func init() { func init() {
spi = machine.SPI0 spi = &machine.SPI0
sckPin = machine.SPI0_SCK_PIN sckPin = machine.SPI0_SCK_PIN
sdoPin = machine.SPI0_SDO_PIN sdoPin = machine.SPI0_SDO_PIN
sdiPin = machine.SPI0_SDI_PIN sdiPin = machine.SPI0_SDI_PIN
+1 -1
View File
@@ -8,7 +8,7 @@ import (
) )
func init() { func init() {
spi = machine.SPI1 spi = &machine.SPI1
sckPin = machine.SDCARD_SCK_PIN sckPin = machine.SDCARD_SCK_PIN
sdoPin = machine.SDCARD_SDO_PIN sdoPin = machine.SDCARD_SDO_PIN
sdiPin = machine.SDCARD_SDI_PIN sdiPin = machine.SDCARD_SDI_PIN
+1 -1
View File
@@ -8,7 +8,7 @@ import (
) )
func init() { func init() {
spi = machine.SPI0 spi = &machine.SPI0
sckPin = machine.SPI0_SCK_PIN sckPin = machine.SPI0_SCK_PIN
sdoPin = machine.SPI0_SDO_PIN sdoPin = machine.SPI0_SDO_PIN
sdiPin = machine.SPI0_SDI_PIN sdiPin = machine.SPI0_SDI_PIN
+1 -10
View File
@@ -11,7 +11,7 @@ import (
) )
var ( var (
spi machine.SPI spi *machine.SPI
sckPin machine.Pin sckPin machine.Pin
sdoPin machine.Pin sdoPin machine.Pin
sdiPin machine.Pin sdiPin machine.Pin
@@ -20,8 +20,6 @@ var (
) )
func main() { func main() {
waitSerial()
sd := sdcard.New(spi, sckPin, sdoPin, sdiPin, csPin) sd := sdcard.New(spi, sckPin, sdoPin, sdiPin, csPin)
err := sd.Configure() err := sd.Configure()
if err != nil { if err != nil {
@@ -40,10 +38,3 @@ func main() {
console.RunFor(&sd, filesystem) console.RunFor(&sd, filesystem)
} }
// Wait for user to open serial console
func waitSerial() {
for !machine.Serial.DTR() {
time.Sleep(100 * time.Millisecond)
}
}
+1 -1
View File
@@ -8,7 +8,7 @@ import (
) )
func init() { func init() {
spi = machine.SDCARD_SPI spi = &machine.SDCARD_SPI
sckPin = machine.SDCARD_SCK_PIN sckPin = machine.SDCARD_SCK_PIN
sdoPin = machine.SDCARD_SDO_PIN sdoPin = machine.SDCARD_SDO_PIN
sdiPin = machine.SDCARD_SDI_PIN sdiPin = machine.SDCARD_SDI_PIN
+1 -1
View File
@@ -8,7 +8,7 @@ import (
) )
func init() { func init() {
spi = machine.SPI0 spi = &machine.SPI0
sckPin = machine.SPI0_SCK_PIN sckPin = machine.SPI0_SCK_PIN
sdoPin = machine.SPI0_SDO_PIN sdoPin = machine.SPI0_SDO_PIN
sdiPin = machine.SPI0_SDI_PIN sdiPin = machine.SPI0_SDI_PIN
+1 -1
View File
@@ -8,7 +8,7 @@ import (
) )
func init() { func init() {
spi = machine.SPI0 spi = &machine.SPI0
sckPin = machine.SPI0_SCK_PIN sckPin = machine.SPI0_SCK_PIN
sdoPin = machine.SPI0_SDO_PIN sdoPin = machine.SPI0_SDO_PIN
sdiPin = machine.SPI0_SDI_PIN sdiPin = machine.SPI0_SDI_PIN
@@ -0,0 +1,18 @@
//go:build thingplus_rp2040
// +build thingplus_rp2040
package main
import (
"machine"
)
func init() {
spi = machine.SPI1
sckPin = machine.SPI1_SCK_PIN
sdoPin = machine.SPI1_SDO_PIN
sdiPin = machine.SPI1_SDI_PIN
csPin = machine.GPIO9
ledPin = machine.LED
}
+1 -1
View File
@@ -8,7 +8,7 @@ import (
) )
func init() { func init() {
spi = machine.SPI2 spi = &machine.SPI2
sckPin = machine.SCK2 sckPin = machine.SCK2
sdoPin = machine.SDO2 sdoPin = machine.SDO2
sdiPin = machine.SDI2 sdiPin = machine.SDI2
+2 -2
View File
@@ -28,7 +28,7 @@ var (
) )
type Device struct { type Device struct {
bus machine.SPI bus *machine.SPI
sck machine.Pin sck machine.Pin
sdo machine.Pin sdo machine.Pin
sdi machine.Pin sdi machine.Pin
@@ -41,7 +41,7 @@ type Device struct {
CSD *CSD CSD *CSD
} }
func New(b machine.SPI, sck, sdo, sdi, cs machine.Pin) Device { func New(b *machine.SPI, sck, sdo, sdi, cs machine.Pin) Device {
return Device{ return Device{
bus: b, bus: b,
cs: cs, cs: cs,