Skip to content

Commit f76e8d2

Browse files
authored
fix: ensure use of pointers for SPI interface on atsam21/atsam51 and other machines/boards that were missing implementation. (#4798)
Signed-off-by: deadprogram <ron@hybridgroup.com>
1 parent bcdc5e0 commit f76e8d2

17 files changed

+77
-80
lines changed

src/machine/board_gnse.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ var (
7777
I2C0 = I2C1
7878

7979
// SPI
80-
SPI3 = SPI{
80+
SPI3 = &SPI{
8181
Bus: stm32.SPI3,
8282
}
8383
)

src/machine/board_hifive1b_baremetal.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import "device/sifive"
66

77
// SPI on the HiFive1.
88
var (
9-
SPI1 = SPI{
9+
SPI1 = &SPI{
1010
Bus: sifive.QSPI1,
1111
}
1212
)

src/machine/board_lorae5.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ var (
8585
I2C0 = I2C2
8686

8787
// SPI
88-
SPI3 = SPI{
88+
SPI3 = &SPI{
8989
Bus: stm32.SPI3,
9090
}
9191
)

src/machine/board_nucleowl55jc.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ var (
8484
I2C0 = I2C1
8585

8686
// SPI
87-
SPI3 = SPI{
87+
SPI3 = &SPI{
8888
Bus: stm32.SPI3,
8989
}
9090
)

src/machine/board_teensy40.go

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -263,9 +263,8 @@ const (
263263
)
264264

265265
var (
266-
SPI0 = SPI1 // SPI0 is an alias of SPI1 (LPSPI4)
267-
SPI1 = &_SPI1
268-
_SPI1 = SPI{
266+
SPI0 = SPI1 // SPI0 is an alias of SPI1 (LPSPI4)
267+
SPI1 = &SPI{
269268
Bus: nxp.LPSPI4,
270269
muxSDI: muxSelect{ // D12 (PB1 [B0_01])
271270
mux: nxp.IOMUXC_LPSPI4_SDI_SELECT_INPUT_DAISY_GPIO_B0_01_ALT3,
@@ -284,8 +283,7 @@ var (
284283
sel: &nxp.IOMUXC.LPSPI4_PCS0_SELECT_INPUT,
285284
},
286285
}
287-
SPI2 = &_SPI2
288-
_SPI2 = SPI{
286+
SPI2 = &SPI{
289287
Bus: nxp.LPSPI3,
290288
muxSDI: muxSelect{ // D1 (PA2 [AD_B0_02])
291289
mux: nxp.IOMUXC_LPSPI3_SDI_SELECT_INPUT_DAISY_GPIO_AD_B0_02_ALT7,
@@ -304,8 +302,7 @@ var (
304302
sel: &nxp.IOMUXC.LPSPI3_PCS0_SELECT_INPUT,
305303
},
306304
}
307-
SPI3 = &_SPI3
308-
_SPI3 = SPI{
305+
SPI3 = &SPI{
309306
Bus: nxp.LPSPI1,
310307
muxSDI: muxSelect{ // D34 (PC15 [SD_B0_03])
311308
mux: nxp.IOMUXC_LPSPI1_SDI_SELECT_INPUT_DAISY_GPIO_SD_B0_03_ALT4,

src/machine/machine_atsamd21e18.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ var (
2222
sercomI2CM2 = &I2C{Bus: sam.SERCOM2_I2CM, SERCOM: 2}
2323
sercomI2CM3 = &I2C{Bus: sam.SERCOM3_I2CM, SERCOM: 3}
2424

25-
sercomSPIM0 = SPI{Bus: sam.SERCOM0_SPI, SERCOM: 0}
26-
sercomSPIM1 = SPI{Bus: sam.SERCOM1_SPI, SERCOM: 1}
27-
sercomSPIM2 = SPI{Bus: sam.SERCOM2_SPI, SERCOM: 2}
28-
sercomSPIM3 = SPI{Bus: sam.SERCOM3_SPI, SERCOM: 3}
25+
sercomSPIM0 = &SPI{Bus: sam.SERCOM0_SPI, SERCOM: 0}
26+
sercomSPIM1 = &SPI{Bus: sam.SERCOM1_SPI, SERCOM: 1}
27+
sercomSPIM2 = &SPI{Bus: sam.SERCOM2_SPI, SERCOM: 2}
28+
sercomSPIM3 = &SPI{Bus: sam.SERCOM3_SPI, SERCOM: 3}
2929
)
3030

3131
func init() {

src/machine/machine_atsamd21g18.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ var (
2626
sercomI2CM4 = &I2C{Bus: sam.SERCOM4_I2CM, SERCOM: 4}
2727
sercomI2CM5 = &I2C{Bus: sam.SERCOM5_I2CM, SERCOM: 5}
2828

29-
sercomSPIM0 = SPI{Bus: sam.SERCOM0_SPI, SERCOM: 0}
30-
sercomSPIM1 = SPI{Bus: sam.SERCOM1_SPI, SERCOM: 1}
31-
sercomSPIM2 = SPI{Bus: sam.SERCOM2_SPI, SERCOM: 2}
32-
sercomSPIM3 = SPI{Bus: sam.SERCOM3_SPI, SERCOM: 3}
33-
sercomSPIM4 = SPI{Bus: sam.SERCOM4_SPI, SERCOM: 4}
34-
sercomSPIM5 = SPI{Bus: sam.SERCOM5_SPI, SERCOM: 5}
29+
sercomSPIM0 = &SPI{Bus: sam.SERCOM0_SPI, SERCOM: 0}
30+
sercomSPIM1 = &SPI{Bus: sam.SERCOM1_SPI, SERCOM: 1}
31+
sercomSPIM2 = &SPI{Bus: sam.SERCOM2_SPI, SERCOM: 2}
32+
sercomSPIM3 = &SPI{Bus: sam.SERCOM3_SPI, SERCOM: 3}
33+
sercomSPIM4 = &SPI{Bus: sam.SERCOM4_SPI, SERCOM: 4}
34+
sercomSPIM5 = &SPI{Bus: sam.SERCOM5_SPI, SERCOM: 5}
3535
)
3636

3737
func init() {

src/machine/machine_atsamd51g19.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ var (
1818
sercomI2CM4 = &I2C{Bus: sam.SERCOM4_I2CM, SERCOM: 4}
1919
sercomI2CM5 = &I2C{Bus: sam.SERCOM5_I2CM, SERCOM: 5}
2020

21-
sercomSPIM0 = SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0}
22-
sercomSPIM1 = SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1}
23-
sercomSPIM2 = SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2}
24-
sercomSPIM3 = SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3}
25-
sercomSPIM4 = SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4}
26-
sercomSPIM5 = SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5}
21+
sercomSPIM0 = &SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0}
22+
sercomSPIM1 = &SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1}
23+
sercomSPIM2 = &SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2}
24+
sercomSPIM3 = &SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3}
25+
sercomSPIM4 = &SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4}
26+
sercomSPIM5 = &SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5}
2727
)
2828

2929
// setSERCOMClockGenerator sets the GCLK for sercom

src/machine/machine_atsamd51j19.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ var (
1818
sercomI2CM4 = &I2C{Bus: sam.SERCOM4_I2CM, SERCOM: 4}
1919
sercomI2CM5 = &I2C{Bus: sam.SERCOM5_I2CM, SERCOM: 5}
2020

21-
sercomSPIM0 = SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0}
22-
sercomSPIM1 = SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1}
23-
sercomSPIM2 = SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2}
24-
sercomSPIM3 = SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3}
25-
sercomSPIM4 = SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4}
26-
sercomSPIM5 = SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5}
21+
sercomSPIM0 = &SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0}
22+
sercomSPIM1 = &SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1}
23+
sercomSPIM2 = &SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2}
24+
sercomSPIM3 = &SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3}
25+
sercomSPIM4 = &SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4}
26+
sercomSPIM5 = &SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5}
2727
)
2828

2929
// setSERCOMClockGenerator sets the GCLK for sercom

src/machine/machine_atsamd51j20.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ var (
1818
sercomI2CM4 = &I2C{Bus: sam.SERCOM4_I2CM, SERCOM: 4}
1919
sercomI2CM5 = &I2C{Bus: sam.SERCOM5_I2CM, SERCOM: 5}
2020

21-
sercomSPIM0 = SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0}
22-
sercomSPIM1 = SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1}
23-
sercomSPIM2 = SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2}
24-
sercomSPIM3 = SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3}
25-
sercomSPIM4 = SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4}
26-
sercomSPIM5 = SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5}
21+
sercomSPIM0 = &SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0}
22+
sercomSPIM1 = &SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1}
23+
sercomSPIM2 = &SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2}
24+
sercomSPIM3 = &SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3}
25+
sercomSPIM4 = &SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4}
26+
sercomSPIM5 = &SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5}
2727
)
2828

2929
// setSERCOMClockGenerator sets the GCLK for sercom

src/machine/machine_atsamd51p19.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ var (
2020
sercomI2CM6 = &I2C{Bus: sam.SERCOM6_I2CM, SERCOM: 6}
2121
sercomI2CM7 = &I2C{Bus: sam.SERCOM7_I2CM, SERCOM: 7}
2222

23-
sercomSPIM0 = SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0}
24-
sercomSPIM1 = SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1}
25-
sercomSPIM2 = SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2}
26-
sercomSPIM3 = SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3}
27-
sercomSPIM4 = SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4}
28-
sercomSPIM5 = SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5}
29-
sercomSPIM6 = SPI{Bus: sam.SERCOM6_SPIM, SERCOM: 6}
30-
sercomSPIM7 = SPI{Bus: sam.SERCOM7_SPIM, SERCOM: 7}
23+
sercomSPIM0 = &SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0}
24+
sercomSPIM1 = &SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1}
25+
sercomSPIM2 = &SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2}
26+
sercomSPIM3 = &SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3}
27+
sercomSPIM4 = &SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4}
28+
sercomSPIM5 = &SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5}
29+
sercomSPIM6 = &SPI{Bus: sam.SERCOM6_SPIM, SERCOM: 6}
30+
sercomSPIM7 = &SPI{Bus: sam.SERCOM7_SPIM, SERCOM: 7}
3131
)
3232

3333
// setSERCOMClockGenerator sets the GCLK for sercom

src/machine/machine_atsamd51p20.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ var (
2020
sercomI2CM6 = &I2C{Bus: sam.SERCOM6_I2CM, SERCOM: 6}
2121
sercomI2CM7 = &I2C{Bus: sam.SERCOM7_I2CM, SERCOM: 7}
2222

23-
sercomSPIM0 = SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0}
24-
sercomSPIM1 = SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1}
25-
sercomSPIM2 = SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2}
26-
sercomSPIM3 = SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3}
27-
sercomSPIM4 = SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4}
28-
sercomSPIM5 = SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5}
29-
sercomSPIM6 = SPI{Bus: sam.SERCOM6_SPIM, SERCOM: 6}
30-
sercomSPIM7 = SPI{Bus: sam.SERCOM7_SPIM, SERCOM: 7}
23+
sercomSPIM0 = &SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0}
24+
sercomSPIM1 = &SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1}
25+
sercomSPIM2 = &SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2}
26+
sercomSPIM3 = &SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3}
27+
sercomSPIM4 = &SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4}
28+
sercomSPIM5 = &SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5}
29+
sercomSPIM6 = &SPI{Bus: sam.SERCOM6_SPIM, SERCOM: 6}
30+
sercomSPIM7 = &SPI{Bus: sam.SERCOM7_SPIM, SERCOM: 7}
3131
)
3232

3333
// setSERCOMClockGenerator sets the GCLK for sercom

src/machine/machine_atsame51j19.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ var (
1818
sercomI2CM4 = &I2C{Bus: sam.SERCOM4_I2CM, SERCOM: 4}
1919
sercomI2CM5 = &I2C{Bus: sam.SERCOM5_I2CM, SERCOM: 5}
2020

21-
sercomSPIM0 = SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0}
22-
sercomSPIM1 = SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1}
23-
sercomSPIM2 = SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2}
24-
sercomSPIM3 = SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3}
25-
sercomSPIM4 = SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4}
26-
sercomSPIM5 = SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5}
21+
sercomSPIM0 = &SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0}
22+
sercomSPIM1 = &SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1}
23+
sercomSPIM2 = &SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2}
24+
sercomSPIM3 = &SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3}
25+
sercomSPIM4 = &SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4}
26+
sercomSPIM5 = &SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5}
2727
)
2828

2929
// setSERCOMClockGenerator sets the GCLK for sercom

src/machine/machine_atsame54p20.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ var (
2020
sercomI2CM6 = &I2C{Bus: sam.SERCOM6_I2CM, SERCOM: 6}
2121
sercomI2CM7 = &I2C{Bus: sam.SERCOM7_I2CM, SERCOM: 7}
2222

23-
sercomSPIM0 = SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0}
24-
sercomSPIM1 = SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1}
25-
sercomSPIM2 = SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2}
26-
sercomSPIM3 = SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3}
27-
sercomSPIM4 = SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4}
28-
sercomSPIM5 = SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5}
29-
sercomSPIM6 = SPI{Bus: sam.SERCOM6_SPIM, SERCOM: 6}
30-
sercomSPIM7 = SPI{Bus: sam.SERCOM7_SPIM, SERCOM: 7}
23+
sercomSPIM0 = &SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0}
24+
sercomSPIM1 = &SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1}
25+
sercomSPIM2 = &SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2}
26+
sercomSPIM3 = &SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3}
27+
sercomSPIM4 = &SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4}
28+
sercomSPIM5 = &SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5}
29+
sercomSPIM6 = &SPI{Bus: sam.SERCOM6_SPIM, SERCOM: 6}
30+
sercomSPIM7 = &SPI{Bus: sam.SERCOM7_SPIM, SERCOM: 7}
3131
)
3232

3333
// setSERCOMClockGenerator sets the GCLK for sercom

src/machine/machine_esp32.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -334,8 +334,8 @@ type SPI struct {
334334

335335
var (
336336
// SPI0 and SPI1 are reserved for use by the caching system etc.
337-
SPI2 = SPI{esp.SPI2}
338-
SPI3 = SPI{esp.SPI3}
337+
SPI2 = &SPI{esp.SPI2}
338+
SPI3 = &SPI{esp.SPI3}
339339
)
340340

341341
// SPIConfig configures a SPI peripheral on the ESP32. Make sure to set at least

src/machine/machine_esp32c3_spi.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ type SPI struct {
5252

5353
var (
5454
// SPI0 and SPI1 are reserved for use by the caching system etc.
55-
SPI2 = SPI{esp.SPI2}
55+
SPI2 = &SPI{esp.SPI2}
5656
)
5757

5858
// SPIConfig is used to store config info for SPI.

src/machine/machine_generic.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -248,14 +248,14 @@ var (
248248
sercomI2CM6 = &I2C{6}
249249
sercomI2CM7 = &I2C{7}
250250

251-
sercomSPIM0 = SPI{0}
252-
sercomSPIM1 = SPI{1}
253-
sercomSPIM2 = SPI{2}
254-
sercomSPIM3 = SPI{3}
255-
sercomSPIM4 = SPI{4}
256-
sercomSPIM5 = SPI{5}
257-
sercomSPIM6 = SPI{6}
258-
sercomSPIM7 = SPI{7}
251+
sercomSPIM0 = &SPI{0}
252+
sercomSPIM1 = &SPI{1}
253+
sercomSPIM2 = &SPI{2}
254+
sercomSPIM3 = &SPI{3}
255+
sercomSPIM4 = &SPI{4}
256+
sercomSPIM5 = &SPI{5}
257+
sercomSPIM6 = &SPI{6}
258+
sercomSPIM7 = &SPI{7}
259259
)
260260

261261
// GetRNG returns 32 bits of random data from the WASI random source.

0 commit comments

Comments
 (0)